Documentation ¶
Index ¶
- func GetMillis() int64
- func LatestVersion() semver.Version
- type GroupRollingMetadata
- type RawClusterMetadata
- type SQLStore
- func (sqlStore *SQLStore) AddMultitenantDatabaseInstallationID(multitenantID, installationID string) (model.MultitenantDatabaseInstallationIDs, error)
- func (sqlStore *SQLStore) CreateCluster(cluster *model.Cluster) error
- func (sqlStore *SQLStore) CreateClusterInstallation(clusterInstallation *model.ClusterInstallation) error
- func (sqlStore *SQLStore) CreateGroup(group *model.Group) error
- func (sqlStore *SQLStore) CreateInstallation(installation *model.Installation) error
- func (sqlStore *SQLStore) CreateMultitenantDatabase(multitenantDatabase *model.MultitenantDatabase) error
- func (sqlStore *SQLStore) CreateWebhook(webhook *model.Webhook) error
- func (sqlStore *SQLStore) DeleteCluster(id string) error
- func (sqlStore *SQLStore) DeleteClusterInstallation(id string) error
- func (sqlStore *SQLStore) DeleteGroup(id string) error
- func (sqlStore *SQLStore) DeleteInstallation(id string) error
- func (sqlStore *SQLStore) DeleteWebhook(id string) error
- func (sqlStore *SQLStore) GetCluster(id string) (*model.Cluster, error)
- func (sqlStore *SQLStore) GetClusterInstallation(id string) (*model.ClusterInstallation, error)
- func (sqlStore *SQLStore) GetClusterInstallations(filter *model.ClusterInstallationFilter) ([]*model.ClusterInstallation, error)
- func (sqlStore *SQLStore) GetClusters(filter *model.ClusterFilter) ([]*model.Cluster, error)
- func (sqlStore *SQLStore) GetCurrentVersion() (semver.Version, error)
- func (sqlStore *SQLStore) GetGroup(id string) (*model.Group, error)
- func (sqlStore *SQLStore) GetGroupRollingMetadata(groupID string) (*GroupRollingMetadata, error)
- func (sqlStore *SQLStore) GetGroups(filter *model.GroupFilter) ([]*model.Group, error)
- func (sqlStore *SQLStore) GetInstallation(id string, includeGroupConfig, includeGroupConfigOverrides bool) (*model.Installation, error)
- func (sqlStore *SQLStore) GetInstallations(filter *model.InstallationFilter, ...) ([]*model.Installation, error)
- func (sqlStore *SQLStore) GetMultitenantDatabase(id string) (*model.MultitenantDatabase, error)
- func (sqlStore *SQLStore) GetMultitenantDatabaseForInstallationID(installationID string) (*model.MultitenantDatabase, error)
- func (sqlStore *SQLStore) GetMultitenantDatabases(filter *model.MultitenantDatabaseFilter) ([]*model.MultitenantDatabase, error)
- func (sqlStore *SQLStore) GetUnlockedClusterInstallationsPendingWork() ([]*model.ClusterInstallation, error)
- func (sqlStore *SQLStore) GetUnlockedClustersPendingWork() ([]*model.Cluster, error)
- func (sqlStore *SQLStore) GetUnlockedGroupsPendingWork() ([]*model.Group, error)
- func (sqlStore *SQLStore) GetUnlockedInstallationsPendingWork() ([]*model.Installation, error)
- func (sqlStore *SQLStore) GetWebhook(id string) (*model.Webhook, error)
- func (sqlStore *SQLStore) GetWebhooks(filter *model.WebhookFilter) ([]*model.Webhook, error)
- func (sqlStore *SQLStore) LockCluster(clusterID, lockerID string) (bool, error)
- func (sqlStore *SQLStore) LockClusterInstallations(clusterInstallationIDs []string, lockerID string) (bool, error)
- func (sqlStore *SQLStore) LockGroup(groupID, lockerID string) (bool, error)
- func (sqlStore *SQLStore) LockInstallation(installationID, lockerID string) (bool, error)
- func (sqlStore *SQLStore) LockMultitenantDatabase(multitenantDatabaseID, instanceID string) (bool, error)
- func (sqlStore *SQLStore) Migrate() error
- func (sqlStore *SQLStore) RemoveMultitenantDatabaseInstallationID(multitenantID, installationID string) (model.MultitenantDatabaseInstallationIDs, error)
- func (sqlStore *SQLStore) UnlockCluster(clusterID, lockerID string, force bool) (bool, error)
- func (sqlStore *SQLStore) UnlockClusterInstallations(clusterInstallationIDs []string, lockerID string, force bool) (bool, error)
- func (sqlStore *SQLStore) UnlockGroup(groupID, lockerID string, force bool) (bool, error)
- func (sqlStore *SQLStore) UnlockInstallation(installationID, lockerID string, force bool) (bool, error)
- func (sqlStore *SQLStore) UnlockMultitenantDatabase(multitenantDatabaseID, instanceID string, force bool) (bool, error)
- func (sqlStore *SQLStore) UpdateCluster(cluster *model.Cluster) error
- func (sqlStore *SQLStore) UpdateClusterInstallation(clusterInstallation *model.ClusterInstallation) error
- func (sqlStore *SQLStore) UpdateGroup(group *model.Group) error
- func (sqlStore *SQLStore) UpdateInstallation(installation *model.Installation) error
- func (sqlStore *SQLStore) UpdateInstallationGroupSequence(installation *model.Installation) error
- func (sqlStore *SQLStore) UpdateInstallationState(installation *model.Installation) error
- func (sqlStore *SQLStore) UpdateMultitenantDatabase(multitenantDatabase *model.MultitenantDatabase) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetMillis ¶
func GetMillis() int64
GetMillis is a convenience method to get milliseconds since epoch.
func LatestVersion ¶
LatestVersion returns the version to which the last migration migrates.
Types ¶
type GroupRollingMetadata ¶ added in v0.18.0
type GroupRollingMetadata struct { InstallationIDsToBeRolled []string InstallationTotalCount int64 InstallationStableCount int64 InstallationNonStableCount int64 }
GroupRollingMetadata is a batch of information about a group where installatons are being rolled to match a new config.
type RawClusterMetadata ¶ added in v0.20.0
type RawClusterMetadata struct { ProviderMetadataRaw []byte ProvisionerMetadataRaw []byte UtilityMetadataRaw []byte }
RawClusterMetadata is the raw byte metadata for a cluster.
type SQLStore ¶
type SQLStore struct {
// contains filtered or unexported fields
}
SQLStore abstracts access to the database.
func MakeTestSQLStore ¶
func MakeTestSQLStore(tb testing.TB, logger log.FieldLogger) *SQLStore
MakeTestSQLStore creates a SQLStore for use with unit tests.
func New ¶
func New(dsn string, logger logrus.FieldLogger) (*SQLStore, error)
New constructs a new instance of SQLStore.
func (*SQLStore) AddMultitenantDatabaseInstallationID ¶ added in v0.19.0
func (sqlStore *SQLStore) AddMultitenantDatabaseInstallationID(multitenantID, installationID string) (model.MultitenantDatabaseInstallationIDs, error)
AddMultitenantDatabaseInstallationID adds an installation ID to a multitenant database.
func (*SQLStore) CreateCluster ¶
CreateCluster records the given cluster to the database, assigning it a unique ID.
func (*SQLStore) CreateClusterInstallation ¶
func (sqlStore *SQLStore) CreateClusterInstallation(clusterInstallation *model.ClusterInstallation) error
CreateClusterInstallation records the given cluster installation to the database, assigning it a unique ID.
func (*SQLStore) CreateGroup ¶
CreateGroup records the given group to the database, assigning it a unique ID.
func (*SQLStore) CreateInstallation ¶
func (sqlStore *SQLStore) CreateInstallation(installation *model.Installation) error
CreateInstallation records the given installation to the database, assigning it a unique ID.
func (*SQLStore) CreateMultitenantDatabase ¶ added in v0.19.0
func (sqlStore *SQLStore) CreateMultitenantDatabase(multitenantDatabase *model.MultitenantDatabase) error
CreateMultitenantDatabase records the supplied multitenant database to the datastore.
func (*SQLStore) CreateWebhook ¶ added in v0.3.0
CreateWebhook records the given webhook to the database, assigning it a unique ID.
func (*SQLStore) DeleteCluster ¶
DeleteCluster marks the given cluster as deleted, but does not remove the record from the database.
func (*SQLStore) DeleteClusterInstallation ¶
DeleteClusterInstallation marks the given cluster installation as deleted, but does not remove the record from the database.
func (*SQLStore) DeleteGroup ¶
DeleteGroup marks the given group as deleted, but does not remove the record from the database.
func (*SQLStore) DeleteInstallation ¶
DeleteInstallation marks the given installation as deleted, but does not remove the record from the database.
func (*SQLStore) DeleteWebhook ¶ added in v0.3.0
DeleteWebhook marks the given webhook as deleted, but does not remove the record from the database.
func (*SQLStore) GetCluster ¶
GetCluster fetches the given cluster by id.
func (*SQLStore) GetClusterInstallation ¶
func (sqlStore *SQLStore) GetClusterInstallation(id string) (*model.ClusterInstallation, error)
GetClusterInstallation fetches the given cluster installation by id.
func (*SQLStore) GetClusterInstallations ¶
func (sqlStore *SQLStore) GetClusterInstallations(filter *model.ClusterInstallationFilter) ([]*model.ClusterInstallation, error)
GetClusterInstallations fetches the given page of created clusters. The first page is 0.
func (*SQLStore) GetClusters ¶
GetClusters fetches the given page of created clusters. The first page is 0.
func (*SQLStore) GetCurrentVersion ¶
GetCurrentVersion queries the System table for the current database version.
func (*SQLStore) GetGroupRollingMetadata ¶ added in v0.18.0
func (sqlStore *SQLStore) GetGroupRollingMetadata(groupID string) (*GroupRollingMetadata, error)
GetGroupRollingMetadata returns installation IDs and metadata related to installation configuration reconciliation from group updates.
Note: custom SQL queries are used here instead of calling GetInstallations(). This is done for performance as we don't need the actual installation objects in most cases.
TODO: currently the installations returned are only those that are in the group AND not on the latest sequence AND are in stable state. This is a best-case scenario that probably won't work in the long run. Other non-stable states will probably need to be added once they have been properly tested.
func (*SQLStore) GetGroups ¶
GetGroups fetches the given page of created groups. The first page is 0.
func (*SQLStore) GetInstallation ¶
func (sqlStore *SQLStore) GetInstallation(id string, includeGroupConfig, includeGroupConfigOverrides bool) (*model.Installation, error)
GetInstallation fetches the given installation by id.
func (*SQLStore) GetInstallations ¶
func (sqlStore *SQLStore) GetInstallations(filter *model.InstallationFilter, includeGroupConfig, includeGroupConfigOverrides bool) ([]*model.Installation, error)
GetInstallations fetches the given page of created installations. The first page is 0.
func (*SQLStore) GetMultitenantDatabase ¶ added in v0.19.0
func (sqlStore *SQLStore) GetMultitenantDatabase(id string) (*model.MultitenantDatabase, error)
GetMultitenantDatabase fetches the given multitenant database by id.
func (*SQLStore) GetMultitenantDatabaseForInstallationID ¶ added in v0.19.0
func (sqlStore *SQLStore) GetMultitenantDatabaseForInstallationID(installationID string) (*model.MultitenantDatabase, error)
GetMultitenantDatabaseForInstallationID fetches the multitenant database associated with an installation ID. If more than one multitenant database per installation exists, this function returns an error.
func (*SQLStore) GetMultitenantDatabases ¶ added in v0.19.0
func (sqlStore *SQLStore) GetMultitenantDatabases(filter *model.MultitenantDatabaseFilter) ([]*model.MultitenantDatabase, error)
GetMultitenantDatabases fetches the given page of created multitenant database. The first page is 0.
func (*SQLStore) GetUnlockedClusterInstallationsPendingWork ¶
func (sqlStore *SQLStore) GetUnlockedClusterInstallationsPendingWork() ([]*model.ClusterInstallation, error)
GetUnlockedClusterInstallationsPendingWork returns an unlocked cluster installation in a pending state.
func (*SQLStore) GetUnlockedClustersPendingWork ¶
GetUnlockedClustersPendingWork returns an unlocked cluster in a pending state.
func (*SQLStore) GetUnlockedGroupsPendingWork ¶ added in v0.17.0
GetUnlockedGroupsPendingWork returns unlocked groups that have installations that require configuration reconciliation.
func (*SQLStore) GetUnlockedInstallationsPendingWork ¶
func (sqlStore *SQLStore) GetUnlockedInstallationsPendingWork() ([]*model.Installation, error)
GetUnlockedInstallationsPendingWork returns an unlocked installation in a pending state.
func (*SQLStore) GetWebhook ¶ added in v0.3.0
GetWebhook fetches the given webhook by id.
func (*SQLStore) GetWebhooks ¶ added in v0.3.0
GetWebhooks fetches the given page of created webhooks. The first page is 0.
func (*SQLStore) LockCluster ¶
LockCluster marks the cluster as locked for exclusive use by the caller.
func (*SQLStore) LockClusterInstallations ¶
func (sqlStore *SQLStore) LockClusterInstallations(clusterInstallationIDs []string, lockerID string) (bool, error)
LockClusterInstallations marks the cluster installation as locked for exclusive use by the caller.
func (*SQLStore) LockGroup ¶ added in v0.17.0
LockGroup marks the group as locked for exclusive use by the caller.
func (*SQLStore) LockInstallation ¶
LockInstallation marks the installation as locked for exclusive use by the caller.
func (*SQLStore) LockMultitenantDatabase ¶ added in v0.19.0
func (sqlStore *SQLStore) LockMultitenantDatabase(multitenantDatabaseID, instanceID string) (bool, error)
LockMultitenantDatabase marks the database cluster as locked for exclusive use by the caller.
func (*SQLStore) Migrate ¶
Migrate advances the schema of the configured database to the latest version.
func (*SQLStore) RemoveMultitenantDatabaseInstallationID ¶ added in v0.19.0
func (sqlStore *SQLStore) RemoveMultitenantDatabaseInstallationID(multitenantID, installationID string) (model.MultitenantDatabaseInstallationIDs, error)
RemoveMultitenantDatabaseInstallationID removes an installation ID from a multitenant database.
func (*SQLStore) UnlockCluster ¶
UnlockCluster releases a lock previously acquired against a caller.
func (*SQLStore) UnlockClusterInstallations ¶
func (sqlStore *SQLStore) UnlockClusterInstallations(clusterInstallationIDs []string, lockerID string, force bool) (bool, error)
UnlockClusterInstallations releases a lock previously acquired against a caller.
func (*SQLStore) UnlockGroup ¶ added in v0.17.0
UnlockGroup releases a lock previously acquired against a caller.
func (*SQLStore) UnlockInstallation ¶
func (sqlStore *SQLStore) UnlockInstallation(installationID, lockerID string, force bool) (bool, error)
UnlockInstallation releases a lock previously acquired against a caller.
func (*SQLStore) UnlockMultitenantDatabase ¶ added in v0.19.0
func (sqlStore *SQLStore) UnlockMultitenantDatabase(multitenantDatabaseID, instanceID string, force bool) (bool, error)
UnlockMultitenantDatabase releases a lock previously acquired against a caller.
func (*SQLStore) UpdateCluster ¶
UpdateCluster updates the given cluster in the database.
func (*SQLStore) UpdateClusterInstallation ¶
func (sqlStore *SQLStore) UpdateClusterInstallation(clusterInstallation *model.ClusterInstallation) error
UpdateClusterInstallation updates the given cluster installation in the database.
func (*SQLStore) UpdateGroup ¶
UpdateGroup updates the given group in the database. If a value was updated that will possibly affect installation config then update the group sequence number.
func (*SQLStore) UpdateInstallation ¶
func (sqlStore *SQLStore) UpdateInstallation(installation *model.Installation) error
UpdateInstallation updates the given installation in the database.
func (*SQLStore) UpdateInstallationGroupSequence ¶ added in v0.18.0
func (sqlStore *SQLStore) UpdateInstallationGroupSequence(installation *model.Installation) error
UpdateInstallationGroupSequence updates the given installation GroupSequence to the value stored in the merged group config. The provided installation must have been merged with group config before passing it in.
func (*SQLStore) UpdateInstallationState ¶ added in v0.18.0
func (sqlStore *SQLStore) UpdateInstallationState(installation *model.Installation) error
UpdateInstallationState updates the given installation to a new state.
func (*SQLStore) UpdateMultitenantDatabase ¶ added in v0.19.0
func (sqlStore *SQLStore) UpdateMultitenantDatabase(multitenantDatabase *model.MultitenantDatabase) error
UpdateMultitenantDatabase updates a already existent multitenant database in the datastore.