Documentation ¶
Overview ¶
Package config provides tools to load and validate configuration data for the t3c tests.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { TrafficOps TrafficOps `json:"trafficOps"` TrafficOpsDB TrafficOpsDB `json:"trafficOpsDB"` Default Default `json:"default"` UseIMS bool `json:"use_ims"` }
Config reflects the structure of the test-to-api.conf file. It also implements github.com/apache/trafficcontrol/v8/lib/go-log.Config for logging.
func LoadConfig ¶
LoadConfig reads the given configuration file into a Config.
func (Config) DebugLog ¶
func (c Config) DebugLog() log.LogLocation
DebugLog provides the location to which debug-level messages should be logged.
func (Config) ErrorLog ¶
func (c Config) ErrorLog() log.LogLocation
ErrorLog provides the location to which error-level messages should be logged.
func (Config) EventLog ¶
func (c Config) EventLog() log.LogLocation
EventLog provides the location to which event-level messages should be logged.
func (Config) InfoLog ¶
func (c Config) InfoLog() log.LogLocation
InfoLog provides the location to which info-level messages should be logged.
func (Config) WarningLog ¶
func (c Config) WarningLog() log.LogLocation
WarningLog provides the location to which warning-level messages should be logged.
type Default ¶
type Default struct { Session Session `json:"session"` Log Locations `json:"logLocations"` // IncludeSystemTests has no effect or known purpose. // // Deprecated: This field has no effect or known purpose. IncludeSystemTests bool `json:"includeSystemTests"` }
Default represents the default values of a set of options that can be overridden by command-line options.
type Locations ¶
type Locations struct { Debug string `json:"debug"` Event string `json:"event"` Error string `json:"error"` Info string `json:"info"` Warning string `json:"warning"` }
Locations is a set of logging locations as defined by the github.com/apache/trafficcontrol/v8/lib/go-log package.
type Session ¶
type Session struct {
TimeoutInSecs int `json:"timeoutInSecs" envconfig:"SESSION_TIMEOUT_IN_SECS"`
}
Session contains default configuration options for authenticated sessions with the Traffic Ops API.
type TrafficOps ¶
type TrafficOps struct { // URL is the URL of a Traffic Ops instance being used for the tests. URL string `json:"URL" envconfig:"TO_URL"` // UserPassword is the password of *all* users in the 'Users' property. UserPassword string `json:"password" envconfig:"TO_USER_PASSWORD"` // Users are the Traffic Ops users to be used in testing. Users Users `json:"users"` // Insecure instructs tests whether or not to skip certificate verification. Insecure bool `json:"sslInsecure" envconfig:"SSL_INSECURE"` }
TrafficOps is the section of a Config dealing with Traffic Ops-related information.
type TrafficOpsDB ¶
type TrafficOpsDB struct { // Name is the name of a PostgreSQL database used by the testing Traffic Ops // instance. Name string `json:"dbname" envconfig:"TODB_NAME"` // Hostname is the network hostname where the Traffic Ops database is // running. Hostname string `json:"hostname" envconfig:"TODB_HOSTNAME"` // User is the name of a PostgreSQL user/role that has permissions to // manipulate the database identified in Name. User string `json:"user" envconfig:"TODB_USER"` // Password is the password for the PostgreSQL user/role given in User. Password string `json:"password" envconfig:"TODB_PASSWORD"` // Port is the port on which PostgreSQL listens for connections to the // database used by the testing Traffic Ops instance. Port string `json:"port" envconfig:"TODB_PORT"` // DBType is a Go database/sql driver name to use when connecting to the // Traffic Ops testing instance's database. This MUST be "Pg" (or // omitted/blank/null, which uses the default value of "Pg"). // // Deprecated: Since Traffic Ops 3.0, only PostgreSQL databases are // supported, so this field has no purpose and will probably be removed at // some point. DBType string `json:"type" envconfig:"TODB_TYPE"` // SSL instructs the database driver that the PostgreSQL instance used by // the tests requires SSL-secured connections. SSL bool `json:"ssl" envconfig:"TODB_SSL"` // Description is a textual description of the database. // // Deprecated: This unused field serves no purpose, and will likely be // removed in the future. Description string `json:"description" envconfig:"TODB_DESCRIPTION"` }
TrafficOpsDB is the section of a Config dealing with Traffic Ops DB-related information.
type Users ¶
type Users struct { // Disallowed is the username of a "disallowed" Traffic Ops user. // // Deprecated: This is unused in t3c tests, and may be removed in the // future. Disallowed string `json:"disallowed" envconfig:"TO_USER_DISALLOWED"` // ReadOnly is the username of a Traffic Ops user with "read-only" // Permissions. // // Deprecated: This is unused in t3c tests, and may be removed in the // future. ReadOnly string `json:"readOnly" envconfig:"TO_USER_READ_ONLY"` // Operations is the username of a Traffic Ops user with "operations"-level // Permissions. // // Deprecated: This is unused in t3c tests, and may be removed in the // future. Operations string `json:"operations" envconfig:"TO_USER_OPERATIONS"` // Admin is the username of a Traffic Ops user with the special "admin" // Role. Admin string `json:"admin" envconfig:"TO_USER_ADMIN"` // Portal is the username of a Traffic Ops user with "portal"-level // Permissions. // // Deprecated: This is unused in t3c tests, and may be removed in the // future. Portal string `json:"portal" envconfig:"TO_USER_PORTAL"` // Federation is the username of a Traffic Ops user with // "federation"-level Permissions. // // Deprecated: This is unused in t3c tests, and may be removed in the // future. Federation string `json:"federation" envconfig:"TO_USER_FEDERATION"` // Extension is the username of a Traffic Ops user allowed to manipulate // extensions (i.e. creating new serverchecks). // // These tests currently use Traffic Ops API version 3.0, so the only // username that can possibly work is literally "extension". This property // MUST be configured to be "extension", or the tests will erroneously fail, // no matter what "Priv Level" and/or Permissions you give the user! Extension string `json:"extension" envconfig:"TO_USER_EXTENSION"` }
Users structures are the "users" section of the "trafficOps" section of the testing configuration file, and are a collection of the usernames of Traffic Ops users that are used in testing.