entities

package
v0.0.0-...-50900e9 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2022 License: MIT Imports: 9 Imported by: 4

Documentation

Index

Constants

View Source
const (
	DefaultClusterName = "default"
)

Variables

View Source
var (
	ErrYoloNotInstalled      = errors.New("ErrYoloNotInstalled")
	ErrUninstallExistingEnvs = errors.New("ErrUninstallExistingEnvs")
)

Functions

func BuildEnvNameFromResolvedRepo

func BuildEnvNameFromResolvedRepo(
	resolvedRepo ResolvedEnvRepository,
) string

func BuildEnvNameSlug

func BuildEnvNameSlug(name string) string

func CheckPortValidity

func CheckPortValidity(port string, reservedPorts []string) error

Types

type CloudService

type CloudService interface {
	CreateYoloConfigStorage(stepper.Stepper) error
	RemoveYoloConfigStorage(stepper.Stepper) error

	LookupYoloConfig(stepper.Stepper) (*Config, error)
	SaveYoloConfig(stepper.Stepper, *Config) error

	CreateCluster(stepper.Stepper, *Config, *Cluster) error
	RemoveCluster(stepper.Stepper, *Config, *Cluster) error

	CheckInstanceTypeValidity(stepper.Stepper, string) error

	CreateEnv(stepper.Stepper, *Config, *Cluster, *Env) error
	RemoveEnv(stepper.Stepper, *Config, *Cluster, *Env) error

	OpenPort(stepper.Stepper, *Config, *Cluster, *Env, string) error
	ClosePort(stepper.Stepper, *Config, *Cluster, *Env, string) error
}

type CloudServiceBuilder

type CloudServiceBuilder interface {
	Build() (CloudService, error)
}

type Cluster

type Cluster struct {
	ID                  string          `json:"id"`
	Name                string          `json:"name"`
	DefaultInstanceType string          `json:"default_instance_type"`
	InfrastructureJSON  string          `json:"infrastructure_json"`
	Envs                map[string]*Env `json:"envs"`
	IsDefault           bool            `json:"is_default"`
	Status              ClusterStatus   `json:"status"`
	CreatedAtTimestamp  int64           `json:"created_at_timestamp"`
}

func NewCluster

func NewCluster(
	clusterName string,
	defaultInstanceType string,
	isDefaultCluster bool,
) *Cluster

func (*Cluster) GetNameSlug

func (c *Cluster) GetNameSlug() string

func (*Cluster) SetInfrastructureJSON

func (c *Cluster) SetInfrastructureJSON(infrastructure interface{}) error

type ClusterStatus

type ClusterStatus string
const (
	ClusterStatusCreating ClusterStatus = "creating"
	ClusterStatusCreated  ClusterStatus = "created"
	ClusterStatusRemoving ClusterStatus = "removing"
)

type Config

type Config struct {
	ID                 string              `json:"id"`
	Clusters           map[string]*Cluster `json:"clusters"`
	CreatedAtTimestamp int64               `json:"created_at_timestamp"`
}

func NewConfig

func NewConfig() *Config

func (*Config) ClusterExists

func (c *Config) ClusterExists(clusterName string) bool

func (*Config) CountEnvsInCluster

func (c *Config) CountEnvsInCluster(clusterName string) (int, error)

func (*Config) EnvExists

func (c *Config) EnvExists(clusterName, envName string) bool

func (*Config) GetCluster

func (c *Config) GetCluster(clusterName string) (*Cluster, error)

func (*Config) GetEnv

func (c *Config) GetEnv(clusterName, envName string) (*Env, error)

func (*Config) RemoveCluster

func (c *Config) RemoveCluster(clusterName string) error

func (*Config) RemoveEnv

func (c *Config) RemoveEnv(clusterName, envName string) error

func (*Config) SetCluster

func (c *Config) SetCluster(cluster *Cluster) error

func (*Config) SetEnv

func (c *Config) SetEnv(clusterName string, env *Env) error

type Env

type Env struct {
	ID                       string                `json:"id"`
	Name                     string                `json:"name"`
	InfrastructureJSON       string                `json:"infrastructure_json"`
	InstanceType             string                `json:"instance_type"`
	InstancePublicIPAddress  string                `json:"instance_public_ip_address"`
	SSHHostKeys              []EnvSSHHostKey       `json:"ssh_host_keys"`
	SSHKeyPairPEMContent     string                `json:"ssh_key_pair_pem_content"`
	ResolvedRepository       ResolvedEnvRepository `json:"resolved_repository"`
	OpenedPorts              map[string]bool       `json:"opened_ports"`
	Status                   EnvStatus             `json:"status"`
	AdditionalPropertiesJSON string                `json:"additional_properties_json"`
	CreatedAtTimestamp       int64                 `json:"created_at_timestamp"`
}

func NewEnv

func NewEnv(
	envName string,
	instanceType string,
	resolvedRepository ResolvedEnvRepository,
) *Env

func (*Env) GetNameSlug

func (e *Env) GetNameSlug() string

func (*Env) GetSSHKeyPairName

func (e *Env) GetSSHKeyPairName() string

func (*Env) SetAdditionalPropertiesJSON

func (e *Env) SetAdditionalPropertiesJSON(additionalProperties interface{}) error

func (*Env) SetInfrastructureJSON

func (e *Env) SetInfrastructureJSON(infrastructure interface{}) error

type EnvRepositoryGitURL

type EnvRepositoryGitURL string

type EnvSSHHostKey

type EnvSSHHostKey struct {
	Algorithm   string `json:"algorithm"`
	Fingerprint string `json:"fingerprint"`
}

func ParseSSHHostKeys

func ParseSSHHostKeys(hostKeysContent string) ([]EnvSSHHostKey, error)

type EnvStatus

type EnvStatus string
const (
	EnvStatusCreating EnvStatus = "creating"
	EnvStatusCreated  EnvStatus = "created"
	EnvStatusRemoving EnvStatus = "removing"
)

type ErrClosePortCreatingEnv

type ErrClosePortCreatingEnv struct {
	EnvName string
}

func (ErrClosePortCreatingEnv) Error

type ErrClosePortRemovingEnv

type ErrClosePortRemovingEnv struct {
	EnvName string
}

func (ErrClosePortRemovingEnv) Error

type ErrClusterAlreadyExists

type ErrClusterAlreadyExists struct {
	ClusterName string
}

func (ErrClusterAlreadyExists) Error

func (e ErrClusterAlreadyExists) Error() string

type ErrClusterNotExists

type ErrClusterNotExists struct {
	ClusterName string
}

func (ErrClusterNotExists) Error

func (e ErrClusterNotExists) Error() string

type ErrEditCreatingEnv

type ErrEditCreatingEnv struct {
	EnvName string
}

func (ErrEditCreatingEnv) Error

func (ErrEditCreatingEnv) Error() string

type ErrEditRemovingEnv

type ErrEditRemovingEnv struct {
	EnvName string
}

func (ErrEditRemovingEnv) Error

func (ErrEditRemovingEnv) Error() string

type ErrEnvNotExists

type ErrEnvNotExists struct {
	ClusterName string
	EnvName     string
}

func (ErrEnvNotExists) Error

func (ErrEnvNotExists) Error() string

type ErrEnvRepositoryNotFound

type ErrEnvRepositoryNotFound struct {
	RepoOwner string
	RepoName  string
}

func (ErrEnvRepositoryNotFound) Error

type ErrInitRemovingEnv

type ErrInitRemovingEnv struct {
	EnvName string
}

func (ErrInitRemovingEnv) Error

func (ErrInitRemovingEnv) Error() string

type ErrInvalidPort

type ErrInvalidPort struct {
	InvalidPort string
}

func (ErrInvalidPort) Error

func (ErrInvalidPort) Error() string

type ErrOpenPortCreatingEnv

type ErrOpenPortCreatingEnv struct {
	EnvName string
}

func (ErrOpenPortCreatingEnv) Error

type ErrOpenPortRemovingEnv

type ErrOpenPortRemovingEnv struct {
	EnvName string
}

func (ErrOpenPortRemovingEnv) Error

type ErrReservedPort

type ErrReservedPort struct {
	ReservedPort string
}

func (ErrReservedPort) Error

func (ErrReservedPort) Error() string

type HookRunner

type HookRunner interface {
	Run(
		cloudService CloudService,
		config *Config,
		cluster *Cluster,
		env *Env,
	) error
}

type ResolvedEnvRepository

type ResolvedEnvRepository struct {
	Name          string              `json:"name"`
	Owner         string              `json:"owner"`
	ExplicitOwner bool                `json:"explicit_owner"`
	GitURL        EnvRepositoryGitURL `json:"git_url"`
	GitHTTPURL    EnvRepositoryGitURL `json:"git_http_url"`
	LanguagesUsed []string            `json:"languages_used"`
}

Jump to

Keyboard shortcuts

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