dao

package
v1.1.0-rc Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2021 License: AGPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const BULK_INSERT_CHUNK_SIZE = 3000
View Source
const DIALECT = "mysql"

DIALECT db 类型

Variables

View Source
var (
	ErrNotFoundOrg         = errors.New("org not found")
	ErrNotFoundProject     = errors.New("project not found")
	ErrNotFoundApplication = errors.New("application not found")
	ErrNotFoundMember      = errors.New("member not found")
	ErrNotFoundTicket      = errors.New("ticket not found")
	ErrNotFoundPublisher   = errors.New("publisher not found")
	ErrNotFoundCertificate = errors.New("certificate not found")
	ErrNotFoundApprove     = errors.New("approve not found")
	ErrNotFoundUsecase     = errors.New("usecase not found")
)

dao层错误码统一定义

Functions

func Count

func Count()

Count 记录cmdb运行时间,获取的容器数量,主机数量

func MakeHostLabel

func MakeHostLabel(hostLabels string) string

TODO deprecated MakeHostLabel 处理宿主机调度标签可读

func Round

func Round(f float64, n int) float64

Round 保留小数点计算

Types

type BaseModel

type BaseModel struct {
	ID        int64     `json:"id" gorm:"primary_key"`
	CreatedAt time.Time `json:"createdAt"`
	UpdatedAt time.Time `json:"updatedAt"`
}

BaseModel common info for all models

type DBClient

type DBClient struct {
	*gorm.DB
}

DBClient db client

func NewDBClient

func NewDBClient() (*DBClient, error)

NewDBClient create new db client

func (*DBClient) AllAddonsByCluster

func (client *DBClient) AllAddonsByCluster(ctx context.Context, cluster string) ([]types.CmContainer, error)

AllAddonsByCluster 获取集群所有的 dice addons containers

func (*DBClient) AllComponentsByCluster

func (client *DBClient) AllComponentsByCluster(ctx context.Context, cluster string) ([]types.CmContainer, error)

AllComponentsByCluster 获取集群所有的 dice components containers

func (*DBClient) AllContainersByAddon

func (client *DBClient) AllContainersByAddon(ctx context.Context, cluster string, addon []string) ([]types.CmContainer, error)

AllContainersByAddon 获取指定 addon 下所有的containers

func (*DBClient) AllContainersByApplication

func (client *DBClient) AllContainersByApplication(ctx context.Context, app []string) ([]types.CmContainer, error)

AllContainersByApplication 获取指定 appliaction 下所有 containers

func (*DBClient) AllContainersByCluster

func (client *DBClient) AllContainersByCluster(ctx context.Context, cluster string) ([]types.CmContainer, error)

AllContainersByCluster 获取整个 cluster 所有的 containers

func (*DBClient) AllContainersByComponent

func (client *DBClient) AllContainersByComponent(ctx context.Context, cluster string, component []string) ([]types.CmContainer, error)

AllContainersByComponent 获取指定 component 下所有的containers

func (*DBClient) AllContainersByHost

func (client *DBClient) AllContainersByHost(ctx context.Context, cluster string, host []string) ([]types.CmContainer, error)

AllContainersByHost 获取指定 host 下所有 containers

func (*DBClient) AllContainersByOrg

func (client *DBClient) AllContainersByOrg(ctx context.Context, org string) ([]types.CmContainer, error)

AllContainersByOrg 获取指定 org 下所有 containers

func (*DBClient) AllContainersByProject

func (client *DBClient) AllContainersByProject(ctx context.Context, project []string) ([]types.CmContainer, error)

AllContainersByProject 获取指定 project 下所有 containers

func (*DBClient) AllContainersByRuntime

func (client *DBClient) AllContainersByRuntime(ctx context.Context, runtime []string) ([]types.CmContainer, error)

AllContainersByRuntime 获取指定 runtime 下所有 containers

func (*DBClient) AllContainersByService

func (client *DBClient) AllContainersByService(ctx context.Context, runtime string, service []string) ([]types.CmContainer, error)

AllContainersByService 获取指定 service 下所有 containers

func (*DBClient) AllHostsByCluster

func (client *DBClient) AllHostsByCluster(ctx context.Context, cluster string) (*[]types.CmHost, error)

AllHostsByCluster 获取指定集群下所有的host信息

func (*DBClient) AllProjectsContainersByCluster

func (client *DBClient) AllProjectsContainersByCluster(ctx context.Context, cluster string) ([]types.CmContainer, error)

AllProjectsContainersByCluster 获取整个 cluster 所有通过 dice 创建的 containers

func (*DBClient) AllRunningAddonsByCluster

func (client *DBClient) AllRunningAddonsByCluster(ctx context.Context, cluster string) ([]types.CmContainer, error)

AllRunningAddonsByCluster 获取集群所有运行中的 dice addons containers

func (*DBClient) AllRunningComponentsByCluster

func (client *DBClient) AllRunningComponentsByCluster(ctx context.Context, cluster string) ([]types.CmContainer, error)

AllRunningComponentsByCluster 获取集群所有正在运行的 dice components containers

func (*DBClient) AllRunningContainersByApplication

func (client *DBClient) AllRunningContainersByApplication(ctx context.Context, app []string) ([]types.CmContainer, error)

AllRunningContainersByApplication 获取指定 appliaction 下所有正在运行的 containers

func (*DBClient) AllRunningContainersByCluster

func (client *DBClient) AllRunningContainersByCluster(ctx context.Context, cluster string) ([]types.CmContainer, error)

AllRunningContainersByCluster 获取整个 cluster 所有正在运行的 containers

func (*DBClient) AllRunningContainersByComponent

func (client *DBClient) AllRunningContainersByComponent(ctx context.Context, cluster string, component []string) ([]types.CmContainer, error)

AllRunningContainersByComponent 获取指定 component 下所有正在运行的 containers

func (*DBClient) AllRunningContainersByHost

func (client *DBClient) AllRunningContainersByHost(ctx context.Context, cluster string, host []string) ([]types.CmContainer, error)

AllRunningContainersByHost 获取指定 host 下所有运行中的 containers

func (*DBClient) AllRunningContainersByOrg

func (client *DBClient) AllRunningContainersByOrg(ctx context.Context, org string) ([]types.CmContainer, error)

AllRunningContainersByOrg 获取指定 org 下所有正在运行的 containers

func (*DBClient) AllRunningContainersByProject

func (client *DBClient) AllRunningContainersByProject(ctx context.Context, project []string) ([]types.CmContainer, error)

AllRunningContainersByProject 获取指定 project 下所有正在运行的 containers

func (*DBClient) AllRunningContainersByRuntime

func (client *DBClient) AllRunningContainersByRuntime(ctx context.Context, runtime []string) ([]types.CmContainer, error)

AllRunningContainersByRuntime 获取指定 runtime 下所有正在运行的 containers

func (*DBClient) AllRunningContainersByService

func (client *DBClient) AllRunningContainersByService(ctx context.Context, runtime string, service []string) ([]types.CmContainer, error)

AllRunningContainersByService 获取指定 service 下所有正在运行的 containers

func (*DBClient) AllRunningProjectsContainers

func (client *DBClient) AllRunningProjectsContainers(ctx context.Context) ([]types.CmContainer, error)

func (*DBClient) AllRunningProjectsContainersByCluster

func (client *DBClient) AllRunningProjectsContainersByCluster(ctx context.Context, cluster string) ([]types.CmContainer, error)

AllRunningProjectsContainersByCluster 获取整个 cluster 所有通过 dice 创建且正在运行的 containers

func (*DBClient) BulkInsert

func (client *DBClient) BulkInsert(objects interface{}, excludeColumns ...string) error

func (*DBClient) CreateCluster

func (client *DBClient) CreateCluster(cluster *model.Cluster) error

CreateCluster 创建集群

func (*DBClient) CreateContainer

func (client *DBClient) CreateContainer(container *model.Container) error

CreateContainer 创建容器

func (*DBClient) CreateDeployment

func (client *DBClient) CreateDeployment(deployment *model.Deployments) error

CreateDeployment 创建正在运行的deployment

func (*DBClient) CreateHost

func (client *DBClient) CreateHost(host *model.Host) error

CreateHost 创建host

func (*DBClient) CreateJob

func (client *DBClient) CreateJob(Job *model.Jobs) error

CreateJob 创建正在运行的Job

func (*DBClient) CreateOrUpdateService

func (client *DBClient) CreateOrUpdateService(ctx context.Context, service *types.CmService) error

CreateOrUpdateService 更新服务信息

func (*DBClient) DeleteAllContainersByHost

func (client *DBClient) DeleteAllContainersByHost(ctx context.Context, cluster, host string) error

DeleteAllContainersByHost 删除指定 host 下所有 containers

func (*DBClient) DeleteCluster

func (client *DBClient) DeleteCluster(clusterName string) error

DeleteCluster 删除集群

func (*DBClient) DeleteContainer

func (client *DBClient) DeleteContainer(ctx context.Context, c *types.CmContainer) error

DeleteContainer 删除 container 信息

func (*DBClient) DeleteDeployment

func (client *DBClient) DeleteDeployment(orgID string, taskID uint64) error

DeleteDeployment 删除 deployment 信息

func (*DBClient) DeleteHostByName

func (client *DBClient) DeleteHostByName(ctx context.Context, cluster, name string) error

DeleteHostByName 根据名字删除指定集群下指定的宿主机

func (*DBClient) DeleteJob

func (client *DBClient) DeleteJob(orgID string, taskID uint64) error

DeleteJob 删除 Job 信息

func (*DBClient) DeleteStoppedContainersByPeriod

func (client *DBClient) DeleteStoppedContainersByPeriod(ctx context.Context, period time.Duration) error

DeleteStoppedContainersByPeriod 删除指定时间前,且已经停止的 containers

func (*DBClient) GetAbnormalHostsNumberByClusterAndOrg

func (client *DBClient) GetAbnormalHostsNumberByClusterAndOrg(clusterName, orgName string) (uint64, error)

GetAbnormalHostsNumberByClusterAndOrg 根据 clusterName & orgName 获取集群异常主机总数

func (*DBClient) GetAccumulateResource

func (client *DBClient) GetAccumulateResource(cluster, resource string) (uint64, error)

GetAccumulateResource 根据resource(项目、应用、runtime)类型,获取指定集群对应的数量

func (*DBClient) GetCluster

func (client *DBClient) GetCluster(clusterID int64) (*model.Cluster, error)

GetCluster 获取集群详情

func (*DBClient) GetClusterByName

func (client *DBClient) GetClusterByName(clusterName string) (*model.Cluster, error)

GetClusterByName 根据集群名称获取集群详情

func (*DBClient) GetContainerByTaskIDOrContainerID

func (client *DBClient) GetContainerByTaskIDOrContainerID(cluster, taskID, containerID string) ([]model.Container, error)

GetContainerByTaskIDOrContainerID 根据 taskID 或 containerID 获取实例列表

  1. scheduler事件暂时只有taskID(marathon集群唯一, k8s集群为podID)
  2. telegraf推送事件taskID & containerID都不为空

func (*DBClient) GetDeployment

func (client *DBClient) GetDeployment(orgID string, taskID uint64) []model.Deployments

GetDeployment 获取部署信息

func (*DBClient) GetHostByClusterAndIP

func (client *DBClient) GetHostByClusterAndIP(clusterName, privateAddr string) (*model.Host, error)

GetHostByClusterAndIP 根据 cluster & privateAddr获取主机信息

func (*DBClient) GetHostsByCluster

func (client *DBClient) GetHostsByCluster(clusterName string) (*[]model.Host, error)

GetHostsByCluster 根据 clusterName获取主机列表

func (*DBClient) GetHostsByClusterAndNullOrg

func (client *DBClient) GetHostsByClusterAndNullOrg(clusterName string) (*[]model.Host, error)

GetHostsByClusterAndNullOrg 为兼容dcos 有些机器未加 org 标

func (*DBClient) GetHostsByClusterAndOrg

func (client *DBClient) GetHostsByClusterAndOrg(clusterName, orgName string) (*[]model.Host, error)

GetHostsByClusterAndOrg 根据 clusterName & orgName 获取主机列表

func (*DBClient) GetHostsNumber

func (client *DBClient) GetHostsNumber() (uint64, error)

GetHostsNumber 查询host数量

func (*DBClient) GetHostsNumberByClusterAndOrg

func (client *DBClient) GetHostsNumberByClusterAndOrg(clusterName, orgName string) (uint64, error)

GetHostsNumberByClusterAndOrg 根据 clusterName & orgName 获取集群主机总数

func (*DBClient) GetJob

func (client *DBClient) GetJob(orgID string, taskID uint64) []model.Jobs

GetJob 获取job信息

func (*DBClient) GetRunningAddonByClusterAndInstanceID

func (client *DBClient) GetRunningAddonByClusterAndInstanceID(clusterName, instanceID string) (*[]model.Container, error)

GetRunningAddonByClusterAndInstanceID 根据 clusterName & addon instanceID 获取运行中的addon containers

func (*DBClient) GetRunningComponentContainersByClusterAndComponent

func (client *DBClient) GetRunningComponentContainersByClusterAndComponent(clusterName, componentName string) ([]model.Container, error)

GetRunningComponentContainersByClusterAndComponent 根据 clusterName & component 获取集群内正在运行的平台组件容器

func (*DBClient) InsertContainer

func (client *DBClient) InsertContainer(ctx context.Context, c *types.CmContainer) error

InsertContainer 新增 container 信息

func (*DBClient) ListAllContainersByService

func (client *DBClient) ListAllContainersByService(runtimeID, serviceName string) ([]model.Container, error)

ListAllContainersByService 根据serviceName 获取所有实例列表(包含运行中、已停止)

func (*DBClient) ListCluster

func (client *DBClient) ListCluster() (*[]model.Cluster, error)

ListCluster 获取集群列表

func (*DBClient) ListClusterByIDs

func (client *DBClient) ListClusterByIDs(clusterIDs []uint64) (*[]model.Cluster, error)

ListClusterByIDs 根据集群ID列表获取集群信息

func (*DBClient) ListClusterByNames

func (client *DBClient) ListClusterByNames(clusterNames []string) (*[]model.Cluster, error)

ListClusterByNames 根据集群名称列表获取集群信息

func (*DBClient) ListClusterByOrg

func (client *DBClient) ListClusterByOrg(orgID int64) (*[]model.Cluster, error)

ListClusterByOrg 根据 orgID 获取集群信息

func (*DBClient) ListClusterByOrgAndType

func (client *DBClient) ListClusterByOrgAndType(orgID int64, clusterType string) (*[]model.Cluster, error)

ListClusterByOrgAndType 根据 orgID, type 获取集群信息

func (*DBClient) ListClusterRunningContainers

func (client *DBClient) ListClusterRunningContainers(clusterName string) ([]model.Container, error)

ListClusterRunningContainers 根据clusterName 获取集群运行中实例列表

func (*DBClient) ListContainerByApplication

func (client *DBClient) ListContainerByApplication(appID, orgID string, running bool) ([]model.Container, error)

ListContainerByApplication 根据 appID 获取容器列表

func (*DBClient) ListContainerByCluster

func (client *DBClient) ListContainerByCluster(clusterName, orgID string, running bool) ([]model.Container, error)

ListContainerByCluster 根据 clusterName 获取容器列表

func (*DBClient) ListContainerByHost

func (client *DBClient) ListContainerByHost(clusterName, hostIP string, running bool) ([]model.Container, error)

ListContainerByHost 根据 clusterName & hostIP 获取容器列表

func (*DBClient) ListContainerByOrg

func (client *DBClient) ListContainerByOrg(orgID string, running bool) ([]model.Container, error)

ListByOrg 根据 orgID 获取容器列表

func (*DBClient) ListContainerByProject

func (client *DBClient) ListContainerByProject(projectID, orgID string, running bool) ([]model.Container, error)

ListContainerByProject 根据 projectID 获取容器列表

func (*DBClient) ListContainerByRuntime

func (client *DBClient) ListContainerByRuntime(runtimeID, orgID string, running bool) ([]model.Container, error)

ListContainerByRuntime 根据 runtimeID 获取容器列表

func (*DBClient) ListDeploymentsByOrgID

func (client *DBClient) ListDeploymentsByOrgID(param *apistructs.OrgRunningTasksListRequest,
	orgID uint64) (int64, *[]model.Deployments, error)

ListDeploymentsByOrgID 获取指定企业的部署列表

func (*DBClient) ListEdasContainerByParam

func (client *DBClient) ListEdasContainerByParam(params *apistructs.EdasContainerListRequest) ([]model.Container, error)

ListEdasContainerByParam 根据 params 过滤出 EDAS 容器列表

func (*DBClient) ListExpiredDeployments

func (client *DBClient) ListExpiredDeployments(startTime string) []model.Deployments

ListExpiredDeployments 列出过期的deployment

func (*DBClient) ListExpiredJobs

func (client *DBClient) ListExpiredJobs(startTime string) []model.Jobs

ListExpiredJobs 列出过期的job

func (*DBClient) ListJobsByOrgID

func (client *DBClient) ListJobsByOrgID(param *apistructs.OrgRunningTasksListRequest,
	orgID uint64) (int64, *[]model.Jobs, error)

ListJobsByOrgID 获取指定企业的job列表

func (*DBClient) ListRunningAddonsByCluster

func (client *DBClient) ListRunningAddonsByCluster(clusterName string) ([]model.Container, error)

ListRunningAddonsByCluster 根据 clusterName 获取集群中正在运行的 addon containers

func (*DBClient) ListRunningComponentContainerByCluster

func (client *DBClient) ListRunningComponentContainerByCluster(clusterName string) ([]model.Container, error)

ListRunningComponentContainerByCluster 根据 clusterName 获取集群内正在运行的平台组件容器

func (*DBClient) ListRunningContainersByHost

func (client *DBClient) ListRunningContainersByHost(clusterName, hostIP string) ([]model.Container, error)

ListRunningContainersByHost 根据 cluster & hostIP 获取运行中容器列表

func (*DBClient) ListRunningContainersByService

func (client *DBClient) ListRunningContainersByService(runtimeID, serviceName string) ([]model.Container, error)

ListRunningByService 根据serviceName 获取运行中实例列表

func (*DBClient) ListRunningDeployments

func (client *DBClient) ListRunningDeployments() []model.Deployments

ListRunningDeployments 列出正在运行的deployment

func (*DBClient) ListRunningJobs

func (client *DBClient) ListRunningJobs() []model.Jobs

ListRunningJobs 列出正在运行的job

func (*DBClient) ListRunningProjectContainersByCluster

func (client *DBClient) ListRunningProjectContainersByCluster(clusterName, orgID string) ([]model.Container, error)

ListRunningProjectContainersByCluster 根据 clusterName 获取集群内正在运行的 containers

func (*DBClient) ListStoppedContainersByService

func (client *DBClient) ListStoppedContainersByService(runtimeID, serviceName string) ([]model.Container, error)

ListStoppedByService 根据serviceName 获取已停止实例列表

func (*DBClient) QueryContainer

func (client *DBClient) QueryContainer(ctx context.Context, cluster string, id string) (*types.CmContainer, error)

QueryContainer 获取单个容器信息

func (*DBClient) QueryContainerByTaskIDOrContainerID

func (client *DBClient) QueryContainerByTaskIDOrContainerID(ctx context.Context, cluster string, taskID string,
	containerID string) ([]types.CmContainer, error)

QueryContainerByTaskIDOrContainerID 根据 taskID 或者 containerID 查询 container 信息

func (*DBClient) QueryHost

func (client *DBClient) QueryHost(ctx context.Context, cluster, addr string) (*types.CmHost, error)

QueryHost 获取单个host的信息

func (*DBClient) UpdateCluster

func (client *DBClient) UpdateCluster(cluster *model.Cluster) error

UpdateCluster 更新集群

func (*DBClient) UpdateContainer

func (client *DBClient) UpdateContainer(container *model.Container) error

UpdateContainer 更新容器

func (*DBClient) UpdateContainerByPrimaryKeyID

func (client *DBClient) UpdateContainerByPrimaryKeyID(ctx context.Context, c *types.CmContainer) error

TODO 以下皆须重构 UpdateContainerByPrimaryKeyID 根据主键进行更新

func (*DBClient) UpdateContainerByTaskIDOrContainerID

func (client *DBClient) UpdateContainerByTaskIDOrContainerID(ctx context.Context, c *types.CmContainer) error

UpdateContainerByTaskIDOrContainerID 根据 taskID 或者 contianerID 来更新 container 信息

func (*DBClient) UpdateDeploymentStatus

func (client *DBClient) UpdateDeploymentStatus(deployment *model.Deployments) error

UpdateDeploymentStatus 更新deployment状态

func (*DBClient) UpdateHost

func (client *DBClient) UpdateHost(host *model.Host) error

UpdateHost 更新host

func (*DBClient) UpdateJobStatus

func (client *DBClient) UpdateJobStatus(Job *model.Jobs) error

UpdateJobStatus 更新Job状态

type Int64Slice

type Int64Slice []int64

自定义 interface{},用于实现 []int64 的排序

func SortInt64Map

func SortInt64Map(m map[int64]int64) Int64Slice

func (Int64Slice) Len

func (c Int64Slice) Len() int

func (Int64Slice) Less

func (c Int64Slice) Less(i, j int) bool

func (Int64Slice) Swap

func (c Int64Slice) Swap(i, j int)

Jump to

Keyboard shortcuts

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