services

package
v0.0.0-...-7d3b672 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2023 License: Apache-2.0 Imports: 39 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrEmptyPlan = errors.Default.New("empty plan")
)

Functions

func CancelPipeline

func CancelPipeline(pipelineId uint64) errors.Error

CancelPipeline FIXME ...

func CancelTask

func CancelTask(taskId uint64) errors.Error

CancelTask FIXME ...

func ComputePipelineStatus

func ComputePipelineStatus(pipeline *models.Pipeline, isCancelled bool) (string, errors.Error)

ComputePipelineStatus determines pipleline status by its latest(rerun included) tasks statuses 1. TASK_COMPLETED: all tasks were executed sucessfully 2. TASK_FAILED: SkipOnFail=false with failed task(s) 3. TASK_PARTIAL: SkipOnFail=true with failed task(s)

func CreateBlueprint

func CreateBlueprint(blueprint *models.Blueprint) errors.Error

CreateBlueprint accepts a Blueprint instance and insert it to database

func CreateDbPipeline

func CreateDbPipeline(newPipeline *models.NewPipeline) (*models.Pipeline, errors.Error)

CreateDbPipeline returns a NewPipeline

func CreatePipeline

func CreatePipeline(newPipeline *models.NewPipeline) (*models.Pipeline, errors.Error)

CreatePipeline and return the model

func CreateProject

func CreateProject(projectInput *models.ApiInputProject) (*models.ApiOutputProject, errors.Error)

CreateProject accepts a project instance and insert it to database

func CreateTask

func CreateTask(newTask *models.NewTask) (*models.Task, errors.Error)

CreateTask creates a new task

func DeleteBlueprint

func DeleteBlueprint(id uint64) errors.Error

DeleteBlueprint FIXME ...

func DeleteProject

func DeleteProject(name string) errors.Error

DeleteProject FIXME ...

func ExecuteMigration

func ExecuteMigration() errors.Error

ExecuteMigration executes all pending migration scripts and initialize services module

func GeneratePlanJsonV200

func GeneratePlanJsonV200(
	projectName string,
	syncPolicy plugin.BlueprintSyncPolicy,
	sources *models.BlueprintSettings,
	metrics map[string]json.RawMessage,
	skipCollectors bool,
) (plugin.PipelinePlan, errors.Error)

GeneratePlanJsonV200 generates pipeline plan according v2.0.0 definition

func GetBasicRes

func GetBasicRes() context.BasicRes

GetBasicRes returns the context.BasicRes instance used by services module

func GetBlueprint

func GetBlueprint(blueprintId uint64) (*models.Blueprint, errors.Error)

GetBlueprint returns the detail of a given Blueprint ID

func GetBlueprintByProjectName

func GetBlueprintByProjectName(projectName string) (*models.Blueprint, errors.Error)

GetBlueprintByProjectName returns the detail of a given ProjectName

func GetBlueprints

func GetBlueprints(query *BlueprintQuery) ([]*models.Blueprint, int64, errors.Error)

GetBlueprints returns a paginated list of Blueprints based on `query`

func GetDbPipeline

func GetDbPipeline(pipelineId uint64) (*models.Pipeline, errors.Error)

GetDbPipeline by id

func GetDbPipelines

func GetDbPipelines(query *PipelineQuery) ([]*models.Pipeline, int64, errors.Error)

GetDbPipelines by query

func GetLatestTasksOfPipeline

func GetLatestTasksOfPipeline(pipeline *models.Pipeline) ([]*models.Task, errors.Error)

GetLatestTasksOfPipeline returns latest tasks (reran tasks are excluding) of specified pipeline

func GetMigrator

func GetMigrator() plugin.Migrator

GetMigrator returns the core.Migrator instance used by services module

func GetPipeline

func GetPipeline(pipelineId uint64) (*models.Pipeline, errors.Error)

GetPipeline by id

func GetPipelineLogger

func GetPipelineLogger(pipeline *models.Pipeline) log.Logger

GetPipelineLogger returns logger for the pipeline

func GetPipelineLogsArchivePath

func GetPipelineLogsArchivePath(pipeline *models.Pipeline) (string, errors.Error)

GetPipelineLogsArchivePath creates an archive for the logs of this pipeline and returns its file path

func GetPipelines

func GetPipelines(query *PipelineQuery) ([]*models.Pipeline, int64, errors.Error)

GetPipelines by query

func GetPluginsApiResources

func GetPluginsApiResources() (map[string]map[string]map[string]plugin.ApiResourceHandler, errors.Error)

GetPluginsApiResources return value

{
	"jira": {
		"connections": {
			"POST": *ApiResourceHandler
		}
	}
}

GetPluginsApiResources returns all APIs of all plugins

func GetProject

func GetProject(name string) (*models.ApiOutputProject, errors.Error)

GetProject returns a Project

func GetProjects

func GetProjects(query *ProjectQuery) ([]*models.Project, int64, errors.Error)

GetProjects returns a paginated list of Projects based on `query`

func GetRepos

func GetRepos() ([]*code.Repo, int64, errors.Error)

GetRepos FIXME ...

func GetTask

func GetTask(taskId uint64) (*models.Task, errors.Error)

GetTask FIXME ...

func GetTasks

func GetTasks(query *TaskQuery) ([]*models.Task, int64, errors.Error)

GetTasks returns paginated tasks that match the given query

func GetTasksWithLastStatus

func GetTasksWithLastStatus(pipelineId uint64) ([]*models.Task, errors.Error)

GetTasksWithLastStatus returns task list of the pipeline, only the most recently tasks would be returned TODO: adopts GetLatestTasksOfPipeline

func Init

func Init()

Init the services module

func InitResources

func InitResources()

InitResources creates resources needed by services module

func InsertRow

func InsertRow(table string, rows []map[string]interface{}) (int64, errors.Error)

InsertRow FIXME ...

func MakePlanForBlueprint

func MakePlanForBlueprint(blueprint *models.Blueprint, skipCollectors bool) (plugin.PipelinePlan, errors.Error)

MakePlanForBlueprint generates pipeline plan by version

func MigrationRequireConfirmation

func MigrationRequireConfirmation() bool

MigrationRequireConfirmation returns if there were migration scripts waiting to be executed

func NotifyExternal

func NotifyExternal(pipelineId uint64) errors.Error

NotifyExternal FIXME ...

func ParallelizePipelinePlans

func ParallelizePipelinePlans(plans ...plugin.PipelinePlan) plugin.PipelinePlan

ParallelizePipelinePlans merges multiple pipelines into one unified plan by assuming they can be executed in parallel

func PatchBlueprint

func PatchBlueprint(id uint64, body map[string]interface{}) (*models.Blueprint, errors.Error)

PatchBlueprint FIXME ...

func PatchProject

func PatchProject(name string, body map[string]interface{}) (*models.ApiOutputProject, errors.Error)

PatchProject FIXME ...

func ReloadBlueprints

func ReloadBlueprints(c *cron.Cron) errors.Error

ReloadBlueprints FIXME ...

func RerunPipeline

func RerunPipeline(pipelineId uint64, task *models.Task) ([]*models.Task, errors.Error)

RerunPipeline would rerun all failed tasks or specified task

func RerunTask

func RerunTask(taskId uint64) (*models.Task, errors.Error)

RerunTask reruns specified task

func RunPipelineInQueue

func RunPipelineInQueue(pipelineMaxParallel int64)

RunPipelineInQueue query pipeline from db and run it in a queue

func RunTasksStandalone

func RunTasksStandalone(parentLogger log.Logger, taskIds []uint64) errors.Error

RunTasksStandalone run tasks in parallel

func SequencializePipelinePlans

func SequencializePipelinePlans(plans ...plugin.PipelinePlan) plugin.PipelinePlan

SequencializePipelinePlans merges multiple pipelines into one unified plan by assuming they must be executed in sequencial order

func TriggerBlueprint

func TriggerBlueprint(id uint64, skipCollectors bool) (*models.Pipeline, errors.Error)

TriggerBlueprint triggers blueprint immediately

func VerifyStruct

func VerifyStruct(v interface{}) errors.Error

VerifyStruct verifies given struct with `validator`

func WrapPipelinePlans

func WrapPipelinePlans(beforePlanJson json.RawMessage, mainPlan plugin.PipelinePlan, afterPlanJson json.RawMessage) (plugin.PipelinePlan, errors.Error)

WrapPipelinePlans merges multiple pipelines and append before and after pipeline

Types

type BlueprintJob

type BlueprintJob struct {
	Blueprint *models.Blueprint
}

func (BlueprintJob) Run

func (bj BlueprintJob) Run()

type BlueprintQuery

type BlueprintQuery struct {
	Pagination
	Enable   *bool  `form:"enable,omitempty"`
	IsManual *bool  `form:"isManual"`
	Label    string `form:"label"`
}

BlueprintQuery is a query for GetBlueprints

type NotificationService

type NotificationService struct {
	EndPoint string
	Secret   string
}

NotificationService FIXME ...

func NewNotificationService

func NewNotificationService(endpoint, secret string) *NotificationService

NewNotificationService FIXME ...

func (*NotificationService) PipelineStatusChanged

func (n *NotificationService) PipelineStatusChanged(params PipelineNotification) errors.Error

PipelineStatusChanged FIXME ...

type Pagination

type Pagination struct {
	Page     int `form:"page"`
	PageSize int `form:"pageSize"`
}

Pagination holds the paginate information

func (*Pagination) GetPage

func (p *Pagination) GetPage() int

GetPage returns current page number

func (*Pagination) GetPageSize

func (p *Pagination) GetPageSize() int

GetPageSize returns a sensible page size based on input

func (*Pagination) GetPageSizeOr

func (p *Pagination) GetPageSizeOr(defaultVal int) int

GetPageSizeOr returns the page size or fallback to `defaultVal`

func (*Pagination) GetSkip

func (p *Pagination) GetSkip() int

GetSkip returns how many records should be skipped for specified page

type PipelineNotification

type PipelineNotification struct {
	PipelineID uint64
	CreatedAt  time.Time
	UpdatedAt  time.Time
	BeganAt    *time.Time
	FinishedAt *time.Time
	Status     string
}

PipelineNotification FIXME ...

type PipelineQuery

type PipelineQuery struct {
	Pagination
	Status      string `form:"status"`
	Pending     int    `form:"pending"`
	BlueprintId uint64 `uri:"blueprintId" form:"blueprint_id"`
	Label       string `form:"label"`
}

PipelineQuery is a query for GetPipelines

type ProjectQuery

type ProjectQuery struct {
	Pagination
}

ProjectQuery used to query projects as the api project input

type RunningTask

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

RunningTask FIXME ...

func (*RunningTask) Add

func (rt *RunningTask) Add(taskId uint64, cancel context.CancelFunc) errors.Error

Add FIXME ...

func (*RunningTask) FillProgressDetailToTasks

func (rt *RunningTask) FillProgressDetailToTasks(tasks []*models.Task)

FillProgressDetailToTasks lock less times than GetProgressDetail

func (*RunningTask) GetProgressDetail

func (rt *RunningTask) GetProgressDetail(taskId uint64) *models.TaskProgressDetail

GetProgressDetail FIXME ...

func (*RunningTask) Remove

func (rt *RunningTask) Remove(taskId uint64) (context.CancelFunc, errors.Error)

Remove FIXME ...

type RunningTaskData

type RunningTaskData struct {
	Cancel         context.CancelFunc
	ProgressDetail *models.TaskProgressDetail
}

RunningTaskData FIXME ...

type TaskQuery

type TaskQuery struct {
	Pagination
	Status     string `form:"status"`
	Plugin     string `form:"plugin"`
	PipelineId uint64 `form:"pipelineId" uri:"pipelineId"`
	Pending    int    `form:"pending"`
}

TaskQuery FIXME .

Directories

Path Synopsis
run

Jump to

Keyboard shortcuts

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