gaia: github.com/gaia-pipeline/gaia Index | Files | Directories

package gaia

import "github.com/gaia-pipeline/gaia"

Index

Package Files

gaia.go

Constants

const (
    // PTypeUnknown unknown plugin type
    PTypeUnknown PipelineType = "unknown"

    // PTypeGolang golang plugin type
    PTypeGolang PipelineType = "golang"

    // PTypeJava java plugin type
    PTypeJava PipelineType = "java"

    // PTypePython python plugin type
    PTypePython PipelineType = "python"

    // PTypeCpp C++ plugin type
    PTypeCpp PipelineType = "cpp"

    // PTypeRuby ruby plugin type
    PTypeRuby PipelineType = "ruby"

    // PTypeNodeJS NodeJS plugin type
    PTypeNodeJS PipelineType = "nodejs"

    // CreatePipelineFailed status
    CreatePipelineFailed CreatePipelineType = "failed"

    // CreatePipelineRunning status
    CreatePipelineRunning CreatePipelineType = "running"

    // CreatePipelineSuccess status
    CreatePipelineSuccess CreatePipelineType = "success"

    // RunNotScheduled status
    RunNotScheduled PipelineRunStatus = "not scheduled"

    // RunScheduled status
    RunScheduled PipelineRunStatus = "scheduled"

    // RunFailed status
    RunFailed PipelineRunStatus = "failed"

    // RunSuccess status
    RunSuccess PipelineRunStatus = "success"

    // RunRunning status
    RunRunning PipelineRunStatus = "running"

    // RunCancelled status
    RunCancelled PipelineRunStatus = "cancelled"

    // RunReschedule status
    RunReschedule PipelineRunStatus = "reschedule"

    // JobWaitingExec status
    JobWaitingExec JobStatus = "waiting for execution"

    // JobSuccess status
    JobSuccess JobStatus = "success"

    // JobFailed status
    JobFailed JobStatus = "failed"

    // JobRunning status
    JobRunning JobStatus = "running"

    // ModeServer mode
    ModeServer Mode = "server"

    // ModeWorker mode
    ModeWorker Mode = "worker"

    // WorkerActive status
    WorkerActive WorkerStatus = "active"

    // WorkerInactive status
    WorkerInactive WorkerStatus = "inactive"

    // WorkerSuspended status
    WorkerSuspended WorkerStatus = "suspended"

    // LogsFolderName represents the Name of the logs folder in pipeline run folder
    LogsFolderName = "logs"

    // LogsFileName represents the file name of the logs output
    LogsFileName = "output.log"

    // APIVersion represents the current API version
    APIVersion = "v1"

    // SrcFolder folder name where the sources are stored
    SrcFolder = "src"

    // TmpFolder is the temp folder for temporary files
    TmpFolder = "tmp"

    // TmpPythonFolder is the name of the python temporary folder
    TmpPythonFolder = "python"

    // TmpGoFolder is the name of the golang temporary folder
    TmpGoFolder = "golang"

    // TmpCppFolder is the name of the c++ temporary folder
    TmpCppFolder = "cpp"

    // TmpRubyFolder is the name of the ruby temporary folder
    TmpRubyFolder = "ruby"

    // TmpNodeJSFolder is the name of the nodejs temporary folder
    TmpNodeJSFolder = "nodejs"

    // TmpJavaFolder is the name of the java temporary folder
    TmpJavaFolder = "java"

    // WorkerRegisterKey is the used key for worker registration secret
    WorkerRegisterKey = "WORKER_REGISTER_KEY"

    // ExecutablePermission is the permission used for gaia created executables.
    ExecutablePermission = 0700

    // StartReasonRemote label for pipelines which were triggered through a remote token.
    StartReasonRemote = "remote"

    // StartReasonManual label for pipelines which were triggered through the admin site.
    StartReasonManual = "manual"

    // StartReasonScheduled label for pipelines which were triggered automated process, i.e. cron job.
    StartReasonScheduled = "scheduled"
)

Variables

var Cfg = &Config{}

Cfg represents the global config instance

type Argument Uses

type Argument struct {
    Description string `json:"desc,omitempty"`
    Type        string `json:"type,omitempty"`
    Key         string `json:"key,omitempty"`
    Value       string `json:"value,omitempty"`
}

Argument represents a single argument of a job

type Config Uses

type Config struct {
    DevMode                 bool
    ModeRaw                 string
    Mode                    Mode
    VersionSwitch           bool
    Poll                    bool
    PVal                    int
    ListenPort              string
    HomePath                string
    Hostname                string
    VaultPath               string
    DataPath                string
    PipelinePath            string
    WorkspacePath           string
    Worker                  int
    JwtPrivateKeyPath       string
    JWTKey                  interface{}
    Logger                  hclog.Logger
    CAPath                  string
    WorkerServerPort        string
    PreventPrimaryWork      bool
    AutoDockerMode          bool
    DockerHostURL           string
    DockerRunImage          string
    DockerWorkerHostURL     string
    DockerWorkerGRPCHostURL string

    // Worker
    WorkerName        string
    WorkerHostURL     string
    WorkerGRPCHostURL string
    WorkerSecret      string
    WorkerTags        string

    Bolt struct {
        Mode os.FileMode
    }
}

Config holds all config options

type CreatePipeline Uses

type CreatePipeline struct {
    ID          string             `json:"id,omitempty"`
    Pipeline    Pipeline           `json:"pipeline,omitempty"`
    Status      int                `json:"status,omitempty"`
    StatusType  CreatePipelineType `json:"statustype,omitempty"`
    Output      string             `json:"output,omitempty"`
    Created     time.Time          `json:"created,omitempty"`
    GitHubToken string             `json:"githubtoken,omitempty"`
}

CreatePipeline represents a pipeline which is not yet compiled.

type CreatePipelineType Uses

type CreatePipelineType string

CreatePipelineType represents the different status types a create pipeline can have.

type GitRepo Uses

type GitRepo struct {
    URL            string     `json:"url,omitempty"`
    Username       string     `json:"user,omitempty"`
    Password       string     `json:"password,omitempty"`
    PrivateKey     PrivateKey `json:"privatekey,omitempty"`
    SelectedBranch string     `json:"selectedbranch,omitempty"`
    Branches       []string   `json:"branches,omitempty"`
    LocalDest      string     `json:"-"`
}

GitRepo represents a single git repository

type Job Uses

type Job struct {
    ID           uint32      `json:"id,omitempty"`
    Title        string      `json:"title,omitempty"`
    Description  string      `json:"desc,omitempty"`
    DependsOn    []*Job      `json:"dependson,omitempty"`
    Status       JobStatus   `json:"status,omitempty"`
    Args         []*Argument `json:"args,omitempty"`
    FailPipeline bool        `json:"failpipeline,omitempty"`
}

Job represents a single job of a pipeline

type JobStatus Uses

type JobStatus string

JobStatus represents the different status a job can have

type Mode Uses

type Mode string

Mode represents the different modes for Gaia

type Pipeline Uses

type Pipeline struct {
    ID                int          `json:"id,omitempty"`
    Name              string       `json:"name,omitempty"`
    Repo              *GitRepo     `json:"repo,omitempty"`
    Type              PipelineType `json:"type,omitempty"`
    ExecPath          string       `json:"execpath,omitempty"`
    SHA256Sum         []byte       `json:"sha256sum,omitempty"`
    Jobs              []*Job       `json:"jobs,omitempty"`
    Created           time.Time    `json:"created,omitempty"`
    UUID              string       `json:"uuid,omitempty"`
    IsNotValid        bool         `json:"notvalid,omitempty"`
    PeriodicSchedules []string     `json:"periodicschedules,omitempty"`
    TriggerToken      string       `json:"trigger_token,omitempty"`
    Tags              []string     `json:"tags,omitempty"`
    Docker            bool         `json:"docker"`
    CronInst          *cron.Cron   `json:"-"`
}

Pipeline represents a single pipeline

type PipelineRun Uses

type PipelineRun struct {
    UniqueID       string            `json:"uniqueid"`
    ID             int               `json:"id"`
    PipelineID     int               `json:"pipelineid"`
    StartDate      time.Time         `json:"startdate,omitempty"`
    StartReason    string            `json:"started_reason"`
    FinishDate     time.Time         `json:"finishdate,omitempty"`
    ScheduleDate   time.Time         `json:"scheduledate,omitempty"`
    Status         PipelineRunStatus `json:"status,omitempty"`
    Jobs           []*Job            `json:"jobs,omitempty"`
    PipelineType   PipelineType      `json:"pipelinetype,omitempty"`
    PipelineTags   []string          `json:"pipelinetags,omitempty"`
    Docker         bool              `json:"docker,omitempty"`
    DockerWorkerID string            `json:"dockerworkerid,omitempty"`
}

PipelineRun represents a single run of a pipeline.

type PipelineRunStatus Uses

type PipelineRunStatus string

PipelineRunStatus represents the different status a run can have.

type PipelineType Uses

type PipelineType string

PipelineType represents supported plugin types

func (PipelineType) String Uses

func (p PipelineType) String() string

String returns a pipeline type string back

type PrivateKey Uses

type PrivateKey struct {
    Key      string `json:"key,omitempty"`
    Username string `json:"username,omitempty"`
    Password string `json:"password,omitempty"`
}

PrivateKey represents a pem encoded private key

type SHAPair Uses

type SHAPair struct {
    Original   []byte `json:"original"`
    Worker     []byte `json:"worker"`
    PipelineID int    `json:"pipelineid"`
}

SHAPair struct contains the original sha of a pipeline executable and the new sha which was created when the worker had to rebuild it.

type StoreConfig Uses

type StoreConfig struct {
    ID   int
    Poll bool
}

StoreConfig defines config settings to be stored in DB.

type User Uses

type User struct {
    Username     string    `json:"username,omitempty"`
    Password     string    `json:"password,omitempty"`
    DisplayName  string    `json:"display_name,omitempty"`
    Tokenstring  string    `json:"tokenstring,omitempty"`
    JwtExpiry    int64     `json:"jwtexpiry,omitempty"`
    LastLogin    time.Time `json:"lastlogin,omitempty"`
    TriggerToken string    `json:"trigger_token,omitempty"`
}

User is the user object

type UserPermission Uses

type UserPermission struct {
    Username string   `json:"username"`
    Roles    []string `json:"roles"`
    Groups   []string `json:"groups"`
}

UserPermission is stored in its own data structure away from the core user. It represents all permission data for a single user.

type UserRole Uses

type UserRole struct {
    Name        string              `json:"name"`
    Description string              `json:"description"`
    APIEndpoint []*UserRoleEndpoint `json:"api_endpoints"`
}

UserRole represents a single permission role.

type UserRoleCategory Uses

type UserRoleCategory struct {
    Name        string      `json:"name"`
    Description string      `json:"description"`
    Roles       []*UserRole `json:"roles"`
}

UserRoleCategory represents the top-level of the permission role system

type UserRoleEndpoint Uses

type UserRoleEndpoint struct {
    Path   string `json:"path"`
    Method string `json:"method"`
}

UserRoleEndpoint represents the path and method of the API endpoint to be secured.

type Worker Uses

type Worker struct {
    UniqueID     string       `json:"uniqueid"`
    Name         string       `json:"name"`
    Status       WorkerStatus `json:"status"`
    Slots        int32        `json:"slots"`
    RegisterDate time.Time    `json:"registerdate"`
    LastContact  time.Time    `json:"lastcontact"`
    FinishedRuns int64        `json:"finishedruns"`
    Tags         []string     `json:"tags"`
}

Worker represents a single registered worker.

type WorkerStatus Uses

type WorkerStatus string

WorkerStatus represents the different status a worker can have

Directories

PathSynopsis
cmd/gaia
handlers
helper/filehelper
helper/pipelinehelper
helper/rolehelper
helper/stringhelper
plugin
security
server
services
store
store/memdb
workers/agent
workers/agent/api
workers/docker
workers/pipeline
workers/proto
workers/scheduler
workers/scheduler/service
workers/server

Package gaia imports 4 packages (graph) and is imported by 28 packages. Updated 2020-06-30. Refresh now. Tools for package owners.