monotf

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2024 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

Functions

func HandleAllStatusCount

func HandleAllStatusCount(w http.ResponseWriter, r *http.Request)

func HandleDeleteWorkspace

func HandleDeleteWorkspace(w http.ResponseWriter, r *http.Request)

func HandleGetWorkspace

func HandleGetWorkspace(w http.ResponseWriter, r *http.Request)

func HandleListAllWorkspaces

func HandleListAllWorkspaces(w http.ResponseWriter, r *http.Request)

func HandleListAllWorkspacesByStatus

func HandleListAllWorkspacesByStatus(w http.ResponseWriter, r *http.Request)

func HandleListAllWorkspacesLike

func HandleListAllWorkspacesLike(w http.ResponseWriter, r *http.Request)

func HandleListOrgWorkspaces

func HandleListOrgWorkspaces(w http.ResponseWriter, r *http.Request)

func HandleListOrgWorkspacesByStatus

func HandleListOrgWorkspacesByStatus(w http.ResponseWriter, r *http.Request)

func HandleListOrgWorkspacesLike

func HandleListOrgWorkspacesLike(w http.ResponseWriter, r *http.Request)

func HandleListOrgs

func HandleListOrgs(w http.ResponseWriter, r *http.Request)

func HandleListValidStatuses

func HandleListValidStatuses(w http.ResponseWriter, r *http.Request)

func HandleOrgStatusCount

func HandleOrgStatusCount(w http.ResponseWriter, r *http.Request)

func HandleSaveWorkspace

func HandleSaveWorkspace(w http.ResponseWriter, r *http.Request)

func ListOrgs

func ListOrgs() ([]string, error)

func LoadConfig

func LoadConfig(f string) error

func Server

func Server(port int) error

func SysInit

func SysInit() error

Types

type ListOrgWorkspacesLikeRequest

type ListOrgWorkspacesLikeRequest struct {
	Org  string `json:"org"`
	Like string `json:"like"`
}

type Monotf

type Monotf struct {
	BinDir         string    `json:"bin_dir" yaml:"bin_dir"`
	Versions       []string  `json:"versions" yaml:"versions"`
	DefaultVersion string    `json:"default_version" yaml:"default_version"`
	Org            string    `json:"org" yaml:"org"`
	ServerAddr     string    `json:"server_addr" yaml:"server_addr"`
	PathTemplate   string    `json:"path_template" yaml:"path_template"`
	PathVars       []PathVar `json:"-" yaml:"-"`
	VaultEnv       *VaultEnv `json:"vault_env" yaml:"vault_env"`
	VarScript      string    `json:"var_script" yaml:"var_script"`

	RepoDir string `json:"dir" yaml:"dir"`
}
var (
	M *Monotf
)

func (*Monotf) BinForVersion

func (m *Monotf) BinForVersion(v string) (string, error)

func (*Monotf) GetWorkspaceLocal

func (b *Monotf) GetWorkspaceLocal(w string) (*Workspace, error)

func (*Monotf) Init

func (m *Monotf) Init() error

func (*Monotf) InstallBinIfNotExist

func (b *Monotf) InstallBinIfNotExist(v string) error

func (*Monotf) InstallBinaries

func (b *Monotf) InstallBinaries() error

func (*Monotf) LatestVersion

func (m *Monotf) LatestVersion() (string, error)

func (*Monotf) ParsePathVarKeys

func (m *Monotf) ParsePathVarKeys() error

func (*Monotf) ParsePathVars

func (m *Monotf) ParsePathVars(p string) ([]PathVar, error)

func (*Monotf) SupportsVersion

func (m *Monotf) SupportsVersion(v string) bool

type OrgStatusCounts

type OrgStatusCounts struct {
	Org    string                  `json:"org"`
	Counts map[WorkspaceStatus]int `json:"counts"`
}

func GetAllStatusCount

func GetAllStatusCount() ([]OrgStatusCounts, error)

func GetOrgStatusCount

func GetOrgStatusCount(org string) (OrgStatusCounts, error)

type PathVar

type PathVar struct {
	Key   string `json:"key" yaml:"key"`
	Index int    `json:"index" yaml:"index"`
	Value string `json:"value" yaml:"value"`
}

type VaultEnv

type VaultEnv struct {
	Addr      string `json:"addr" yaml:"addr"`
	Namespace string `json:"namespace" yaml:"namespace"`
	Path      string `json:"path" yaml:"path"`
}

func (*VaultEnv) Get

func (v *VaultEnv) Get() ([]string, error)

type Workspace

type Workspace struct {
	gorm.Model
	Org           string          `json:"org" gorm:"uniqueIndex:idx_org_name"`
	Name          string          `json:"name" gorm:"uniqueIndex:idx_org_name"`
	WorkspaceName string          `json:"workspace_name" gorm:"uniqueIndex:idx_org_name"`
	Path          string          `json:"path" yaml:"path" gorm:"-"`
	Version       string          `json:"version" yaml:"version"`
	Status        WorkspaceStatus `json:"status"`
	Output        string          `json:"output"`
	Running       *bool           `json:"running"`
	LockId        *string         `json:"lock_id"`
	Force         bool            `json:"force" yaml:"force" gorm:"-"`
	PathVars      []PathVar       `json:"-" yaml:"-" gorm:"-"`
	EnvVars       []string        `json:"-" yaml:"-" gorm:"-"`

	Init   bool `json:"init" yaml:"init" gorm:"-"`
	IsInit bool `json:"is_init" yaml:"is_init" gorm:"-"`
}

func ListAllWorkspaceByStatus

func ListAllWorkspaceByStatus(status WorkspaceStatus) ([]Workspace, error)

func ListAllWorkspaces

func ListAllWorkspaces() ([]Workspace, error)

func ListAllWorkspacesLike

func ListAllWorkspacesLike(orgLike, nameLike string) ([]Workspace, error)

func ListOrgWorkspaceByStatus

func ListOrgWorkspaceByStatus(org string, status WorkspaceStatus) ([]Workspace, error)

func ListOrgWorkspaces

func ListOrgWorkspaces(org string) ([]Workspace, error)

func ListOrgWorkspacesLike

func ListOrgWorkspacesLike(org, like string) ([]Workspace, error)

func (*Workspace) CreateWorkspaceIfNotExist

func (w *Workspace) CreateWorkspaceIfNotExist() error

func (*Workspace) Delete

func (w *Workspace) Delete() error

func (*Workspace) EnsureValidStatus

func (w *Workspace) EnsureValidStatus() error

func (*Workspace) Get

func (w *Workspace) Get() error

func (*Workspace) GetStatus

func (w *Workspace) GetStatus() (Workspace, error)

func (*Workspace) InferStateFromOutput

func (w *Workspace) InferStateFromOutput() error

func (*Workspace) LockedTerraform

func (ws *Workspace) LockedTerraform(waitTimeout *string, args []string) (string, string, error)

func (*Workspace) LockedTerraformPlanApply

func (ws *Workspace) LockedTerraformPlanApply(waitTimeout *string) (string, string, error)

func (*Workspace) LockedTerraformSpeculativePlan

func (ws *Workspace) LockedTerraformSpeculativePlan(waitTimeout *string, args []string) (string, string, error)

func (*Workspace) Save

func (w *Workspace) Save() error

func (*Workspace) SaveRemote

func (w *Workspace) SaveRemote() error

func (*Workspace) SetName

func (w *Workspace) SetName(parentDir string)

func (*Workspace) SetOutput

func (w *Workspace) SetOutput() error

func (*Workspace) SetRunning

func (w *Workspace) SetRunning(running bool) error

func (*Workspace) SetVersion

func (w *Workspace) SetVersion() error

func (*Workspace) Terraform

func (w *Workspace) Terraform(args []string) (string, string, error)

func (*Workspace) TerraformInit

func (w *Workspace) TerraformInit() (string, string, error)

func (*Workspace) TerraformWorkspacePreflight

func (w *Workspace) TerraformWorkspacePreflight() error

func (*Workspace) VarsFromScript

func (ws *Workspace) VarsFromScript() ([]string, error)

func (*Workspace) WaitForReady

func (w *Workspace) WaitForReady(timeoutStr string) error

type WorkspaceStatus

type WorkspaceStatus string
const (
	WorkspaceStatusApplied WorkspaceStatus = "applied"
	WorkspaceStatusFailed  WorkspaceStatus = "failed"
	WorkspaceStatusPending WorkspaceStatus = "pending"
	WorkspaceStatusUnknown WorkspaceStatus = "unknown"
	WorkspaceStatusDrifted WorkspaceStatus = "drifted"
)

func ListValidStatuses

func ListValidStatuses() []WorkspaceStatus

Jump to

Keyboard shortcuts

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