model

package
v2.0.7-alpha.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SchedulerStateActive   = "active"
	SchedulerStateInactive = "inactive"
)
View Source
const (
	SeedPeerStateActive   = "active"
	SeedPeerStateInactive = "inactive"
)
View Source
const (
	SeedPeerTypeSuperSeed  = "super"
	SeedPeerTypeStrongSeed = "strong"
	SeedPeerTypeWeakSeed   = "weak"
)
View Source
const (
	UserStateEnabled  = "enable"
	UserStateDisabled = "disable"
)

Variables

This section is empty.

Functions

func Paginate

func Paginate(page, perPage int) func(db *gorm.DB) *gorm.DB

Types

type Application added in v2.0.1

type Application struct {
	Model
	Name              string             `gorm:"column:name;type:varchar(256);index:uk_application_name,unique;not null;comment:name" json:"name"`
	DownloadRateLimit uint               `gorm:"column:download_rate_limit;comment:download rate limit" json:"download_rate_limit"`
	URL               string             `gorm:"column:url;not null;comment:url" json:"url"`
	State             string             `gorm:"column:state;type:varchar(256);default:'enable';comment:state" json:"state"`
	BIO               string             `gorm:"column:bio;type:varchar(1024);comment:biography" json:"bio"`
	UserID            uint               `gorm:"comment:user id" json:"user_id"`
	User              User               `json:"user"`
	SeedPeerClusters  []SeedPeerCluster  `json:"seed_peer_clusters"`
	SchedulerClusters []SchedulerCluster `json:"scheduler_clusters"`
}

type Array added in v2.0.1

type Array []string

func (Array) GormDBDataType added in v2.0.1

func (Array) GormDBDataType(db *gorm.DB, field *schema.Field) string

func (Array) GormDataType added in v2.0.1

func (Array) GormDataType() string

func (Array) MarshalJSON added in v2.0.1

func (a Array) MarshalJSON() ([]byte, error)

func (*Array) Scan added in v2.0.1

func (a *Array) Scan(val any) error

func (*Array) UnmarshalJSON added in v2.0.1

func (a *Array) UnmarshalJSON(b []byte) error

func (Array) Value added in v2.0.1

func (a Array) Value() (driver.Value, error)

type CasbinRule

type CasbinRule struct {
	ID    uint   `gorm:"primaryKey;autoIncrement;comment:id"`
	Ptype string `gorm:"type:varchar(100);default:NULL;uniqueIndex:uk_casbin_rule;comment:policy type"`
	V0    string `gorm:"type:varchar(100);default:NULL;uniqueIndex:uk_casbin_rule;comment:v0"`
	V1    string `gorm:"type:varchar(100);default:NULL;uniqueIndex:uk_casbin_rule;comment:v1"`
	V2    string `gorm:"type:varchar(100);default:NULL;uniqueIndex:uk_casbin_rule;comment:v2"`
	V3    string `gorm:"type:varchar(100);default:NULL;uniqueIndex:uk_casbin_rule;comment:v3"`
	V4    string `gorm:"type:varchar(100);default:NULL;uniqueIndex:uk_casbin_rule;comment:v4"`
	V5    string `gorm:"type:varchar(100);default:NULL;uniqueIndex:uk_casbin_rule;comment:v5"`
}

type Config added in v2.0.1

type Config struct {
	Model
	Name   string `gorm:"column:name;type:varchar(256);index:uk_config_name,unique;not null;comment:config name" json:"name"`
	Value  string `gorm:"column:value;type:varchar(1024);not null;comment:config value" json:"value"`
	BIO    string `gorm:"column:bio;type:varchar(1024);comment:biography" json:"bio"`
	UserID uint   `gorm:"comment:user id" json:"user_id"`
	User   User   `json:"-"`
}

type JSONMap

type JSONMap map[string]any

func (JSONMap) GormDBDataType

func (JSONMap) GormDBDataType(db *gorm.DB, field *schema.Field) string

func (JSONMap) GormDataType

func (m JSONMap) GormDataType() string

func (JSONMap) MarshalJSON

func (m JSONMap) MarshalJSON() ([]byte, error)

func (*JSONMap) Scan

func (m *JSONMap) Scan(val any) error

func (*JSONMap) UnmarshalJSON

func (m *JSONMap) UnmarshalJSON(b []byte) error

func (JSONMap) Value

func (m JSONMap) Value() (driver.Value, error)

type Job added in v2.0.1

type Job struct {
	Model
	TaskID            string             `gorm:"column:task_id;type:varchar(256);not null;comment:task id" json:"task_id"`
	BIO               string             `gorm:"column:bio;type:varchar(1024);comment:biography" json:"bio"`
	Type              string             `gorm:"column:type;type:varchar(256);comment:type" json:"type"`
	State             string             `gorm:"column:state;type:varchar(256);not null;default:'PENDING';comment:service state" json:"state"`
	Args              JSONMap            `gorm:"column:args;not null;comment:task request args" json:"args"`
	Result            JSONMap            `gorm:"column:result;comment:task result" json:"result"`
	UserID            uint               `gorm:"column:user_id;comment:user id" json:"user_id"`
	User              User               `json:"-"`
	SeedPeerClusters  []SeedPeerCluster  `gorm:"many2many:job_seed_peer_cluster;" json:"seed_peer_clusters"`
	SchedulerClusters []SchedulerCluster `gorm:"many2many:job_scheduler_cluster;" json:"scheduler_clusters"`
}

type Model

type Model struct {
	ID        uint                  `gorm:"primarykey;comment:id" json:"id"`
	CreatedAt time.Time             `gorm:"column:created_at;type:timestamp;default:current_timestamp" json:"created_at"`
	UpdatedAt time.Time             `gorm:"column:updated_at;type:timestamp;default:current_timestamp" json:"updated_at"`
	IsDel     soft_delete.DeletedAt `gorm:"softDelete:flag;comment:soft delete flag" json:"-"`
}

type Oauth

type Oauth struct {
	Model
	Name         string `gorm:"column:name;type:varchar(256);index:uk_oauth2_name,unique;not null;comment:oauth2 name" json:"name"`
	BIO          string `gorm:"column:bio;type:varchar(1024);comment:biography" json:"bio"`
	ClientID     string `` /* 129-byte string literal not displayed */
	ClientSecret string `gorm:"column:client_secret;type:varchar(1024);not null;comment:client secret for oauth2" json:"client_secret"`
	RedirectURL  string `gorm:"column:redirect_url;type:varchar(1024);comment:authorization callback url" json:"redirect_url"`
}

type Scheduler

type Scheduler struct {
	Model
	HostName           string           `gorm:"column:host_name;type:varchar(256);index:uk_scheduler,unique;not null;comment:hostname" json:"host_name"`
	IDC                string           `gorm:"column:idc;type:varchar(1024);comment:internet data center" json:"idc"`
	NetTopology        string           `gorm:"column:net_topology;type:varchar(1024);comment:network topology" json:"net_topology"`
	Location           string           `gorm:"column:location;type:varchar(1024);comment:location" json:"location"`
	IP                 string           `gorm:"column:ip;type:varchar(256);not null;comment:ip address" json:"ip"`
	Port               int32            `gorm:"column:port;not null;comment:grpc service listening port" json:"port"`
	State              string           `gorm:"column:state;type:varchar(256);default:'inactive';comment:service state" json:"state"`
	SchedulerClusterID uint             `gorm:"index:uk_scheduler,unique;not null;comment:scheduler cluster id"`
	SchedulerCluster   SchedulerCluster `json:"-"`
}

type SchedulerCluster

type SchedulerCluster struct {
	Model
	Name             string            `gorm:"column:name;type:varchar(256);index:uk_scheduler_cluster_name,unique;not null;comment:name" json:"name"`
	BIO              string            `gorm:"column:bio;type:varchar(1024);comment:biography" json:"bio"`
	Config           JSONMap           `gorm:"column:config;not null;comment:configuration" json:"config"`
	ClientConfig     JSONMap           `gorm:"column:client_config;not null;comment:client configuration" json:"client_config"`
	Scopes           JSONMap           `gorm:"column:scopes;comment:match scopes" json:"scopes"`
	IsDefault        bool              `gorm:"column:is_default;not null;default:false;comment:default scheduler cluster" json:"is_default"`
	SeedPeerClusters []SeedPeerCluster `gorm:"many2many:seed_peer_cluster_scheduler_cluster;" json:"seed_peer_clusters"`
	Schedulers       []Scheduler       `json:"-"`
	ApplicationID    uint              `gorm:"comment:application id" json:"application_id"`
	Application      Application       `json:"-"`
	SecurityGroupID  uint              `gorm:"comment:security group id" json:"security_group_id"`
	SecurityGroup    SecurityGroup     `json:"-"`
	Jobs             []Job             `gorm:"many2many:job_scheduler_cluster;" json:"jobs"`
}

type SecurityGroup

type SecurityGroup struct {
	Model
	Name              string             `gorm:"column:name;type:varchar(256);index:uk_security_group_name,unique;not null;comment:name" json:"name"`
	BIO               string             `gorm:"column:bio;type:varchar(1024);comment:biography" json:"bio"`
	SecurityRules     []SecurityRule     `gorm:"many2many:security_group_security_rule;" json:"security_rules"`
	SeedPeerClusters  []SeedPeerCluster  `json:"-"`
	SchedulerClusters []SchedulerCluster `json:"-"`
}

type SecurityRule added in v2.0.1

type SecurityRule struct {
	Model
	Name           string          `gorm:"column:name;type:varchar(256);index:uk_security_rule_name,unique;not null;comment:name" json:"name"`
	BIO            string          `gorm:"column:bio;type:varchar(1024);comment:biography" json:"bio"`
	Domain         string          `gorm:"column:domain;type:varchar(256);index:uk_security_rule_domain,unique;not null;comment:domain" json:"domain"`
	ProxyDomain    string          `gorm:"column:proxy_domain;type:varchar(1024);comment:proxy domain" json:"proxy_domain"`
	SecurityGroups []SecurityGroup `gorm:"many2many:security_group_security_rule;" json:"security_groups"`
}

type SeedPeer added in v2.0.3

type SeedPeer struct {
	Model
	HostName          string          `gorm:"column:host_name;type:varchar(256);index:uk_seed_peer,unique;not null;comment:hostname" json:"host_name"`
	Type              string          `gorm:"column:type;type:varchar(256);comment:type" json:"type"`
	IDC               string          `gorm:"column:idc;type:varchar(1024);comment:internet data center" json:"idc"`
	NetTopology       string          `gorm:"column:net_topology;type:varchar(1024);comment:network topology" json:"net_topology"`
	Location          string          `gorm:"column:location;type:varchar(1024);comment:location" json:"location"`
	IP                string          `gorm:"column:ip;type:varchar(256);not null;comment:ip address" json:"ip"`
	Port              int32           `gorm:"column:port;not null;comment:grpc service listening port" json:"port"`
	DownloadPort      int32           `gorm:"column:download_port;not null;comment:download service listening port" json:"download_port"`
	ObjectStoragePort int32           `gorm:"column:object_storage_port;comment:object storage service listening port" json:"object_storage_port"`
	State             string          `gorm:"column:state;type:varchar(256);default:'inactive';comment:service state" json:"state"`
	SeedPeerClusterID uint            `gorm:"index:uk_seed_peer,unique;not null;comment:seed peer cluster id"`
	SeedPeerCluster   SeedPeerCluster `json:"-"`
}

type SeedPeerCluster added in v2.0.3

type SeedPeerCluster struct {
	Model
	Name              string             `gorm:"column:name;type:varchar(256);index:uk_seed_peer_cluster_name,unique;not null;comment:name" json:"name"`
	BIO               string             `gorm:"column:bio;type:varchar(1024);comment:biography" json:"bio"`
	Config            JSONMap            `gorm:"column:config;not null;comment:configuration" json:"config"`
	Scopes            JSONMap            `gorm:"column:scopes;comment:match scopes" json:"scopes"`
	IsDefault         bool               `gorm:"column:is_default;not null;default:false;comment:default seed peer cluster" json:"is_default"`
	SchedulerClusters []SchedulerCluster `gorm:"many2many:seed_peer_cluster_scheduler_cluster;" json:"scheduler_clusters"`
	SeedPeers         []SeedPeer         `json:"-"`
	ApplicationID     uint               `gorm:"comment:application id" json:"application_id"`
	Application       Application        `json:"-"`
	SecurityGroupID   uint               `gorm:"comment:security group id" json:"security_group_id"`
	SecurityGroup     SecurityGroup      `json:"-"`
	Jobs              []Job              `gorm:"many2many:job_seed_peer_cluster;" json:"jobs"`
}

type User

type User struct {
	Model
	Email             string   `gorm:"column:email;type:varchar(256);index:uk_user_email,unique;not null;comment:email address" json:"email"`
	Name              string   `gorm:"column:name;type:varchar(256);index:uk_user_name,unique;not null;comment:name" json:"name"`
	EncryptedPassword string   `gorm:"column:encrypted_password;size:1024;comment:encrypted password" json:"-"`
	Avatar            string   `gorm:"column:avatar;type:varchar(256);comment:avatar address" json:"avatar"`
	Phone             string   `gorm:"column:phone;type:varchar(256);comment:phone number" json:"phone"`
	PrivateToken      string   `gorm:"column:private_token;type:varchar(256);comment:private token" json:"-"`
	State             string   `gorm:"column:state;type:varchar(256);default:'enable';comment:state" json:"state"`
	Location          string   `gorm:"column:location;type:varchar(256);comment:location" json:"location"`
	BIO               string   `gorm:"column:bio;type:varchar(256);comment:biography" json:"bio"`
	Configs           []Config `json:"-"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL