namespace

package
v1.46.14 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2025 License: MPL-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound = errors.New("namespace not found")
	ErrActive   = errors.New("namespace is active")
)

Functions

This section is empty.

Types

type DeletionHandler

type DeletionHandler interface {
	// CanDeleteNamespace is called to determine whether the namespace can be deleted
	// by the component. To signal the namespace cannot be deleted, return a non-nil error.
	CanDeleteNamespace(ctx context.Context, app *apps.Instance, ns *Namespace) error

	// DeleteNamespace is called when a namespace is deleted.
	// Due to the non-atomic nature of many components, failure to handle
	// the deletion cannot be fully rolled back.
	DeleteNamespace(ctx context.Context, app *apps.Instance, ns *Namespace) error
}

DeletionHandler is the interface for components that want to listen for and handle namespace deletion events.

type ID

type ID string

func ParseID added in v1.44.6

func ParseID(s string) (ID, bool)

func (ID) String added in v1.44.0

func (id ID) String() string

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager manages namespaces.

func NewManager

func NewManager(db *sql.DB) *Manager

func (*Manager) Create

func (m *Manager) Create(ctx context.Context, app *apps.Instance, name Name) (*Namespace, error)

func (*Manager) Delete

func (m *Manager) Delete(ctx context.Context, app *apps.Instance, name Name) error

func (*Manager) GetActive

func (m *Manager) GetActive(ctx context.Context, app *apps.Instance) (*Namespace, error)

GetActive returns the active namespace for the given app.

func (*Manager) GetByID

func (m *Manager) GetByID(ctx context.Context, app *apps.Instance, id ID) (*Namespace, error)

func (*Manager) GetByName

func (m *Manager) GetByName(ctx context.Context, app *apps.Instance, name Name) (*Namespace, error)

func (*Manager) List

func (m *Manager) List(ctx context.Context, app *apps.Instance) ([]*Namespace, error)

func (*Manager) RegisterDeletionHandler

func (mgr *Manager) RegisterDeletionHandler(h DeletionHandler)

func (*Manager) Switch

func (m *Manager) Switch(ctx context.Context, app *apps.Instance, name Name) (*