gaia: Index | Files | Directories

package gaia

import ""


Package Files



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"

    // 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"

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

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


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

    // 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"`
    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"`
    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"`

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



Package gaia imports 4 packages (graph) and is imported by 14 packages. Updated 2019-09-15. Refresh now. Tools for package owners.