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.