Documentation ¶
Overview ¶
Package options implements command-line options that are used by all of the mongo tools.
Index ¶
- Constants
- Variables
- func ConflictingArgsErrorFormat(optionName, uriValue, cliValue, cliOptionName string) error
- func EnableFailpoints(opts *ToolOptions)
- type Auth
- type Connection
- type EnabledOptions
- type ExtraOptions
- type General
- type Kerberos
- type Namespace
- type OptionRegistrationFunction
- type SSL
- type ToolOptions
- func (opts *ToolOptions) AddOptions(extraOpts ExtraOptions)
- func (opts *ToolOptions) EnabledToolOptions() EnabledOptions
- func (opts *ToolOptions) FindOptionByLongName(name string) *flags.Option
- func (opts *ToolOptions) GetAuthenticationDatabase() string
- func (opts *ToolOptions) NormalizeOptionsAndURI() error
- func (opts *ToolOptions) ParseArgs(args []string) ([]string, error)
- func (opts *ToolOptions) PrintHelp(force bool) bool
- func (opts *ToolOptions) PrintVersion() bool
- func (opts *ToolOptions) UseReadOnlyHostDescription()
- type URI
- type URISetter
- type Verbosity
- type WriteConcern
Constants ¶
const IncompatibleArgsErrorFormat = "illegal argument combination: cannot specify %s and --uri"
Variables ¶
var ( BuiltWithSSL = true BuiltWithGSSAPI = true )
XXX Force these true as the Go driver supports them always. Once the conditionals that depend on them are removed, these can be removed.
var ConnectionOptFunctions []OptionRegistrationFunction
Functions ¶
func EnableFailpoints ¶
func EnableFailpoints(opts *ToolOptions)
EnableFailpoints removes the failpoints options
Types ¶
type Auth ¶
type Auth struct { Username string `short:"u" value-name:"<username>" long:"username" description:"username for authentication"` Password string `short:"p" value-name:"<password>" long:"password" description:"password for authentication"` Source string `long:"authenticationDatabase" value-name:"<database-name>" description:"database that holds the user's credentials"` Mechanism string `long:"authenticationMechanism" value-name:"<mechanism>" description:"authentication mechanism to use"` AWSSessionToken string `long:"awsSessionToken" value-name:"<aws-session-token>" description:"session token to authenticate via AWS IAM"` }
Struct holding auth-related options
func (*Auth) RequiresExternalDB ¶
func (*Auth) ShouldAskForPassword ¶
ShouldAskForPassword returns true if the user specifies a username flag but no password, and the authentication mechanism requires a password.
type Connection ¶
type Connection struct { Host string `short:"h" long:"host" value-name:"<hostname>" description:"mongodb host to connect to (setname/host1,host2 for replica sets)"` Port string `long:"port" value-name:"<port>" description:"server port (can also use --host hostname:port)"` Timeout int `long:"dialTimeout" default:"3" hidden:"true" description:"dial timeout in seconds"` SocketTimeout int `long:"socketTimeout" default:"0" hidden:"true" description:"socket timeout in seconds (0 for no timeout)"` TCPKeepAliveSeconds int `long:"TCPKeepAliveSeconds" default:"30" hidden:"true" description:"seconds between TCP keep alives"` ServerSelectionTimeout int `long:"serverSelectionTimeout" hidden:"true" description:"seconds to wait for server selection; 0 means driver default"` Compressors string `` /* 157-byte string literal not displayed */ }
Struct holding connection-related options
type EnabledOptions ¶
type ExtraOptions ¶
type ExtraOptions interface { // Name specifying what type of options these are Name() string }
Interface for extra options that need to be used by specific tools
type General ¶
type General struct { Help bool `long:"help" description:"print usage"` Version bool `long:"version" description:"print the tool version and exit"` MaxProcs int `long:"numThreads" hidden:"true"` Failpoints string `long:"failpoints" hidden:"true"` Trace bool `long:"trace" hidden:"true"` }
Struct holding generic options
type Kerberos ¶
type Kerberos struct { Service string `` /* 147-byte string literal not displayed */ ServiceHost string `` /* 155-byte string literal not displayed */ }
Struct for Kerberos/GSSAPI-specific options
type Namespace ¶
type OptionRegistrationFunction ¶
type OptionRegistrationFunction func(*ToolOptions) error
type SSL ¶
type SSL struct { UseSSL bool `long:"ssl" description:"connect to a mongod or mongos that has ssl enabled"` SSLCAFile string `` /* 137-byte string literal not displayed */ SSLPEMKeyFile string `long:"sslPEMKeyFile" value-name:"<filename>" description:"the .pem file containing the certificate and key"` SSLPEMKeyPassword string `long:"sslPEMKeyPassword" value-name:"<password>" description:"the password to decrypt the sslPEMKeyFile, if necessary"` SSLCRLFile string `long:"sslCRLFile" value-name:"<filename>" description:"the .pem file containing the certificate revocation list"` SSLAllowInvalidCert bool `long:"sslAllowInvalidCertificates" description:"bypass the validation for server certificates"` SSLAllowInvalidHost bool `long:"sslAllowInvalidHostnames" description:"bypass the validation for server name"` SSLFipsMode bool `long:"sslFIPSMode" description:"use FIPS mode of the installed openssl library"` }
Struct holding ssl-related options
type ToolOptions ¶
type ToolOptions struct { // The name of the tool AppName string // The version of the tool VersionStr string // The git commit reference of the tool GitCommit string // Sub-option types *URI *General *Verbosity *Connection *SSL *Auth *Kerberos *Namespace // Force direct connection to the server and disable the // drivers automatic repl set discovery logic. Direct bool // ReplicaSetName, if specified, will prevent the obtained session from // communicating with any server which is not part of a replica set // with the given name. The default is to communicate with any server // specified or discovered via the servers contacted. ReplicaSetName string // ReadPreference, if specified, sets the client default ReadPreference *readpref.ReadPref // WriteConcern, if specified, sets the client default WriteConcern *writeconcern.WriteConcern // RetryWrites, if specified, sets the client default. RetryWrites *bool // contains filtered or unexported fields }
Struct encompassing all of the options that are reused across tools: "help", "version", verbosity settings, ssl settings, etc.
func New ¶
func New(appName, versionStr, gitCommit, usageStr string, parsePositionalArgsAsURI bool, enabled EnabledOptions) *ToolOptions
Ask for a new instance of tool options
func (*ToolOptions) AddOptions ¶
func (opts *ToolOptions) AddOptions(extraOpts ExtraOptions)
AddOptions registers an additional options group to this instance
func (*ToolOptions) EnabledToolOptions ¶
func (opts *ToolOptions) EnabledToolOptions() EnabledOptions
func (*ToolOptions) FindOptionByLongName ¶
func (opts *ToolOptions) FindOptionByLongName(name string) *flags.Option
FindOptionByLongName finds an option in any of the added option groups by matching its long name; useful for modifying the attributes (e.g. description or name) of an option
func (*ToolOptions) GetAuthenticationDatabase ¶
func (opts *ToolOptions) GetAuthenticationDatabase() string
Get the authentication database to use. Should be the value of --authenticationDatabase if it's provided, otherwise, the database that's specified in the tool's --db arg.
func (*ToolOptions) NormalizeOptionsAndURI ¶
func (opts *ToolOptions) NormalizeOptionsAndURI() error
NormalizeOptionsAndURI syncs the connection string and toolOptions objects. It returns an error if there is any conflict between options and the connection string. If a value is set on the options, but not the connection string, that value is added to the connection string. If a value is set on the connection string, but not the options, that value is added to the options.
func (*ToolOptions) ParseArgs ¶
func (opts *ToolOptions) ParseArgs(args []string) ([]string, error)
Parse the command line args. Returns any extra args not accounted for by parsing, as well as an error if the parsing returns an error.
func (*ToolOptions) PrintHelp ¶
func (opts *ToolOptions) PrintHelp(force bool) bool
Print the usage message for the tool to stdout. Returns whether or not the help flag is specified.
func (*ToolOptions) PrintVersion ¶
func (opts *ToolOptions) PrintVersion() bool
Print the tool version to stdout. Returns whether or not the version flag is specified.
func (*ToolOptions) UseReadOnlyHostDescription ¶
func (opts *ToolOptions) UseReadOnlyHostDescription()
UseReadOnlyHostDescription changes the help description of the --host arg to not mention the shard/host:port format used in the data-mutating tools
type URI ¶
type URI struct { ConnectionString string `long:"uri" value-name:"mongodb-uri" description:"mongodb uri connection string"` ConnString connstring.ConnString // contains filtered or unexported fields }
func (*URI) GetConnectionAddrs ¶
func (*URI) LogUnsupportedOptions ¶
func (uri *URI) LogUnsupportedOptions()
LogUnsupportedOptions logs warnings regarding unknown/unsupported URI parameters. The unknown options are determined by the driver.
func (*URI) ParsedConnString ¶
func (uri *URI) ParsedConnString() *connstring.ConnString
type URISetter ¶
type URISetter interface { // SetOptionsFromURI provides a way for tools to fetch any options that were // set in the URI and set them on the ExtraOptions that they pass to the options // package. SetOptionsFromURI(connstring.ConnString) error }
type Verbosity ¶
type Verbosity struct { SetVerbosity func(string) `` /* 221-byte string literal not displayed */ Quiet bool `long:"quiet" description:"hide all log output"` VLevel int `no-flag:"true"` }
Struct holding verbosity-related options
type WriteConcern ¶
type WriteConcern struct { // Specifies the write concern for each write operation that mongofiles writes to the target database. // By default, mongofiles waits for a majority of members from the replica set to respond before returning. WriteConcern string `` /* 211-byte string literal not displayed */ // contains filtered or unexported fields }