Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var BootentrySearchFields = []string{
"name",
}
View Source
var ComputerSearchFields = []string{
"name",
"hostname",
"mac",
"ip",
"serial",
}
View Source
var IpxeAccountSearchFields = []string{
"username",
}
Functions ¶
func HashPassword ¶
HashPassword : Encrypt user password
Types ¶
type Bootentry ¶
type Bootentry struct {
Uuid uuid.UUID `gorm:"type:uuid;primaryKey" json:"id"`
Name string `gorm:"uniqueIndex:idx_name" json:"name"`
Description string `json:"description"`
Persistent *bool `gorm:"not null;default:FALSE" json:"persistent"`
IpxeScript string `json:"ipxe_script"`
GrupScript string `json:"grub_script"`
Files []BootentryFile `gorm:"foreignkey:bootentry_uuid;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"files"`
Bootorder []*Bootorder `gorm:"foreignKey:bootentry_uuid;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
func (*Bootentry) GetDownloadBasePath ¶
func (*Bootentry) GetFile ¶
func (b *Bootentry) GetFile(filename string) *BootentryFile
func (*Bootentry) UnmarshalJSON ¶
type BootentryFile ¶
type BootentryFile struct {
Name string `gorm:"primaryKey;index" json:"name"`
SubPath string `gorm:"default:''" json:"subpath"`
Protected *bool `gorm:"not null;default:FALSE" json:"protected"`
Templatized *bool `gorm:"not null;default:FALSE" json:"templatized"`
BootentryUUID uuid.UUID `gorm:"type:uuid;primaryKey;index" json:"-"`
Bootentry *Bootentry `gorm:"foreignkey:bootentry_uuid;References:Uuid;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
}
func (*BootentryFile) GetAPIDownloadPath ¶
func (b *BootentryFile) GetAPIDownloadPath() string
func (*BootentryFile) GetDownloadPath ¶
func (b *BootentryFile) GetDownloadPath() (string, *Token)
func (*BootentryFile) GetFileStorePath ¶
func (b *BootentryFile) GetFileStorePath() string
func (BootentryFile) MarshalJSON ¶
func (o BootentryFile) MarshalJSON() ([]byte, error)
MarshalJSON initializes nil slices and then marshals the bag to JSON
func (*BootentryFile) UnmarshalJSON ¶
func (o *BootentryFile) UnmarshalJSON(data []byte) error
type Bootorder ¶
type Bootorder struct {
Order int `gorm:"not null;" json:"-"`
ComputerUuid uuid.UUID `gorm:"primaryKey;not null;"`
Computer *Computer `gorm:"foreignkey:computer_uuid;References:Uuid;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-"`
BootentryUuid uuid.UUID `gorm:"primaryKey;not null;"`
Bootentry *Bootentry `gorm:"foreignkey:bootentry_uuid;References:Uuid;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-"`
CreatedAt time.Time `gorm:"autoCreateTime;not null;default:current_timestamp" json:"-"`
UpdatedAt time.Time `gorm:"autoUpdateTime;not null;default:current_timestamp" json:"-"`
}
type Computer ¶
type Computer struct {
Uuid uuid.UUID `gorm:"type:uuid;primaryKey" json:"id"`
Mac pgtype.Macaddr `gorm:"type:macaddr;index:idx_mac" json:"-"`
IP pgtype.Inet `gorm:"type:inet;index:idx_ip" json:"-"`
Asset string `json:"asset"`
BuildArch string `json:"build_arch"`
Hostname string `json:"hostname"`
LastSeen time.Time `json:"last_seen"`
Manufacturer string `json:"manufacturer"`
Name string `json:"name"`
Platform string `json:"platform"`
Product string `json:"product"`
Serial string `json:"serial"`
Version string `json:"version"`
Tags []*Tag `gorm:"foreignkey:computer_uuid;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"tags"`
Bootorder []*Bootorder `gorm:"foreignKey:computer_uuid;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-"`
LastIpxeaccountID *string `json:"last_ipxeaccount"`
LastIpxeaccount *Ipxeaccount `gorm:"foreignkey:last_ipxeaccount_id;References:Username;constraint:OnUpdate:CASCADE,OnDelete:SET NULL;default:NULL" json:"-"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
func (Computer) MarshalJSON ¶
MarshalJSON initializes nil slices and then marshals the bag to JSON
func (*Computer) UnmarshalJSON ¶
type Ipxeaccount ¶
type Ipxeaccount struct {
Username string `gorm:"primarykey" json:"username"`
Password string `json:"password,omitempty"`
IsAdmin *bool `gorm:"not null;default:FALSE" json:"is_admin"`
LastLogin time.Time `json:"last_login"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
func (Ipxeaccount) MarshalJSON ¶
func (o Ipxeaccount) MarshalJSON() ([]byte, error)
MarshalJSON initializes nil slices and then marshals the bag to JSON
func (*Ipxeaccount) UnmarshalJSON ¶
func (c *Ipxeaccount) UnmarshalJSON(data []byte) error
type Token ¶
type Token struct {
Token string `gorm:"primaryKey" json:"token"`
Computer Computer `gorm:"ForeignKey:ComputerUUID;References:Uuid;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-"`
ComputerUUID uuid.UUID `gorm:"not null" json:"computer_uuid"`
Bootentry Bootentry `gorm:"ForeignKey:BootentryUUID;References:Uuid,Name;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-"`
BootentryUUID uuid.UUID `gorm:"not null" json:"bootentry_uuid"`
// BootentryFile can be null if we generate DownloadBaseURL
BootentryFile *BootentryFile `gorm:"ForeignKey:BootentryUUID,Filename;References:BootentryUUID,Name;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-"`
Filename *string `json:"filename"`
ExpireAt time.Time `gorm:"index:idx_expire_at" json:"expire"`
}
Click to show internal directories.
Click to hide internal directories.