models

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AliasName of the database
	AliasName = "default"
	// SslEnableKey the env key of the database ssl
	SslEnableKey = "SSL_ENABLE"

	// DefaultSQLDriverName the default sql driver
	DefaultSQLDriverName = "sqlite"
)
View Source
const (
	// StatusInstalling for operator
	StatusInstalling = "Installing"
	// StatusSuccess for operator
	StatusSuccess = "Success"
	// StatusAbnormal for operator
	StatusAbnormal = "Abnormal"

	// StatusUnknown for instance
	StatusUnknown = "Unknown"
	// StatusInitializing for instance
	StatusInitializing = "Initializing"
	// StatusInitialized for instance
	StatusInitialized = "Initialized"
	// StatusInitFailed for instance
	StatusInitFailed = "InitFailed"
	// StatusFailed for operator and instance
	StatusFailed = "Failed"

	// StatusUpgrading for instance operator
	StatusUpgrading = "Upgrading"
	// StatusRollingBack for instance operator
	StatusRollingBack = "RollingBack"
	// StatusDeleting for instance operator
	StatusDeleting = "Deleting"
	// StatusUpgradeFailed for instance operator
	StatusUpgradeFailed = "UpgradeFailed"
	// StatusDeleteFailed for instance operator
	StatusDeleteFailed = "DeleteFailed"
	// StatusRollBackFailed for instance operator
	StatusRollBackFailed = "RollBackFailed"
)
View Source
const (
	// Manager the service type name of manager service
	Manager serviceType = "Manager"
)

Variables

FailedStatusList of instance and operator

View Source
var Handler = func(err *error, tx Transaction) {
	if IgnoreDBInsertIDError(*err) != nil {
		tx.RollBackTransaction()
		return
	}
	*err = tx.CommitTransaction()
}

Handler functions for error and transaction

Functions

func GetNewOrm

func GetNewOrm() orm.Ormer

GetNewOrm get the orm operator

func IgnoreDBInsertIDError

func IgnoreDBInsertIDError(err error) error

IgnoreDBInsertIDError because insert to the database it may have some id errors, we need to ignore this kind of errors

func NotDBInsertIDError

func NotDBInsertIDError(err error) bool

NotDBInsertIDError because insert to the database it may have some id errors, we need to ignore this kind of errors

func SetDatabase

func SetDatabase(d Database)

SetDatabase set the running database

Types

type Database

type Database interface {
	InitSQLDriver(cfg *DatabaseConfig, serviceType serviceType) error
	GetDBConnection() string
	// contains filtered or unexported methods
}

Database interface of the connections and etc.

func GetDatabase

func GetDatabase() Database

GetDatabase get the database

type DatabaseConfig

type DatabaseConfig struct {
	SQLDriver   string
	MaxIdle     int
	MaxConn     int
	MaxLifetime int
	SslEnable   string
}

DatabaseConfig the basic config for the database

func DefaultDatabaseConfiguration

func DefaultDatabaseConfiguration() *DatabaseConfig

DefaultDatabaseConfiguration get the default database configuration

type DatabaseWatcherConfig

type DatabaseWatcherConfig struct {
	// database uri
	Connection string
	// min interval seconds for database reconnection
	ListenerMinReconnectInterval time.Duration
	// max interval seconds for database reconnection
	ListenerMaxReconnectInterval time.Duration
}

DatabaseWatcherConfig configuration for watch the database connection

func DefaultDatabaseWatcherConfig

func DefaultDatabaseWatcherConfig() *DatabaseWatcherConfig

DefaultDatabaseWatcherConfig get the default database watcher config

type FakeTransactionImpl

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

FakeTransactionImpl for unit test

func (*FakeTransactionImpl) BeginTransaction

func (t *FakeTransactionImpl) BeginTransaction() error

BeginTransaction fake method for unit test

func (*FakeTransactionImpl) CommitTransaction

func (t *FakeTransactionImpl) CommitTransaction() error

CommitTransaction fake method for unit test

func (*FakeTransactionImpl) GetTransaction

func (t *FakeTransactionImpl) GetTransaction() orm.TxOrmer

GetTransaction from implement

func (*FakeTransactionImpl) RollBackTransaction

func (t *FakeTransactionImpl) RollBackTransaction()

RollBackTransaction fake method for unit test

type InstanceModel

type InstanceModel struct {
	ID                  string                 `orm:"size(40);pk;column(id)"`
	Kind                string                 `orm:"size(64);column(kind)"`
	APIVersion          string                 `orm:"size(64);column(api_version)"`
	Name                string                 `orm:"size(64);column(name)"`
	Namespace           string                 `orm:"size(64);column(namespace)"`
	ServiceBindingID    string                 `orm:"size(40);column(service_binding_id)"`
	RawResource         string                 `orm:"type(text);null;column(raw_resource)"`
	Status              string                 `orm:"size(64);column(status)"`
	ErrorMessage        string                 `orm:"type(text);null;column(error_message)"`
	ServiceID           string                 `orm:"size(40);column(service_id)"`
	InstanceType        internals.InstanceType `orm:"size(64);column(instance_type)"`
	ServiceName         string                 `orm:"size(64);column(service_name)"`
	ClusterID           string                 `orm:"size(64);column(cluster_id)"`
	ClusterName         string                 `orm:"size(64);column(cluster_name)"`
	PackageDependencies string                 `orm:"type(text);null;column(pkg_dependencies)"`
	CreateTimestamp     time.Time              `orm:"type(datetime);auto_now_add;column(create_timestamp)"`
	ProcessTime         time.Time              `orm:"type(datetime);null;column(process_time)"`
	UpdateTime          time.Time              `orm:"type(datetime);null;column(update_timestamp)"`
	InstallState        string                 `orm:"type(text);column(install_state)"`

	Resource *ResourceModel `orm:"null;rel(fk)"`
}

InstanceModel defines the table fields of instance_model in database

func (*InstanceModel) Generate

func (i *InstanceModel) Generate(currTimestamp time.Time, isUpdate bool)

Generate fills a instance_model record with id and timestamps

type ResourceModel

type ResourceModel struct {
	ID              string    `orm:"size(40);pk;column(id)"`
	Kind            string    `orm:"size(64);column(kind)"`
	Group           string    `orm:"size(64);column(group)"`
	APIVersion      string    `orm:"size(64);column(api_version)"`
	Resource        string    `orm:"size(64);column(resource)"`
	CreateTimestamp time.Time `orm:"type(datetime);auto_now_add;column(create_timestamp)"`
	UpdateTimestamp time.Time `orm:"type(datetime);null;column(update_timestamp)"`

	Instances []*InstanceModel `json:"instances" orm:"null;reverse(many)"`

	ServiceBinding *ServiceBindingModel `orm:"null;rel(fk)"`
}

ResourceModel defines the table fields of resource_model in database

func (*ResourceModel) Generate

func (r *ResourceModel) Generate(currTimestamp time.Time, isUpdate bool)

Generate fills a resource_model record with id and timestamps

func (*ResourceModel) GetInstanceToResourceMap

func (r *ResourceModel) GetInstanceToResourceMap() (map[string]ResourceModel, map[string]InstanceModel)

GetInstanceToResourceMap get the (instance's key) - (resource) map, Key is the format of InstanceModel.Name;InstanceModel.Namespace;InstanceModel.ClusterName

type ServiceBindingModel

type ServiceBindingModel struct {
	ID                       string    `orm:"size(40);pk;column(id)"`
	Name                     string    `orm:"size(64);column(name)"`
	Version                  string    `orm:"size(64);column(service_version)"`
	Namespace                string    `orm:"size(64);default(kappital-system);column(namespace)"`
	ServiceName              string    `orm:"size(64);column(service_name)"`
	ClusterName              string    `orm:"size(64);default(default);column(cluster_name)"`
	ServiceID                string    `orm:"size(40);column(service_id)"`
	VersionID                string    `orm:"size(40);column(version_id)"`
	Status                   string    `orm:"size(64);default(Pending);column(status)"`
	ErrorMessage             string    `orm:"type(text);null;column(error_message)"`
	Workloads                string    `orm:"type(text);null;column(workloads)"`
	Permissions              string    `orm:"type(text);null;column(permissions)"`
	CustomResourceDefinition string    `orm:"type(text);null;column(crd)"`
	CapabilityPlugin         string    `orm:"type(text);null;column(capability_plugin)"`
	CreateTime               time.Time `orm:"type(datetime);auto_now_add;column(create_timestamp)"`
	UpdateTime               time.Time `orm:"type(datetime);null;column(update_timestamp)"`
	ProcessTime              time.Time `orm:"type(datetime);null;column(process_timestamp)"`

	Resources []*ResourceModel `json:"resources" orm:"null;reverse(many)"`
}

ServiceBindingModel defines the table fields of service_binding_model in database

func (*ServiceBindingModel) Generate

func (s *ServiceBindingModel) Generate(currTimestamp time.Time, isUpdate bool)

Generate fills a service_binding_model record with id and timestamps

func (*ServiceBindingModel) GetResourceIDMap

func (s *ServiceBindingModel) GetResourceIDMap() map[string]string

GetResourceIDMap get the ServiceBinding's ResourceModel ID map Key is the format of ResourceModel.Kind;ResourceModel.APIVersion;ResourceModel.Resource

func (*ServiceBindingModel) TableUnique

func (s *ServiceBindingModel) TableUnique() [][]string

TableUnique makes combined columns unique

type Transaction

type Transaction interface {
	BeginTransaction() error
	CommitTransaction() error
	RollBackTransaction()

	GetTransaction() orm.TxOrmer
}

Transaction of the database actions

func NewTransaction

func NewTransaction(sqlSession orm.Ormer) Transaction

NewTransaction create a new transaction

type TransactionImpl

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

TransactionImpl which implement the sqlSession

func (*TransactionImpl) BeginTransaction

func (t *TransactionImpl) BeginTransaction() error

BeginTransaction begins using the transaction

func (*TransactionImpl) CommitTransaction

func (t *TransactionImpl) CommitTransaction() error

CommitTransaction commit the transaction if it does not have error

func (*TransactionImpl) GetTransaction

func (t *TransactionImpl) GetTransaction() orm.TxOrmer

GetTransaction from implement

func (*TransactionImpl) RollBackTransaction

func (t *TransactionImpl) RollBackTransaction()

RollBackTransaction not return err for meaningless golint and codex

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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