models

package
v0.14.2 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2022 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultClusterSource = "OnPremise"
	ClusterStatusOnLine  = "online"
	ClusterStatusOffLine = "offline"
	DefaultClusterStatus = ClusterStatusOnLine
)
View Source
const (
	QueryEqualWithParam = " (%s = ?) "
	QueryLess           = " (%s <= %s) "
	QueryGreater        = " (%s >= %d) "
	QueryLikeWithParam  = " (%s LIKE ?) "
	QueryInWithParam    = " (%s IN (?)) "
	QueryNotInWithParam = " (%s NOT IN (?)) "
	QueryIsNull         = " (%s IS NULL) "
	QueryAnd            = " AND "
	QueryOr             = " OR "

	CreatedAt     = "created_at"
	UpdatedAt     = "updated_at"
	Type          = "type"
	ServerAddress = "server_address"
	State         = "state"
	ID            = "id"
	FsID          = "fs_id"
	FsCacheID     = "cache_id"
	FsPath        = "fs_path"
	Address       = "address"
	UserName      = "user_name"
	FsName        = "name"
	GrantFsType   = "fs"

	ASC  = "asc"
	DESC = "desc"

	MAXListFileSystems = 1000

	FsPrefix  = "fs-"
	FsNameNum = 8

	TimeFormat = "2006-01-02 15:04:05"
)
View Source
const (
	FileSystemTableName = "filesystem"
)
View Source
const FsCacheTableName = "fs_cache"
View Source
const FsMountTableName = "fs_mount"
View Source
const (
	JobTaskTableName = "job_task"
)
View Source
const (
	LinkTableName = "link"
)
View Source
const (
	ROOT = "root"
)

Variables

This section is empty.

Functions

func CloseQueue

func CloseQueue(queueName string) error

func CountArtifactEvent

func CountArtifactEvent(logEntry *log.Entry, fsID, artifactPath string) (int64, error)

func CountPipelineByMd5InFs

func CountPipelineByMd5InFs(md5, fsID string) (int64, error)

func CountPipelineByNameInFs

func CountPipelineByNameInFs(name, fsID string) (int64, error)

func CreatFileSystem

func CreatFileSystem(fs *FileSystem) error

func CreateArtifactEvent

func CreateArtifactEvent(logEntry *log.Entry, artifact ArtifactEvent) error

func CreateCluster

func CreateCluster(clusterInfo *ClusterInfo) error

func CreateFSCacheConfig

func CreateFSCacheConfig(logEntry *log.Entry, fsCacheConfig *FSCacheConfig) error

func CreateFlavour

func CreateFlavour(flavour *Flavour) error

CreateFlavour create flavour

func CreateGrant

func CreateGrant(ctx *logger.RequestContext, grant *Grant) error

func CreateImage

func CreateImage(logEntry *log.Entry, image *Image) error

func CreateJob

func CreateJob(job *Job) error

CreateJob creates a new job

func CreateLink(link *Link) error

CreateLink creates a new link

func CreatePipeline

func CreatePipeline(logEntry *log.Entry, ppl *Pipeline) (string, error)

func CreateQueue

func CreateQueue(queue *Queue) error

func CreateRun

func CreateRun(logEntry *log.Entry, run *Run) (string, error)

func CreateRunCache

func CreateRunCache(logEntry *log.Entry, cache *RunCache) (string, error)

func CreateRunJobs

func CreateRunJobs(logEntry *log.Entry, jobs map[string]schema.JobView, runID string) error

func CreateUser

func CreateUser(ctx *logger.RequestContext, user *User) error

func DeepCopyQueue

func DeepCopyQueue(queueSrc Queue, queueDesc *Queue)

DeepCopyQueue returns a deep copy of the queue

func DeleteArtifactEvent

func DeleteArtifactEvent(logEntry *log.Entry, username, fsname, runID, artifactPath string) error

func DeleteCluster

func DeleteCluster(clusterName string) error

func DeleteFSCacheConfig

func DeleteFSCacheConfig(logEntry *log.Entry, fsID string) error

func DeleteFileSystem

func DeleteFileSystem(id string) error

func DeleteFlavour

func DeleteFlavour(flavourName string) error

DeleteFlavour delete flavour

func DeleteGrant

func DeleteGrant(ctx *logger.RequestContext, userName, resourceType, resourceID string) error

func DeleteGrantByResourceID

func DeleteGrantByResourceID(ctx *logger.RequestContext, resourceID string) error

func DeleteGrantByUserName

func DeleteGrantByUserName(ctx *logger.RequestContext, userName string) error

func DeleteJob

func DeleteJob(jobID string) error

func DeleteLinkWithFsIDAndFsPath

func DeleteLinkWithFsIDAndFsPath(fsID, fsPath string) error

DeleteLinkWithFsIDAndFsPath delete a file system link

func DeleteQueue

func DeleteQueue(queueName string) error

func DeleteRun

func DeleteRun(logEntry *log.Entry, runID string) error

func DeleteRunCache

func DeleteRunCache(logEntry *log.Entry, cacheID string) error

func DeleteUser

func DeleteUser(ctx *logger.RequestContext, userName string) error

func GetCacheCount

func GetCacheCount(logEntry *log.Entry, runID string) (int64, error)

func GetJobStatusByID

func GetJobStatusByID(jobID string) (schema.JobStatus, error)

func GetRunCount

func GetRunCount(logEntry *log.Entry) (int64, error)

func GetUrlByPFImageID

func GetUrlByPFImageID(logEntry *log.Entry, PFImageID string) (string, error)

func HardDeletePipeline

func HardDeletePipeline(logEntry *log.Entry, id string) error

func HasAccessToResource

func HasAccessToResource(ctx *logger.RequestContext, resourceType string, resourceID string) bool

func InitMockDB

func InitMockDB()

func IsQueueExist

func IsQueueExist(queueName string) bool

func IsQueueInUse

func IsQueueInUse(queueID string) (bool, map[string]schema.JobStatus)

func ListImageIDsByFsID

func ListImageIDsByFsID(logEntry *log.Entry, fsID string) ([]string, error)

func ListJobIDByLabels

func ListJobIDByLabels(labels map[string]string) ([]string, error)

list job process multi label get and result

func ListMountNodesByID

func ListMountNodesByID(fsID string) ([]string, error)

func UpdateArtifactEvent

func UpdateArtifactEvent(logEntry *log.Entry, fsID, artifactPath string, artifact ArtifactEvent) error

func UpdateCache

func UpdateCache(logEntry *log.Entry, cacheID string, cache RunCache) error

func UpdateCluster

func UpdateCluster(clusterId string, clusterInfo *ClusterInfo) error

func UpdateFSCacheConfig

func UpdateFSCacheConfig(logEntry *log.Entry, fsCacheConfig FSCacheConfig) error

func UpdateFlavour

func UpdateFlavour(flavour *Flavour) error

UpdateFlavour update flavour

func UpdateImage

func UpdateImage(logEntry *log.Entry, PFImageID string, image Image) error

func UpdateJob

func UpdateJob(jobID string, status schema.JobStatus, info interface{}, message string) (schema.JobStatus, error)

func UpdateJobConfig

func UpdateJobConfig(jobId string, conf *schema.Conf) error

func UpdateJobStatus

func UpdateJobStatus(jobId, errMessage string, jobStatus schema.JobStatus) error

func UpdateQueue

func UpdateQueue(queue *Queue) error

func UpdateQueueStatus

func UpdateQueueStatus(queueName string, queueStatus string) error

func UpdateRun

func UpdateRun(logEntry *log.Entry, runID string, run Run) error

func UpdateRunJob

func UpdateRunJob(logEntry *log.Entry, runID string, stepName string, runJob RunJob) error

func UpdateRunStatus

func UpdateRunStatus(logEntry *log.Entry, runID, status string) error

func UpdateTask

func UpdateTask(task *JobTask) error

func UpdateUser

func UpdateUser(ctx *logger.RequestContext, userName, password string) error

Types

type ArtifactEvent

type ArtifactEvent struct {
	Pk           int64          `json:"-"                    gorm:"primaryKey;autoIncrement;not null"`
	Md5          string         `json:"-"                    gorm:"type:varchar(32);not null"`
	RunID        string         `json:"runID"                gorm:"type:varchar(60);not null"`
	FsID         string         `json:"-"                    gorm:"type:varchar(60);not null"`
	FsName       string         `json:"fsname"               gorm:"type:varchar(60);not null"`
	UserName     string         `json:"username"             gorm:"type:varchar(60);not null"`
	ArtifactPath string         `json:"artifactPath"         gorm:"type:varchar(256);not null"`
	Step         string         `json:"step"                 gorm:"type:varchar(256);not null"`
	Type         string         `json:"type"                 gorm:"type:varchar(16);not null"`
	ArtifactName string         `json:"artifactName"         gorm:"type:varchar(32);not null"`
	Meta         string         `json:"meta"                 gorm:"type:text;size:65535"`
	CreateTime   string         `json:"createTime"           gorm:"-"`
	UpdateTime   string         `json:"updateTime,omitempty" gorm:"-"`
	CreatedAt    time.Time      `json:"-"`
	UpdatedAt    time.Time      `json:"-"`
	DeletedAt    gorm.DeletedAt `json:"-"                    gorm:"index"`
}

func GetArtifactEvent

func GetArtifactEvent(logEntry *log.Entry, runID, fsID, artifactPath string) (ArtifactEvent, error)

func GetLastArtifactEvent

func GetLastArtifactEvent(logEntry *log.Entry) (ArtifactEvent, error)

func ListArtifactEvent

func ListArtifactEvent(logEntry *log.Entry, pk int64, maxKeys int, userFilter, fsFilter, runFilter, typeFilter, pathFilter []string) ([]ArtifactEvent, error)

func (ArtifactEvent) TableName

func (ArtifactEvent) TableName() string

type ClusterInfo

type ClusterInfo struct {
	Model            `gorm:"embedded"  json:",inline"`
	Pk               int64    `gorm:"primaryKey;autoIncrement" json:"-"`      // 自增主键
	Name             string   `gorm:"column:name" json:"clusterName"`         // 集群名字
	Description      string   `gorm:"column:description" json:"description"`  // 集群描述
	Endpoint         string   `gorm:"column:endpoint" json:"endpoint"`        // 集群endpoint, 比如 http://10.11.11.47:8080
	Source           string   `gorm:"column:source" json:"source"`            // 来源, 比如 OnPremise (内部部署)、AWS、CCE
	ClusterType      string   `gorm:"column:cluster_type" json:"clusterType"` // 集群类型,比如Kubernetes/Local
	Version          string   `gorm:"column:version" json:"version"`          // 集群版本,比如v1.16
	Status           string   `gorm:"column:status" json:"status"`            // 集群状态,可选值为online, offline
	Credential       string   `gorm:"column:credential" json:"credential"`    // 用于存储集群的凭证信息,比如k8s的kube_config配置
	Setting          string   `gorm:"column:setting" json:"setting"`          // 存储额外配置信息
	RawNamespaceList string   `gorm:"column:namespace_list" json:"-"`         // 命名空间列表,json类型,如["ns1", "ns2"]
	NamespaceList    []string `gorm:"-" json:"namespaceList"`                 // 命名空间列表,json类型,如["ns1", "ns2"]
	DeletedAt        string   `gorm:"column:deleted_at" json:"-"`             // 删除标识,非空表示软删除
}

func ActiveClusters

func ActiveClusters() []ClusterInfo

func GetClusterById

func GetClusterById(clusterId string) (ClusterInfo, error)

func GetClusterByName

func GetClusterByName(clusterName string) (ClusterInfo, error)

func GetLastCluster

func GetLastCluster() (ClusterInfo, error)

func ListCluster

func ListCluster(pk int64, maxKeys int, clusterNameList []string, clusterStatus string) ([]ClusterInfo, error)

func (*ClusterInfo) AfterFind

func (clusterInfo *ClusterInfo) AfterFind(*gorm.DB) error

func (*ClusterInfo) BeforeSave

func (clusterInfo *ClusterInfo) BeforeSave(*gorm.DB) error

func (ClusterInfo) MarshalJSON

func (clusterInfo ClusterInfo) MarshalJSON() ([]byte, error)

func (ClusterInfo) TableName

func (ClusterInfo) TableName() string

type ConcurrentFSCacheMap

type ConcurrentFSCacheMap struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*ConcurrentFSCacheMap) Delete

func (cm *ConcurrentFSCacheMap) Delete(key1, key2 string) error

func (*ConcurrentFSCacheMap) Get

func (cm *ConcurrentFSCacheMap) Get(key1, key2 string) *FSCache

func (*ConcurrentFSCacheMap) GetBatch

func (cm *ConcurrentFSCacheMap) GetBatch(key string) []FSCache

func (*ConcurrentFSCacheMap) Put

func (cm *ConcurrentFSCacheMap) Put(key string, value *FSCache)

func (*ConcurrentFSCacheMap) Update

func (cm *ConcurrentFSCacheMap) Update(key, value *FSCache) (has bool, err error)

type DBFSCache

type DBFSCache struct {
	// contains filtered or unexported fields
}

func (*DBFSCache) Add

func (f *DBFSCache) Add(value *FSCache) error

func (*DBFSCache) Delete

func (f *DBFSCache) Delete(fsID, cacheID string) error

func (*DBFSCache) Get

func (f *DBFSCache) Get(fsID string, cacheID string) (*FSCache, error)

func (*DBFSCache) List

func (f *DBFSCache) List(fsID, cacheID string) ([]FSCache, error)

func (*DBFSCache) Update

func (f *DBFSCache) Update(value *FSCache) (int64, error)

type FSCache

type FSCache struct {
	PK          int64          `json:"-" gorm:"primaryKey;autoIncrement"`
	CacheID     string         `json:"cacheID" gorm:"type:varchar(36);column:cache_id"`
	CacheHashID string         `json:"cacheHashID" gorm:"type:varchar(36);column:cache_hash_id"`
	FsID        string         `json:"fsID" gorm:"type:varchar(36);column:fs_id"`
	CacheDir    string         `json:"cacheDir" gorm:"type:varchar(4096);column:cache_dir"`
	NodeName    string         `json:"nodename" gorm:"type:varchar(256);column:nodename"`
	UsedSize    int            `json:"usedSize" gorm:"type:bigint(20);column:usedsize"`
	ClusterID   string         `json:"-"   gorm:"column:cluster_id;default:''"`
	CreatedAt   time.Time      `json:"-"`
	UpdatedAt   time.Time      `json:"-"`
	DeletedAt   gorm.DeletedAt `json:"-"`
}

func (*FSCache) TableName

func (s *FSCache) TableName() string

type FSCacheConfig

type FSCacheConfig struct {
	PK                      int64                  `json:"-"                   gorm:"primaryKey;autoIncrement"`
	FsID                    string                 `json:"fsID"                gorm:"type:varchar(36);unique_index"`
	CacheDir                string                 `json:"cacheDir"`
	Quota                   int                    `json:"quota"`
	MetaDriver              string                 `json:"metaDriver"`
	BlockSize               int                    `json:"blockSize"`
	Debug                   bool                   `json:"debug"`
	NodeAffinityJson        string                 `json:"-"                   gorm:"column:node_affinity;type:text;default:'{}'"`
	NodeAffinityMap         map[string]interface{} `json:"nodeAffinity"        gorm:"-"`
	NodeTaintTolerationJson string                 `json:"-"                   gorm:"column:node_tainttoleration;type:text;default:'{}'"`
	NodeTaintTolerationMap  map[string]interface{} `json:"nodeTaintToleration" gorm:"-"`
	ExtraConfigJson         string                 `json:"-"                   gorm:"column:extra_config;type:text;default:'{}'"`
	ExtraConfigMap          map[string]string      `json:"extraConfig"         gorm:"-"`
	CreatedAt               time.Time              `json:"createTime"`
	UpdatedAt               time.Time              `json:"updateTime,omitempty"`
	DeletedAt               gorm.DeletedAt         `json:"deleteTime,omitempty"`
}

func GetFSCacheConfig

func GetFSCacheConfig(logEntry *log.Entry, fsID string) (FSCacheConfig, error)

func (*FSCacheConfig) AfterFind

func (s *FSCacheConfig) AfterFind(*gorm.DB) error

func (*FSCacheConfig) BeforeSave

func (s *FSCacheConfig) BeforeSave(*gorm.DB) error

func (*FSCacheConfig) TableName

func (s *FSCacheConfig) TableName() string

type FSCacheStore

type FSCacheStore interface {
	Add(value *FSCache) error
	Get(fsID string, cacheID string) (*FSCache, error)
	Delete(fsID, cacheID string) error
	List(fsID, cacheID string) ([]FSCache, error)
	Update(value *FSCache) (int64, error)
}

func GetFSCacheStore

func GetFSCacheStore() FSCacheStore

type FileSystem

type FileSystem struct {
	Model
	Name           string            `json:"name"`
	Type           string            `json:"type"`
	ServerAddress  string            `json:"serverAddress"`
	SubPath        string            `json:"subPath" gorm:"column:subpath"`
	PropertiesJson string            `json:"-" gorm:"column:properties;type:text;default:'{}'"`
	PropertiesMap  map[string]string `json:"properties" gorm:"-"`
	UserName       string            `json:"userName"`
}

FileSystem defined file system model, which can be used to create file system

func GetFileSystemWithFsID

func GetFileSystemWithFsID(fsID string) (FileSystem, error)

func GetFileSystemWithFsIDAndUserName

func GetFileSystemWithFsIDAndUserName(fsID, userName string) (FileSystem, error)

func GetFsWithIDs

func GetFsWithIDs(fsID []string) ([]FileSystem, error)

GetFsWithIDs get file system detail from ids

func GetFsWithNameAndUserName

func GetFsWithNameAndUserName(fsName, userName string) (FileSystem, error)

GetFsWithNameAndUserName get file system detail from name and userID

func GetSimilarityAddressList

func GetSimilarityAddressList(fsType string, ips []string) ([]FileSystem, error)

GetSimilarityAddressList find fs where have same type and serverAddress

func ListFileSystem

func ListFileSystem(limit int, userName, marker, fsName string) ([]FileSystem, error)

ListFileSystem get file systems with marker and limit sort by create_at desc

func (*FileSystem) AfterFind

func (s *FileSystem) AfterFind(*gorm.DB) error

AfterFind is the callback methods doing after the find file system

func (*FileSystem) BeforeSave

func (s *FileSystem) BeforeSave(*gorm.DB) error

BeforeSave is the callback methods for saving file system

func (FileSystem) TableName

func (FileSystem) TableName() string

type Flavour

type Flavour struct {
	Model              `gorm:"embedded"  json:",inline"`
	Pk                 int64                      `json:"-"           gorm:"primaryKey;autoIncrement"`
	Name               string                     `json:"name"        gorm:"uniqueIndex"`
	ClusterID          string                     `json:"-"   gorm:"column:cluster_id;default:''"`
	ClusterName        string                     `json:"-" gorm:"column:cluster_name;->"`
	CPU                string                     `json:"cpu"         gorm:"column:cpu"`
	Mem                string                     `json:"mem"         gorm:"column:mem"`
	RawScalarResources string                     `json:"-"           gorm:"column:scalar_resources;type:text;default:'{}'"`
	ScalarResources    schema.ScalarResourcesType `json:"scalarResources" gorm:"-"`
	UserName           string                     `json:"-" gorm:"column:user_name"`
	DeletedAt          gorm.DeletedAt             `json:"-" gorm:"index"`
}

Flavour records request resource info for each job

func GetFlavour

func GetFlavour(flavourName string) (Flavour, error)

GetFlavour get flavour

func GetLastFlavour

func GetLastFlavour() (Flavour, error)

GetLastFlavour get last flavour that usually be used for indicating last page

func ListFlavour

func ListFlavour(pk int64, maxKeys int, clusterID, queryKey string) ([]Flavour, error)

ListFlavour all params is nullable, and support fuzzy query of flavour's name by queryKey

func (*Flavour) AfterFind

func (flavour *Flavour) AfterFind(*gorm.DB) error

AfterFind triggered when query sql

func (*Flavour) BeforeSave

func (flavour *Flavour) BeforeSave(*gorm.DB) error

BeforeSave is the callback methods for saving flavour

func (Flavour) MarshalJSON

func (flavour Flavour) MarshalJSON() ([]byte, error)

MarshalJSON decorate format of time

func (Flavour) TableName

func (Flavour) TableName() string

TableName indicate table name of Flavour

type FsMount

type FsMount struct {
	PK         int64          `json:"-" gorm:"primaryKey;autoIncrement"`
	MountID    string         `json:"mountID" gorm:"type:varchar(36);column:mount_id"`
	FsID       string         `json:"fsID" gorm:"type:varchar(36);column:fs_id"`
	MountPoint string         `json:"mountpoint" gorm:"type:varchar(4096);column:mountpoint"`
	NodeName   string         `json:"nodename" gorm:"type:varchar(256);column:nodename"`
	ClusterID  string         `json:"-"   gorm:"column:cluster_id;default:''"`
	CreatedAt  time.Time      `json:"-"`
	UpdatedAt  time.Time      `json:"-"`
	DeletedAt  gorm.DeletedAt `json:"-"  gorm:"index"`
}

FsMount defined file system mount info

func (*FsMount) Add

func (f *FsMount) Add(value *FsMount) error

func (*FsMount) DeleteMount

func (f *FsMount) DeleteMount(mountID string) error

func (*FsMount) ListMount

func (f *FsMount) ListMount(where *FsMount, limit int, marker string) (fsMounts []FsMount, err error)

func (*FsMount) TableName

func (f *FsMount) TableName() string

type Grant

type Grant struct {
	Pk           int64          `json:"-" gorm:"primaryKey;autoIncrement"`
	ID           string         `json:"grantID" gorm:"uniqueIndex"`
	UserName     string         `json:"userName"`
	ResourceType string         `json:"resourceType"`
	ResourceID   string         `json:"resourceID"`
	CreatedAt    time.Time      `json:"createTime"`
	UpdatedAt    time.Time      `json:"updateTime,omitempty"`
	DeletedAt    gorm.DeletedAt `json:"-" gorm:"index"`
}

func GetGrant

func GetGrant(ctx *logger.RequestContext, userName, resourceType, resourceID string) (*Grant, error)

func GetLastGrant

func GetLastGrant(ctx *logger.RequestContext) (Grant, error)

func ListGrant

func ListGrant(ctx *logger.RequestContext, pk int64, maxKeys int, userName string) ([]Grant, error)

func (Grant) TableName

func (Grant) TableName() string

type Image

type Image struct {
	Pk        int64          `json:"-"         gorm:"primaryKey;autoIncrement;not null"`
	ID        string         `json:"PFImageID" gorm:"type:varchar(128);not null;uniqueIndex"`
	ImageID   string         `json:"imageID"   gorm:"type:varchar(64)"`
	FsID      string         `json:"fsID"      gorm:"type:varchar(60);not null"`
	Source    string         `json:"source"    gorm:"type:varchar(256);not null"`
	Url       string         `json:"url"       gorm:"type:varchar(256)"`
	CreatedAt time.Time      `json:"-"`
	UpdatedAt time.Time      `json:"-"`
	DeletedAt gorm.DeletedAt `json:"-"         gorm:"index"`
}

func GetImage

func GetImage(logEntry *log.Entry, PFImageID string) (Image, error)

func (Image) TableName

func (Image) TableName() string

type Job

type Job struct {
	Pk                int64            `json:"-" gorm:"primaryKey;autoIncrement"`
	ID                string           `json:"jobID" gorm:"type:varchar(60);index:idx_id,unique;NOT NULL"`
	Name              string           `json:"jobName" gorm:"type:varchar(512);default:''"`
	UserName          string           `json:"userName" gorm:"NOT NULL"`
	QueueID           string           `json:"queueID" gorm:"NOT NULL"`
	Type              string           `json:"type" gorm:"type:varchar(20);NOT NULL"`
	ConfigJson        string           `json:"-" gorm:"column:config;type:text"`
	Config            *schema.Conf     `json:"config" gorm:"-"`
	RuntimeInfoJson   string           `json:"-" gorm:"column:runtime_info;default:'{}'"`
	RuntimeInfo       interface{}      `json:"runtimeInfo" gorm:"-"`
	Status            schema.JobStatus `json:"status" gorm:"type:varchar(32);"`
	Message           string           `json:"message"`
	ResourceJson      string           `json:"-" gorm:"column:resource;type:text;default:'{}'"`
	Resource          *schema.Resource `json:"resource" gorm:"-"`
	Framework         schema.Framework `json:"framework" gorm:"type:varchar(30)"`
	MembersJson       string           `json:"-" gorm:"column:members;type:text"`
	Members           []Member         `json:"members" gorm:"-"`
	ExtensionTemplate string           `json:"-" gorm:"type:text"`
	ParentJob         string           `json:"-" gorm:"type:varchar(60)"`
	CreatedAt         time.Time        `json:"createTime"`
	ActivatedAt       sql.NullTime     `json:"activateTime"`
	UpdatedAt         time.Time        `json:"updateTime,omitempty"`
	DeletedAt         string           `json:"-" gorm:"index:idx_id"`
}

func GetJobByID

func GetJobByID(jobID string) (Job, error)

func GetJobsByRunID

func GetJobsByRunID(runID string, jobID string) ([]Job, error)

func GetLastJob

func GetLastJob() (Job, error)

func GetUnscopedJobByID

func GetUnscopedJobByID(jobID string) (Job, error)

func ListJob

func ListJob(pk int64, maxKeys int, queue, status, startTime, timestamp, userFilter string, labels map[string]string) ([]Job, error)

func ListJobByParentID

func ListJobByParentID(parentID string) ([]Job, error)

func ListJobByUpdateTime

func ListJobByUpdateTime(updateTime string) ([]Job, error)

func ListQueueJob

func ListQueueJob(queueID string, status []schema.JobStatus) []Job

func (*Job) AfterFind

func (job *Job) AfterFind(tx *gorm.DB) error

func (*Job) BeforeSave

func (job *Job) BeforeSave(tx *gorm.DB) error

func (Job) TableName

func (Job) TableName() string

type JobLabel

type JobLabel struct {
	Pk        int64  `gorm:"primaryKey;autoIncrement"`
	ID        string `gorm:"type:varchar(36);uniqueIndex"`
	Label     string `gorm:"type:varchar(255);NOT NULL"`
	JobID     string `gorm:"type:varchar(60);NOT NULL"`
	CreatedAt time.Time
	DeletedAt gorm.DeletedAt `gorm:"index"`
}

func (JobLabel) TableName

func (JobLabel) TableName() string

type JobTask

type JobTask struct {
	Pk                   int64             `json:"-" gorm:"primaryKey;autoIncrement"`
	ID                   string            `json:"id" gorm:"type:varchar(64);uniqueIndex"` // k8s:podID
	JobID                string            `json:"jobID" gorm:"type:varchar(60)"`
	Namespace            string            `json:"namespace" gorm:"type:varchar(64)"`
	Name                 string            `json:"name" gorm:"type:varchar(512)"`
	MemberRole           schema.MemberRole `json:"memberRole"`
	Status               schema.TaskStatus `json:"status"`
	Message              string            `json:"message"`
	LogURL               string            `json:"logURL"`
	ExtRuntimeStatusJSON string            `json:"extRuntimeStatus" gorm:"column:ext_runtime_status;default:'{}'"`
	ExtRuntimeStatus     interface{}       `json:"-" gorm:"-"` // k8s:v1.PodStatus
	CreatedAt            time.Time         `json:"-"`
	StartedAt            sql.NullTime      `json:"-"`
	UpdatedAt            time.Time         `json:"-"`
	DeletedAt            sql.NullTime      `json:"-"`
}

func GetJobTaskByID

func GetJobTaskByID(id string) (JobTask, error)

func ListByJobID

func ListByJobID(jobID string) ([]JobTask, error)

func (*JobTask) AfterFind

func (task *JobTask) AfterFind(*gorm.DB) error

func (*JobTask) BeforeSave

func (task *JobTask) BeforeSave(*gorm.DB) error

func (JobTask) TableName

func (JobTask) TableName() string
type Link struct {
	Model
	FsID           string            `json:"fsID"`
	FsPath         string            `json:"FsPath"`
	ServerAddress  string            `json:"serverAddress"`
	SubPath        string            `json:"subPath" gorm:"column:subpath"`
	Type           string            `json:"type"`
	PropertiesJson string            `json:"-" gorm:"column:properties;type:text;default:'{}'"`
	PropertiesMap  map[string]string `json:"properties" gorm:"-"`
	UserName       string            `json:"userName"`
}

Link defined file system model, which can be used to create link

func FsNameLinks(fsID string) ([]Link, error)

func GetLinkWithFsIDAndPath

func GetLinkWithFsIDAndPath(fsID, fsPath string) ([]Link, error)

func LinkWithFsIDAndFsPath

func LinkWithFsIDAndFsPath(fsID, fsPath string) (Link, error)
func ListLink(limit int, marker, fsID string) ([]Link, error)

ListLink get links with marker and limit sort by create_at desc

func (*Link) AfterFind

func (s *Link) AfterFind(*gorm.DB) error

AfterFind is the callback methods doing after the find link

func (*Link) BeforeSave

func (s *Link) BeforeSave(*gorm.DB) error

BeforeSave is the callback methods for saving file system

func (Link) TableName

func (Link) TableName() string

type MemFSCache

type MemFSCache struct {
	// contains filtered or unexported fields
}

func (*MemFSCache) Add

func (mem *MemFSCache) Add(value *FSCache) error

func (*MemFSCache) Delete

func (mem *MemFSCache) Delete(fsID, cacheID string) error

func (*MemFSCache) Get

func (mem *MemFSCache) Get(fsID string, cacheID string) (*FSCache, error)

func (*MemFSCache) List

func (mem *MemFSCache) List(fsID, cacheID string) ([]FSCache, error)

func (*MemFSCache) Update

func (mem *MemFSCache) Update(value *FSCache) (int64, error)

type Member

type Member struct {
	ID          string            `json:"id"`
	Replicas    int               `json:"replicas"`
	Role        schema.MemberRole `json:"role"`
	schema.Conf `json:",inline"`
}

type Model

type Model struct {
	ID        string    `json:"id"`
	CreatedAt time.Time `json:"-"`
	UpdatedAt time.Time `json:"-"`
}

func (*Model) BeforeCreate

func (m *Model) BeforeCreate(tx *gorm.DB) error

BeforeCreate the function do the operation before creating file system or link

type Pipeline

type Pipeline struct {
	Pk           int64          `json:"-"                    gorm:"primaryKey;autoIncrement;not null"`
	ID           string         `json:"pipelineID"           gorm:"type:varchar(60);not null;uniqueIndex"`
	Name         string         `json:"name"                 gorm:"type:varchar(60);not null;uniqueIndex:idx_fs_name"`
	FsID         string         `json:"-"                    gorm:"type:varchar(60);not null;uniqueIndex:idx_fs_name;uniqueIndex:idx_fs_md5"`
	FsName       string         `json:"fsname"               gorm:"type:varchar(60);not null"`
	UserName     string         `json:"username"             gorm:"type:varchar(60);not null"`
	PipelineYaml string         `json:"pipelineYaml"         gorm:"type:text;size:65535"`
	PipelineMd5  string         `json:"pipelineMd5"          gorm:"type:varchar(32);not null;uniqueIndex:idx_fs_md5"`
	CreateTime   string         `json:"createTime,omitempty" gorm:"-"`
	UpdateTime   string         `json:"updateTime,omitempty" gorm:"-"`
	CreatedAt    time.Time      `json:"-"`
	UpdatedAt    time.Time      `json:"-"`
	DeletedAt    gorm.DeletedAt `json:"-"                    gorm:"index"`
}

func GetLastPipeline

func GetLastPipeline(logEntry *log.Entry) (Pipeline, error)

func GetPipelineByID

func GetPipelineByID(id string) (Pipeline, error)

func GetPipelineByMd5AndFs

func GetPipelineByMd5AndFs(md5, fsID string) (Pipeline, error)

func GetPipelineByNameAndFs

func GetPipelineByNameAndFs(fsID, name string) (Pipeline, error)

func ListPipeline

func ListPipeline(pk int64, maxKeys int, userFilter, fsFilter, nameFilter []string) ([]Pipeline, error)

func (*Pipeline) Decode

func (p *Pipeline) Decode() error

func (Pipeline) TableName

func (Pipeline) TableName() string

type Queue

type Queue struct {
	Model           `gorm:"embedded"`
	Pk              int64               `json:"-" gorm:"primaryKey;autoIncrement"`
	Name            string              `json:"name" gorm:"uniqueIndex"`
	Namespace       string              `json:"namespace" gorm:"column:"`
	ClusterId       string              `json:"-" gorm:"column:cluster_id"`
	ClusterName     string              `json:"clusterName" gorm:"column:cluster_name;->"`
	QuotaType       string              `json:"quotaType"`
	RawMinResources string              `json:"-" gorm:"column:min_resources;default:'{}'"`
	MinResources    schema.ResourceInfo `json:"minResources" gorm:"-"`
	RawMaxResources string              `json:"-" gorm:"column:max_resources;default:'{}'"`
	MaxResources    schema.ResourceInfo `json:"maxResources" gorm:"-"`
	RawLocation     string              `json:"-" gorm:"column:location;type:text;default:'{}'"`
	Location        map[string]string   `json:"location" gorm:"-"`
	// 任务调度策略
	RawSchedulingPolicy string         `json:"-" gorm:"column:scheduling_policy"`
	SchedulingPolicy    []string       `json:"schedulingPolicy,omitempty" gorm:"-"`
	Status              string         `json:"status"`
	DeletedAt           gorm.DeletedAt `json:"-" gorm:"index"`
}

func GetLastQueue

func GetLastQueue() (Queue, error)

func GetQueueByID

func GetQueueByID(queueID string) (Queue, error)

func GetQueueByName

func GetQueueByName(queueName string) (Queue, error)

func ListQueue

func ListQueue(pk int64, maxKeys int, queueName string, userName string) ([]Queue, error)

func ListQueuesByCluster

func ListQueuesByCluster(clusterID string) []Queue

func (*Queue) AfterFind

func (queue *Queue) AfterFind(*gorm.DB) error

func (*Queue) BeforeSave

func (queue *Queue) BeforeSave(*gorm.DB) error

BeforeSave is the callback methods for saving file system

func (Queue) MarshalJSON

func (queue Queue) MarshalJSON() ([]byte, error)

func (Queue) TableName

func (Queue) TableName() string

type Run

type Run struct {
	Pk             int64                  `gorm:"primaryKey;autoIncrement;not null" json:"-"`
	ID             string                 `gorm:"type:varchar(60);not null"         json:"runID"`
	Name           string                 `gorm:"type:varchar(60);not null"         json:"name"`
	Source         string                 `gorm:"type:varchar(256);not null"        json:"source"` // pipelineID or yamlPath
	UserName       string                 `gorm:"type:varchar(60);not null"         json:"username"`
	FsID           string                 `gorm:"type:varchar(60);not null"         json:"-"`
	FsName         string                 `gorm:"type:varchar(60);not null"         json:"fsname"`
	Description    string                 `gorm:"type:text;size:65535;not null"     json:"description"`
	ParametersJson string                 `gorm:"type:text;size:65535"              json:"-"`
	Parameters     map[string]interface{} `gorm:"-"                                 json:"parameters"`
	RunYaml        string                 `gorm:"type:text;size:65535"              json:"runYaml"`
	WorkflowSource schema.WorkflowSource  `gorm:"-"                                 json:"-"` // RunYaml's dynamic struct
	Runtime        schema.RuntimeView     `gorm:"-"                                 json:"runtime"`
	PostProcess    schema.PostProcessView `gorm:"-"                                 json:"postProcess"`
	FailureOptions schema.FailureOptions  `gorm:"-"                                 json:"failureOptions"`
	DockerEnv      string                 `gorm:"type:varchar(128)"                 json:"dockerEnv"`
	Entry          string                 `gorm:"type:varchar(256)"                 json:"entry"`
	Disabled       string                 `gorm:"type:text;size:65535"              json:"disabled"`
	Message        string                 `gorm:"type:text;size:65535"              json:"runMsg"`
	Status         string                 `gorm:"type:varchar(32)"                  json:"status"` // StatusRun%%%
	RunCachedIDs   string                 `gorm:"type:text;size:65535"              json:"runCachedIDs"`
	CreateTime     string                 `gorm:"-"                                 json:"createTime"`
	ActivateTime   string                 `gorm:"-"                                 json:"activateTime"`
	UpdateTime     string                 `gorm:"-"                                 json:"updateTime,omitempty"`
	CreatedAt      time.Time              `                                         json:"-"`
	ActivatedAt    sql.NullTime           `                                         json:"-"`
	UpdatedAt      time.Time              `                                         json:"-"`
	DeletedAt      gorm.DeletedAt         `gorm:"index"                             json:"-"`
}

func GetLastRun

func GetLastRun(logEntry *log.Entry) (Run, error)

func GetRunByID

func GetRunByID(logEntry *log.Entry, runID string) (Run, error)

func ListRun

func ListRun(logEntry *log.Entry, pk int64, maxKeys int, userFilter, fsFilter, runFilter, nameFilter []string) ([]Run, error)

func ListRunsByStatus

func ListRunsByStatus(logEntry *log.Entry, statusList []string) ([]Run, error)

func (*Run) Encode

func (r *Run) Encode() error

func (*Run) GetRunCacheIDList

func (r *Run) GetRunCacheIDList() []string

func (Run) TableName

func (Run) TableName() string

type RunCache

type RunCache struct {
	Pk          int64          `json:"-"                    gorm:"primaryKey;autoIncrement;not null"`
	ID          string         `json:"cacheID"              gorm:"type:varchar(60);not null;uniqueIndex"`
	FirstFp     string         `json:"firstFp"              gorm:"type:varchar(256)"`
	SecondFp    string         `json:"secondFp"             gorm:"type:varchar(256)"`
	RunID       string         `json:"runID"                gorm:"type:varchar(60);not null"`
	Source      string         `json:"source"               gorm:"type:varchar(256);not null"`
	Step        string         `json:"step"                 gorm:"type:varchar(256);not null"`
	FsID        string         `json:"-"                    gorm:"type:varchar(60);not null"`
	FsName      string         `json:"fsname"               gorm:"type:varchar(60);not null"`
	UserName    string         `json:"username"             gorm:"type:varchar(60);not null"`
	ExpiredTime string         `json:"expiredTime"          gorm:"type:varchar(64);default:'-1'"`
	Strategy    string         `json:"strategy"             gorm:"type:varchar(16);default:'conservative'"`
	Custom      string         `json:"custom"               gorm:"type:text;size:65535"`
	CreateTime  string         `json:"createTime"           gorm:"-"`
	UpdateTime  string         `json:"updateTime,omitempty" gorm:"-"`
	CreatedAt   time.Time      `json:"-"`
	UpdatedAt   time.Time      `json:"-"`
	DeletedAt   gorm.DeletedAt `json:"-"                    gorm:"index"`
}

func GetLastCacheForRun

func GetLastCacheForRun(logEntry *log.Entry, runID string) (RunCache, error)

func GetLastRunCache

func GetLastRunCache(logEntry *log.Entry) (RunCache, error)

func GetRunCache

func GetRunCache(logEntry *log.Entry, cacheID string) (RunCache, error)

func ListRunCache

func ListRunCache(logEntry *log.Entry, pk int64, maxKeys int, userFilter, fsFilter, runFilter []string) ([]RunCache, error)

func ListRunCacheByFirstFp

func ListRunCacheByFirstFp(logEntry *log.Entry, firstFp, fsID, step, source string) ([]RunCache, error)

func (RunCache) TableName

func (RunCache) TableName() string

type RunJob

type RunJob struct {
	Pk             int64             `gorm:"primaryKey;autoIncrement;not null" json:"-"`
	ID             string            `gorm:"type:varchar(60);not null"         json:"jobID"`
	RunID          string            `gorm:"type:varchar(60);not null"         json:"runID"`
	Name           string            `gorm:"type:varchar(60);not null"         json:"name"`
	StepName       string            `gorm:"type:varchar(60);not null"         json:"step_name"`
	Command        string            `gorm:"type:text;size:65535;not null"     json:"command"`
	Parameters     map[string]string `gorm:"-"                                 json:"parameters"`
	ParametersJson string            `gorm:"type:text;size:65535;not null"     json:"-"`
	Artifacts      schema.Artifacts  `gorm:"-"                                 json:"artifacts"`
	ArtifactsJson  string            `gorm:"type:text;size:65535;not null"     json:"-"`
	Env            map[string]string `gorm:"-"                                 json:"env"`
	EnvJson        string            `gorm:"type:text;size:65535;not null"     json:"-"`
	DockerEnv      string            `gorm:"type:varchar(128);not null"        json:"docker_env"`
	Status         schema.JobStatus  `gorm:"type:varchar(32);not null"         json:"status"`
	Message        string            `gorm:"type:text;size:65535;not null"     json:"message"`
	Cache          schema.Cache      `gorm:"-"                                 json:"cache"`
	CacheJson      string            `gorm:"type:text;size:65535;not null"     json:"-"`
	CacheRunID     string            `gorm:"type:varchar(60);not null"         json:"cache_run_id"`
	CreateTime     string            `gorm:"-"                                 json:"createTime"`
	ActivateTime   string            `gorm:"-"                                 json:"activateTime"`
	UpdateTime     string            `gorm:"-"                                 json:"updateTime,omitempty"`
	CreatedAt      time.Time         `                                         json:"-"`
	ActivatedAt    sql.NullTime      `                                         json:"-"`
	UpdatedAt      time.Time         `                                         json:"-"`
	DeletedAt      gorm.DeletedAt    `gorm:"index"                             json:"-"`
}

func GetRunJobsOfRun

func GetRunJobsOfRun(logEntry *log.Entry, runID string) ([]RunJob, error)

func ParseRunJob

func ParseRunJob(jobView *schema.JobView) RunJob

func (*RunJob) Encode

func (rj *RunJob) Encode() error

func (*RunJob) ParseJobView

func (rj *RunJob) ParseJobView(step *schema.WorkflowSourceStep) schema.JobView

type Transaction

type Transaction func(db *gorm.DB) error

type User

type User struct {
	Pk        int64          `json:"-" gorm:"primaryKey;autoIncrement"`
	CreatedAt time.Time      `json:"createTime"`
	UpdatedAt time.Time      `json:"-"`
	DeletedAt gorm.DeletedAt `json:"-"`
	UserInfo  `gorm:"embedded"`
}

func GetLastUser

func GetLastUser(ctx *logger.RequestContext) (User, error)

func GetUserByName

func GetUserByName(ctx *logger.RequestContext, userName string) (User, error)

func ListUser

func ListUser(ctx *logger.RequestContext, pk int64, maxKey int) ([]User, error)

func (User) TableName

func (User) TableName() string

type UserInfo

type UserInfo struct {
	Name     string `gorm:"uniqueIndex" json:"name"`
	Password string `json:"-"`
}

Jump to

Keyboard shortcuts

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