Documentation
¶
Index ¶
- func GetAllTables() []interface{}
- func ManualMigrate(db *gorm.DB) error
- func PrimaryKeyForTable(tableName string) (string, error)
- type CacheEntry
- type Execution
- type ExecutionNode
- type ExecutionSummary
- type ExecutionTask
- type Group
- type Invocation
- type Model
- type Table
- type TelemetryLog
- type Token
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetAllTables ¶
func GetAllTables() []interface{}
func ManualMigrate ¶ added in v1.1.0
func PrimaryKeyForTable ¶
Types ¶
type CacheEntry ¶
type CacheEntry struct {
Model
EntryID string `gorm:"primary_key;"`
ExpirationTimeUsec int64
SizeBytes int64
ReadCount int64
}
func (*CacheEntry) TableName ¶
func (c *CacheEntry) TableName() string
type Execution ¶
type ExecutionNode ¶
type ExecutionNode struct {
Model
Host string `gorm:"primary_key"`
Port int32 `gorm:"primary_key;auto_increment:false"`
AssignableMemoryBytes int64
AssignableMilliCPU int64
Constraints string
}
func (*ExecutionNode) TableName ¶
func (n *ExecutionNode) TableName() string
type ExecutionSummary ¶ added in v1.1.0
type ExecutionSummary struct {
Model
// The SummaryID is a randomly generated identifier.
SummaryID string `gorm:"primary_key"`
InvocationID string `gorm:"index:esum_invocation_id"`
// The user/group permissions of the calling user.
UserID string `gorm:"index:esum_user_id"`
GroupID string `gorm:"index:esum_group_id"`
Perms int `gorm:"index:esum_perms"`
// A "hash/bytes_size" formatted Digest message that
// uniquely identifies the Action that was completed.
ActionDigest string `gorm:"index:esum_action_digest_index"`
// A unique worker identifier string, identifying the
// machine that completed this execution.
WorkerID string
// Execution metrics (cpu,memory,tx,rx, etc)
UserCpuTimeUsec int64
SysCpuTimeUsec int64
MaxResidentSetSizeBytes int64
PageReclaims int64
PageFaults int64
Swaps int64
BlockInputOperations int64
BlockOutputOperations int64
MessagesSent int64
MessagesReceived int64
SignalsReceived int64
VoluntaryContextSwitches int64
InvoluntaryContextSwitches int64
FileDownloadCount int64
FileDownloadSizeBytes int64
FileDownloadDurationUsec int64
FileUploadCount int64
FileUploadSizeBytes int64
FileUploadDurationUsec int64
}
func (*ExecutionSummary) TableName ¶ added in v1.1.0
func (t *ExecutionSummary) TableName() string
type ExecutionTask ¶
type ExecutionTask struct {
Model
TaskID string `gorm:"primary_key"`
SerializedTask []byte `gorm:"size:max"`
EstimatedMemoryBytes int64
EstimatedMilliCPU int64
ClaimedAtUsec int64
AttemptCount int64
}
func (*ExecutionTask) TableName ¶
func (n *ExecutionTask) TableName() string
type Group ¶
type Group struct {
Model
GroupID string `gorm:"primary_key;"`
// The user that OWNS this group. Only this user may modify it.
UserID string
// The group name. This may be displayed to users.
Name string
// The "owned" domain. In enterprise/cloud version, we create a
// group for a customer's domain, and new users that sign up with an
// email belonging to that domain may be added to this group.
OwnedDomain string `gorm:"index:owned_domain_index"`
// The group access token. This token allows writing data for this
// group.
WriteToken string `gorm:"index:write_token_index"`
// The group's api key. This allows members of the group to make
// API requests on the group's behalf.
APIKey string `gorm:"index:api_key_index"`
// The group's Github API token.
GithubToken string
}
type Invocation ¶
type Invocation struct {
Model
InvocationID string `gorm:"primary_key;"`
UserID string `gorm:"index:user_id"`
GroupID string `gorm:"index:group_id"`
Perms int `gorm:"index:perms"`
Success bool
User string `gorm:"index:user_index"`
DurationUsec int64
Host string `gorm:"index:host_index"`
RepoURL string `gorm:"index:repo_url_index"`
CommitSHA string `gorm:"index:commit_sha_index"`
Command string
Pattern string `gorm:"type:text;"`
ActionCount int64
BlobID string
InvocationStatus int64 `gorm:"index:invocation_status_idx"`
}
func (*Invocation) FromProtoAndBlobID ¶ added in v1.0.4
func (i *Invocation) FromProtoAndBlobID(p *inpb.Invocation, blobID string)
func (*Invocation) TableName ¶
func (i *Invocation) TableName() string
func (*Invocation) ToProto ¶ added in v1.0.4
func (i *Invocation) ToProto() *inpb.Invocation
type Model ¶
func (*Model) BeforeCreate ¶
Timestamps are hard and differing sql implementations do... a lot. Too much. So, we handle this in go-code and set these to time.Now().UnixNano and store as int64.
type TelemetryLog ¶
type TelemetryLog struct {
Model
InstallationUUID string `gorm:"primary_key"`
InstanceUUID string `gorm:"primary_key"`
TelemetryLogUUID string `gorm:"primary_key"`
RecordedAtUsec int64
AppVersion string
AppURL string
Hostname string
InvocationCount int64
RegisteredUserCount int64
BazelUserCount int64
BazelHostCount int64
FeatureCacheEnabled bool
FeatureRBEEnabled bool
FeatureAPIEnabled bool
FeatureAuthEnabled bool
}
func (*TelemetryLog) TableName ¶
func (t *TelemetryLog) TableName() string
type Token ¶
type User ¶
type User struct {
Model
// The buildbuddy user ID.
UserID string `gorm:"primary_key;"`
// The subscriber ID, a concatenated string of the
// auth Issuer ID and the subcriber ID string.
SubID string `gorm:"index:sub_id_index"`
// Groups are used to determine read/write permissions
// for everything.
Groups []*Group `gorm:"many2many:UserGroups;"`
// Profile information etc.
FirstName string
LastName string
Email string
ImageURL string
}
func (*User) ToProto ¶
func (u *User) ToProto() *uspb.DisplayUser
Click to show internal directories.
Click to hide internal directories.