Documentation
¶
Overview ¶
Package internal houses code for wr's general utility functions.
It also implements the the config system used by the cmd package (see config.go).
import "github.com/VertebrateResequencing/wr/internal" deployment := internal.DefaultDeployment() config := internal.ConfigLoad(deployment, false) port := config.ManagerPort
Index ¶
- Constants
- func DefaultDeployment() (deployment string)
- func DefaultServer() (server string)
- func InS3(path string) bool
- func IsRemote(path string) bool
- func SortMapKeysByIntValue(imap map[string]int, reverse bool) (sortedKeys []string)
- func SortMapKeysByMapIntValue(imap map[string]map[string]int, criterion string, reverse bool) (sortedKeys []string)
- func TildaToHome(path string) string
- func Userid() (uid int, err error)
- func Username() (uname string, err error)
- type Config
Constants ¶
const ( // S3Prefix is the prefix used by S3 paths S3Prefix = "s3://" // Production is the name of the main deployment Production = "production" // Development is the name of the development deployment, used during testing Development = "development" )
Variables ¶
This section is empty.
Functions ¶
func DefaultDeployment ¶
func DefaultDeployment() (deployment string)
DefaultDeployment works out the default deployment.
func DefaultServer ¶
func DefaultServer() (server string)
DefaultServer works out the default server (we need this to be able to report this default before we know what deployment the user has actually chosen, ie. before we have a final config).
func IsRemote ¶ added in v0.10.0
IsRemote tells you if a path is to a remote file system or object store, based on its URI.
func SortMapKeysByIntValue ¶
SortMapKeysByIntValue sorts the keys of a map[string]int by its values, reversed if you supply true as the second arg.
func SortMapKeysByMapIntValue ¶
func SortMapKeysByMapIntValue(imap map[string]map[string]int, criterion string, reverse bool) (sortedKeys []string)
SortMapKeysByMapIntValue sorts the keys of a map[string]map[string]int by a the values found at a given sub value, reversed if you supply true as the second arg.
func TildaToHome ¶ added in v0.8.0
TildaToHome converts a path beginning with ~/ to the absolute path based in the current home directory (according to the environment variable $HOME).
Types ¶
type Config ¶
type Config struct {
ManagerPort string `default:""`
ManagerWeb string `default:""`
ManagerHost string `default:"localhost"`
ManagerDir string `default:"~/.wr"`
ManagerPidFile string `default:"pid"`
ManagerLogFile string `default:"log"`
ManagerDbFile string `default:"db"`
ManagerDbBkFile string `default:"db_bk"`
ManagerUmask int `default:"007"`
ManagerScheduler string `default:"local"`
RunnerExecShell string `default:"bash"`
Deployment string `default:"production"`
CloudFlavor string `default:""`
CloudKeepAlive int `default:"120"`
CloudServers int `default:"-1"`
CloudCIDR string `default:"192.168.0.0/18"`
CloudGateway string `default:"192.168.0.1"`
CloudDNS string `default:"8.8.4.4,8.8.8.8"`
CloudOS string `default:"Ubuntu Xenial"`
CloudUser string `default:"ubuntu"`
CloudRAM int `default:"2048"`
CloudDisk int `default:"1"`
CloudScript string `default:""`
CloudConfigFiles string `default:"~/.s3cfg,~/.aws/credentials,~/.aws/config"`
}
Config holds the configuration options for jobqueue server and client
func ConfigLoad ¶
ConfigLoad loads configuration settings from files and environment variables. Note, this function exits on error, since without config we can't do anything.
We prefer settings in config file in current dir (or the current dir's parent dir if the useparentdir option is true (used for test scripts)) over config file in home directory over config file in dir pointed to by WR_CONFIG_DIR.
The deployment argument determines if we read .wr_config.production.yml or .wr_config.development.yml; we always read .wr_config.yml. If the empty string is supplied, deployment is development if you're in the git repository directory. Otherwise, deployment is taken from the environment variable WR_DEPLOYMENT, and if that's not set it defaults to production.
Multiple of these files can be used to have settings that are common to multiple users and deployments, and settings specific to users or deployments.
Settings found in no file can be set with the environment variable WR_<setting name in caps>, eg. export WR_MANAGER_PORT="11301"
func DefaultConfig ¶ added in v0.6.0
func DefaultConfig() Config
DefaultConfig works out the default config for when we need to be able to report the default before we know what deployment the user has actually chosen, ie. before we have a final config.
func (Config) IsDevelopment ¶ added in v0.10.0
IsDevelopment tells you if we're in the development deployment.
func (Config) IsProduction ¶ added in v0.10.0
IsProduction tells you if we're in the production deployment.