Documentation ¶
Index ¶
Constants ¶
View Source
const ( BugStatusFixed = 1000 + iota BugStatusInvalid BugStatusDup )
View Source
const ( ReproLevelNone = dashapi.ReproLevelNone ReproLevelSyz = dashapi.ReproLevelSyz ReproLevelC = dashapi.ReproLevelC )
View Source
const (
BugStatusOpen = iota
)
View Source
const (
MaxStringLen = 1024
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIHandler ¶
type Bug ¶
type Bug struct { Namespace string Seq int64 // sequences of the bug with the same title Title string Status int DupOf string NumCrashes int64 NumRepro int64 ReproLevel dashapi.ReproLevel HasReport bool FirstTime time.Time LastTime time.Time Closed time.Time Reporting []BugReporting Commits []string PatchedOn []string }
type BugReporting ¶
type BugReporting struct { Name string // refers to Reporting.Name ID string // unique ID per BUG/BugReporting used in commucation with external systems ExtID string // arbitrary reporting ID that is passed back in dashapi.BugReport Link string CC string // additional emails added to CC list (|-delimited list) ReproLevel dashapi.ReproLevel Reported time.Time Closed time.Time }
type Config ¶
type Config struct { // Per-namespace clients that act only on a particular namespace. Clients map[string]string // A unique key for hashing, can be anything. Key string // Mail bugs without reports (e.g. "no output"). MailWithoutReport bool // How long should we wait for a C repro before reporting a bug. WaitForRepro time.Duration // Reporting config. Reporting []Reporting }
Per-namespace config.
func (*Config) ReportingByName ¶
type Crash ¶
type Crash struct { Manager string BuildID string Time time.Time Maintainers []string `datastore:",noindex"` Log int64 // reference to CrashLog text entity Report int64 // reference to CrashReport text entity ReproOpts []byte `datastore:",noindex"` ReproSyz int64 // reference to ReproSyz text entity ReproC int64 // reference to ReproC text entity ReportLen int }
type EmailConfig ¶
func (*EmailConfig) NeedMaintainers ¶
func (cfg *EmailConfig) NeedMaintainers() bool
func (*EmailConfig) Type ¶
func (cfg *EmailConfig) Type() string
func (*EmailConfig) Validate ¶
func (cfg *EmailConfig) Validate() error
type ExternalConfig ¶
type ExternalConfig struct {
ID string
}
func (*ExternalConfig) Type ¶
func (cfg *ExternalConfig) Type() string
type GlobalConfig ¶
type GlobalConfig struct { // Email suffix of authorized users (e.g. "@foobar.com"). AuthDomain string // Global API clients that work across namespaces (e.g. external reporting). Clients map[string]string // Per-namespace config. // Namespaces are a mechanism to separate groups of different kernels. // E.g. Debian 4.4 kernels and Ubuntu 4.9 kernels. // Each namespace has own reporting config, own API clients // and bugs are not merged across namespaces. Namespaces map[string]*Config }
There are multiple configurable aspects of the app (namespaces, reporting, API clients, etc). The exact config is stored in a global config variable and is read-only. Also see config_stub.go.
type Reporting ¶
type Reporting struct { // A unique name (the app does not care about exact contents). Name string // See ReportingStatus below. Status ReportingStatus // How many new bugs report per day. DailyLimit int // Type of reporting and its configuration. // The app has one built-in type, EmailConfig, which reports bugs by email. // And ExternalConfig which can be used to attach any external reporting system (e.g. Bugzilla). Config ReportingType }
One reporting stage.
type ReportingState ¶
type ReportingState struct {
Entries []ReportingStateEntry
}
ReportingState holds dynamic info associated with reporting.
type ReportingStateEntry ¶
type ReportingStatus ¶
type ReportingStatus int
const ( // Send reports to this reporting stage. ReportingActive ReportingStatus = iota // Don't send anything to this reporting, but don't skip it as well. ReportingSuspended // Skip this reporting. ReportingDisabled )
type ReportingType ¶
type ReportingType interface { // Type returns a unique string that identifies this reporting type (e.g. "email"). Type() string // NeedMaintainers says if this reporting requires non-empty maintainers list. NeedMaintainers() bool // Validate validates the current object, this is called only during init. Validate() error }
Click to show internal directories.
Click to hide internal directories.