provider

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jan 1, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ListCICDProviders

func ListCICDProviders() []string

ListCICDProviders 列出所有已注册的 CICD Provider 名称

func ListProviders

func ListProviders() []string

ListProviders 列出所有已注册的 Provider 名称

func Register

func Register(name string, provider Provider)

Register 注册一个 Provider

func RegisterCICD

func RegisterCICD(name string, provider CICDProvider)

RegisterCICD 注册一个 CICD Provider

func UnregisterAll

func UnregisterAll()

UnregisterAll 清空所有已注册的 Provider (用于测试)

Types

type CICDProvider

type CICDProvider interface {
	// GetName 返回提供商名称 (如: jenkins, gitlab-ci)
	GetName() string

	// Initialize 初始化客户端
	Initialize(config map[string]any) error

	// ListJobs 列出所有任务
	ListJobs(ctx context.Context, opts *QueryOptions) ([]*model.Job, error)

	// GetJob 获取任务详情
	GetJob(ctx context.Context, jobName string) (*model.Job, error)

	// GetJobBuilds 获取任务的构建历史
	GetJobBuilds(ctx context.Context, jobName string, limit int) ([]*model.Build, error)

	// HealthCheck 健康检查
	HealthCheck(ctx context.Context) error
}

CICDProvider 定义 CI/CD 工具的统一接口

func GetCICDProvider

func GetCICDProvider(name string) (CICDProvider, error)

GetCICDProvider 获取指定名称的 CICD Provider

type Provider

type Provider interface {
	// GetName 返回提供商名称 (如: aliyun, tencent, aws)
	GetName() string

	// Initialize 初始化提供商客户端
	Initialize(config map[string]any) error

	// ListInstances 列出所有实例 (ECS/CVM/EC2)
	ListInstances(ctx context.Context, opts *QueryOptions) ([]*model.Instance, error)

	// GetInstance 获取单个实例详情
	GetInstance(ctx context.Context, instanceID string) (*model.Instance, error)

	// ListDatabases 列出数据库实例
	ListDatabases(ctx context.Context, opts *QueryOptions) ([]*model.Database, error)

	// GetDatabase 获取数据库详情
	GetDatabase(ctx context.Context, dbID string) (*model.Database, error)

	// ListOSSBuckets 列出对象存储桶
	ListOSSBuckets(ctx context.Context, opts *QueryOptions) ([]*model.OSSBucket, error)

	// GetOSSBucket 获取对象存储桶详情
	GetOSSBucket(ctx context.Context, bucketName string) (*model.OSSBucket, error)

	// HealthCheck 健康检查
	HealthCheck(ctx context.Context) error
}

Provider 定义了云服务提供商的统一接口

func GetProvider

func GetProvider(name string) (Provider, error)

GetProvider 获取指定名称的 Provider

type QueryOptions

type QueryOptions struct {
	Region   string            // 区域
	PageSize int               // 分页大小
	PageNum  int               // 页码
	Filters  map[string]string // 过滤条件
	Tags     map[string]string // 标签过滤
}

QueryOptions 查询选项

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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