Documentation
¶
Overview ¶
Package module is reponsible for registry modules
Index ¶
- Constants
- Variables
- func NewService(opts Options) *service
- func StartPublisher(ctx context.Context, opts PublisherOptions) error
- type CreateModuleVersionOptions
- type CreateOptions
- type GetModuleOptions
- type ListModulesOptions
- type Module
- type ModuleList
- type ModuleService
- type ModuleStatus
- type ModuleVersion
- type ModuleVersionStatus
- type Options
- type PublishOptions
- type PublishVersionOptions
- type PublisherOptions
- type Repo
- type Service
- type TerraformModule
- type UpdateModuleVersionStatusOptions
Constants ¶
View Source
const ( ModuleStatusPending ModuleStatus = "pending" ModuleStatusNoVersionTags ModuleStatus = "no_version_tags" ModuleStatusSetupFailed ModuleStatus = "setup_failed" ModuleStatusSetupComplete ModuleStatus = "setup_complete" ModuleVersionStatusPending ModuleVersionStatus = "pending" ModuleVersionStatusCloning ModuleVersionStatus = "cloning" ModuleVersionStatusCloneFailed ModuleVersionStatus = "clone_failed" ModuleVersionStatusRegIngressReqFailed ModuleVersionStatus = "reg_ingress_req_failed" ModuleVersionStatusRegIngressing ModuleVersionStatus = "reg_ingressing" ModuleVersionStatusRegIngressFailed ModuleVersionStatus = "reg_ingress_failed" ModuleVersionStatusOK ModuleVersionStatus = "ok" )
Variables ¶
View Source
var ErrInvalidModuleRepo = errors.New("invalid repository name for module")
Functions ¶
func NewService ¶ added in v0.0.32
func NewService(opts Options) *service
func StartPublisher ¶ added in v0.0.32
func StartPublisher(ctx context.Context, opts PublisherOptions) error
StartPublisher starts handling VCS events and publishing modules accordingly
Types ¶
type CreateModuleVersionOptions ¶ added in v0.0.32
type CreateOptions ¶ added in v0.0.32
type GetModuleOptions ¶ added in v0.0.32
type ListModulesOptions ¶ added in v0.0.32
type ListModulesOptions struct {
Organization string `schema:"organization_name,required"` // filter by organization name
}
type Module ¶ added in v0.0.32
type Module struct {
ID string
CreatedAt time.Time
UpdatedAt time.Time
Name string
Provider string
Organization string // Module belongs to an organization
Status ModuleStatus
Versions []ModuleVersion // versions sorted in descending order
Connection *repo.Connection // optional vcs repo connection
}
func NewModule ¶ added in v0.0.32
func NewModule(opts CreateOptions) *Module
func (*Module) AvailableVersions ¶ added in v0.0.32
func (m *Module) AvailableVersions() (avail []ModuleVersion)
func (*Module) Latest ¶ added in v0.0.32
func (m *Module) Latest() *ModuleVersion
Latest retrieves the latest version, which is the greatest version with an ok status. If there is such version, nil is returned.
func (*Module) MarshalLog ¶ added in v0.0.32
func (*Module) Version ¶ added in v0.0.32
func (m *Module) Version(v string) *ModuleVersion
type ModuleList ¶ added in v0.0.32
type ModuleList struct {
*otf.Pagination
Items []*Module
}
type ModuleService ¶ added in v0.0.32
type ModuleService = Service
type ModuleStatus ¶ added in v0.0.32
type ModuleStatus string
type ModuleVersion ¶ added in v0.0.32
type ModuleVersion struct {
ID string
ModuleID string
Version string
CreatedAt time.Time
UpdatedAt time.Time
Status ModuleVersionStatus
StatusError string
}
func NewModuleVersion ¶ added in v0.0.32
func NewModuleVersion(opts CreateModuleVersionOptions) *ModuleVersion
type ModuleVersionStatus ¶ added in v0.0.32
type ModuleVersionStatus string
type Options ¶ added in v0.0.32
type Options struct {
logr.Logger
otf.DB
otf.HostnameService
vcsprovider.VCSProviderService
*surl.Signer
otf.Renderer
repo.RepoService
}
type PublishOptions ¶ added in v0.0.32
type PublishVersionOptions ¶ added in v0.0.32
type PublisherOptions ¶ added in v0.0.32
type PublisherOptions struct {
logr.Logger
otf.Subscriber
vcsprovider.VCSProviderService
ModuleService
}
type Repo ¶ added in v0.0.32
type Repo string
Repo is the path of repository for a module. It is expected to follow a certain format, which varies according to the cloud providing the Repo, but it should always end with '/<identifier>-<name>-<provider>', with name and provider being used to set the name and provider of the module.
type Service ¶ added in v0.0.32
type Service interface {
// PublishModule publishes a module from a VCS repository.
PublishModule(context.Context, PublishOptions) (*Module, error)
PublishVersion(context.Context, PublishVersionOptions) error
// CreateModule creates a module without a connection to a VCS repository.
CreateModule(context.Context, CreateOptions) (*Module, error)
ListModules(context.Context, ListModulesOptions) ([]*Module, error)
GetModule(ctx context.Context, opts GetModuleOptions) (*Module, error)
GetModuleByID(ctx context.Context, id string) (*Module, error)
GetModuleByRepoID(ctx context.Context, repoID uuid.UUID) (*Module, error)
DeleteModule(ctx context.Context, id string) (*Module, error)
GetModuleInfo(ctx context.Context, versionID string) (*TerraformModule, error)
CreateVersion(context.Context, CreateModuleVersionOptions) (*ModuleVersion, error)
// contains filtered or unexported methods
}
type TerraformModule ¶ added in v0.0.32
TerraformModule is a module of terraform configuration
type UpdateModuleVersionStatusOptions ¶ added in v0.0.32
type UpdateModuleVersionStatusOptions struct {
ID string
Status ModuleVersionStatus
Error string
}
Click to show internal directories.
Click to hide internal directories.