Documentation ¶
Index ¶
- Constants
- Variables
- func APIToDevices(apiDevices map[string]map[string]string) (map[string]Device, error)
- func CertificateExists(ctx context.Context, tx *sql.Tx, fingerprint string) (bool, error)
- func ClusterGroupExists(ctx context.Context, tx *sql.Tx, name string) (bool, error)
- func CreateCertificate(ctx context.Context, tx *sql.Tx, object Certificate) (int64, error)
- func CreateCertificateProjects(ctx context.Context, tx *sql.Tx, objects []CertificateProject) error
- func CreateCertificateWithProjects(ctx context.Context, tx *sql.Tx, cert Certificate, projectNames []string) (int64, error)
- func CreateClusterGroup(ctx context.Context, tx *sql.Tx, object ClusterGroup) (int64, error)
- func CreateConfig(ctx context.Context, tx *sql.Tx, parent string, object Config) error
- func CreateDevices(ctx context.Context, tx *sql.Tx, parent string, objects map[string]Device) error
- func CreateInstance(ctx context.Context, tx *sql.Tx, object Instance) (int64, error)
- func CreateInstanceConfig(ctx context.Context, tx *sql.Tx, instanceID int64, config map[string]string) error
- func CreateInstanceDevices(ctx context.Context, tx *sql.Tx, instanceID int64, devices map[string]Device) error
- func CreateInstanceProfiles(ctx context.Context, tx *sql.Tx, objects []InstanceProfile) error
- func CreateInstanceSnapshot(ctx context.Context, tx *sql.Tx, object InstanceSnapshot) (int64, error)
- func CreateInstanceSnapshotConfig(ctx context.Context, tx *sql.Tx, instanceSnapshotID int64, ...) error
- func CreateInstanceSnapshotDevices(ctx context.Context, tx *sql.Tx, instanceSnapshotID int64, ...) error
- func CreateNetworkIntegration(ctx context.Context, tx *sql.Tx, object NetworkIntegration) (int64, error)
- func CreateNetworkIntegrationConfig(ctx context.Context, tx *sql.Tx, networkIntegrationID int64, ...) error
- func CreateNodeClusterGroup(ctx context.Context, tx *sql.Tx, object NodeClusterGroup) (int64, error)
- func CreateOrReplaceOperation(ctx context.Context, tx *sql.Tx, object Operation) (int64, error)
- func CreateProfile(ctx context.Context, tx *sql.Tx, object Profile) (int64, error)
- func CreateProfileConfig(ctx context.Context, tx *sql.Tx, profileID int64, config map[string]string) error
- func CreateProfileDevices(ctx context.Context, tx *sql.Tx, profileID int64, devices map[string]Device) error
- func CreateProject(ctx context.Context, tx *sql.Tx, object Project) (int64, error)
- func CreateProjectConfig(ctx context.Context, tx *sql.Tx, projectID int64, config map[string]string) error
- func DeleteCertificate(ctx context.Context, tx *sql.Tx, fingerprint string) error
- func DeleteCertificateProjects(ctx context.Context, tx *sql.Tx, certificateID int) error
- func DeleteCertificates(ctx context.Context, tx *sql.Tx, name string, certificateType certificate.Type) error
- func DeleteClusterGroup(ctx context.Context, tx *sql.Tx, name string) error
- func DeleteConfig(ctx context.Context, tx *sql.Tx, parent string, referenceID int) error
- func DeleteDevices(ctx context.Context, tx *sql.Tx, parent string, referenceID int) error
- func DeleteInstance(ctx context.Context, tx *sql.Tx, project string, name string) error
- func DeleteInstanceProfiles(ctx context.Context, tx *sql.Tx, instanceID int) error
- func DeleteInstanceSnapshot(ctx context.Context, tx *sql.Tx, project string, instance string, name string) error
- func DeleteNetworkIntegration(ctx context.Context, tx *sql.Tx, name string) error
- func DeleteNodeClusterGroup(ctx context.Context, tx *sql.Tx, groupID int) error
- func DeleteOperation(ctx context.Context, tx *sql.Tx, uuid string) error
- func DeleteOperations(ctx context.Context, tx *sql.Tx, nodeID int64) error
- func DeleteProfile(ctx context.Context, tx *sql.Tx, project string, name string) error
- func DeleteProject(ctx context.Context, tx *sql.Tx, name string) error
- func DeleteWarning(ctx context.Context, tx *sql.Tx, uuid string) error
- func DeleteWarnings(ctx context.Context, tx *sql.Tx, entityTypeCode int, entityID int) error
- func DevicesToAPI(devices map[string]Device) map[string]map[string]string
- func EnsureSchema(db *sql.DB, address string, dir string) (bool, error)
- func ExpandInstanceConfig(config map[string]string, profiles []api.Profile) map[string]string
- func ExpandInstanceDevices(devices config.Devices, profiles []api.Profile) config.Devices
- func FreshSchema() string
- func GetCertificateID(ctx context.Context, tx *sql.Tx, fingerprint string) (int64, error)
- func GetClusterGroupID(ctx context.Context, tx *sql.Tx, name string) (int64, error)
- func GetConfig(ctx context.Context, tx *sql.Tx, parent string, filters ...ConfigFilter) (map[int]map[string]string, error)
- func GetDevices(ctx context.Context, tx *sql.Tx, parent string, filters ...DeviceFilter) (map[int][]Device, error)
- func GetInstanceConfig(ctx context.Context, tx *sql.Tx, instanceID int, filters ...ConfigFilter) (map[string]string, error)
- func GetInstanceDevices(ctx context.Context, tx *sql.Tx, instanceID int, filters ...DeviceFilter) (map[string]Device, error)
- func GetInstanceID(ctx context.Context, tx *sql.Tx, project string, name string) (int64, error)
- func GetInstanceSnapshotConfig(ctx context.Context, tx *sql.Tx, instanceSnapshotID int, ...) (map[string]string, error)
- func GetInstanceSnapshotDevices(ctx context.Context, tx *sql.Tx, instanceSnapshotID int, ...) (map[string]Device, error)
- func GetInstanceSnapshotID(ctx context.Context, tx *sql.Tx, project string, instance string, name string) (int64, error)
- func GetNetworkIntegrationConfig(ctx context.Context, tx *sql.Tx, networkIntegrationID int, ...) (map[string]string, error)
- func GetNetworkIntegrationID(ctx context.Context, tx *sql.Tx, name string) (int64, error)
- func GetNodeClusterGroupID(ctx context.Context, tx *sql.Tx, groupID int) (int64, error)
- func GetNodeID(ctx context.Context, tx *sql.Tx, name string) (int64, error)
- func GetProfileConfig(ctx context.Context, tx *sql.Tx, profileID int, filters ...ConfigFilter) (map[string]string, error)
- func GetProfileDevices(ctx context.Context, tx *sql.Tx, profileID int, filters ...DeviceFilter) (map[string]Device, error)
- func GetProfileID(ctx context.Context, tx *sql.Tx, project string, name string) (int64, error)
- func GetProjectConfig(ctx context.Context, tx *sql.Tx, projectID int, filters ...ConfigFilter) (map[string]string, error)
- func GetProjectID(ctx context.Context, tx *sql.Tx, name string) (int64, error)
- func GetProjectIDsToNames(ctx context.Context, tx *sql.Tx) (map[int64]string, error)
- func GetProjectNames(ctx context.Context, tx *sql.Tx) ([]string, error)
- func GetWarningID(ctx context.Context, tx *sql.Tx, uuid string) (int64, error)
- func InitProjectWithoutImages(ctx context.Context, tx *sql.Tx, project string) error
- func InstanceExists(ctx context.Context, tx *sql.Tx, project string, name string) (bool, error)
- func InstanceSnapshotExists(ctx context.Context, tx *sql.Tx, project string, instance string, name string) (bool, error)
- func NetworkIntegrationExists(ctx context.Context, tx *sql.Tx, name string) (bool, error)
- func NodeClusterGroupExists(ctx context.Context, tx *sql.Tx, groupID int) (bool, error)
- func Open(name string, store driver.NodeStore, options ...driver.Option) (*sql.DB, error)
- func PrepareStmts(db *sql.DB, skipErrors bool) (map[int]*sql.Stmt, error)
- func ProfileExists(ctx context.Context, tx *sql.Tx, project string, name string) (bool, error)
- func ProjectExists(ctx context.Context, tx *sql.Tx, name string) (bool, error)
- func ProjectHasImages(ctx context.Context, tx *sql.Tx, name string) (bool, error)
- func ProjectHasProfiles(ctx context.Context, tx *sql.Tx, name string) (bool, error)
- func RegisterStmt(sql string) int
- func RenameClusterGroup(ctx context.Context, tx *sql.Tx, name string, to string) error
- func RenameInstance(ctx context.Context, tx *sql.Tx, project string, name string, to string) error
- func RenameInstanceSnapshot(ctx context.Context, tx *sql.Tx, project string, instance string, name string, ...) error
- func RenameNetworkIntegration(ctx context.Context, tx *sql.Tx, name string, to string) error
- func RenameProfile(ctx context.Context, tx *sql.Tx, project string, name string, to string) error
- func RenameProject(ctx context.Context, tx *sql.Tx, name string, to string) error
- func Schema() *schema.Schema
- func SchemaDotGo() error
- func Stmt(tx *sql.Tx, code int) (*sql.Stmt, error)
- func StmtString(code int) (string, error)
- func URLToEntityType(rawURL string) (int, string, string, []string, error)
- func UpdateCertificate(ctx context.Context, tx *sql.Tx, fingerprint string, object Certificate) error
- func UpdateCertificateProjects(ctx context.Context, tx *sql.Tx, certificateID int, projectNames []string) error
- func UpdateClusterGroup(ctx context.Context, tx *sql.Tx, name string, object ClusterGroup) error
- func UpdateConfig(ctx context.Context, tx *sql.Tx, parent string, referenceID int, ...) error
- func UpdateDevices(ctx context.Context, tx *sql.Tx, parent string, referenceID int, ...) error
- func UpdateInstance(ctx context.Context, tx *sql.Tx, project string, name string, object Instance) error
- func UpdateInstanceConfig(ctx context.Context, tx *sql.Tx, instanceID int64, config map[string]string) error
- func UpdateInstanceDevices(ctx context.Context, tx *sql.Tx, instanceID int64, devices map[string]Device) error
- func UpdateInstanceProfiles(ctx context.Context, tx *sql.Tx, instanceID int, projectName string, ...) error
- func UpdateNetworkIntegration(ctx context.Context, tx *sql.Tx, name string, object NetworkIntegration) error
- func UpdateNetworkIntegrationConfig(ctx context.Context, tx *sql.Tx, networkIntegrationID int64, ...) error
- func UpdateProfile(ctx context.Context, tx *sql.Tx, project string, name string, object Profile) error
- func UpdateProfileConfig(ctx context.Context, tx *sql.Tx, profileID int64, config map[string]string) error
- func UpdateProfileDevices(ctx context.Context, tx *sql.Tx, profileID int64, devices map[string]Device) error
- func UpdateProject(ctx context.Context, tx *sql.Tx, name string, object api.ProjectPut) error
- func WarningExists(ctx context.Context, tx *sql.Tx, uuid string) (bool, error)
- type Certificate
- func GetCertificate(ctx context.Context, tx *sql.Tx, fingerprint string) (*Certificate, error)
- func GetCertificateByFingerprintPrefix(ctx context.Context, tx *sql.Tx, fingerprintPrefix string) (*Certificate, error)
- func GetCertificates(ctx context.Context, tx *sql.Tx, filters ...CertificateFilter) ([]Certificate, error)
- type CertificateFilter
- type CertificateGenerated
- type CertificateProject
- type CertificateProjectFilter
- type CertificateProjectGenerated
- type ClusterGroup
- type ClusterGroupFilter
- type ClusterGroupGenerated
- type Config
- type ConfigFilter
- type ConfigGenerated
- type Device
- type DeviceFilter
- type DeviceGenerated
- type DeviceType
- type Image
- type ImageFilter
- type ImageGenerated
- type Instance
- type InstanceFilter
- type InstanceGenerated
- type InstanceProfile
- type InstanceProfileFilter
- type InstanceProfileGenerated
- type InstanceSnapshot
- type InstanceSnapshotFilter
- type InstanceSnapshotGenerated
- type NetworkIntegration
- type NetworkIntegrationFilter
- type NetworkIntegrationGenerated
- type Node
- type NodeClusterGroup
- type NodeClusterGroupFilter
- type NodeFilter
- type NodeGenerated
- type Operation
- type OperationFilter
- type OperationGenerated
- type Profile
- func GetInstanceProfiles(ctx context.Context, tx *sql.Tx, instanceID int) ([]Profile, error)
- func GetProfile(ctx context.Context, tx *sql.Tx, project string, name string) (*Profile, error)
- func GetProfiles(ctx context.Context, tx *sql.Tx, filters ...ProfileFilter) ([]Profile, error)
- func GetProfilesIfEnabled(ctx context.Context, tx *sql.Tx, projectName string, names []string) ([]Profile, error)
- type ProfileFilter
- type ProfileGenerated
- type Project
- type ProjectFeature
- type ProjectFilter
- type ProjectGenerated
- type Warning
- type WarningFilter
- type WarningGenerated
Constants ¶
const ( TypeNone = DeviceType(0) TypeNIC = DeviceType(1) TypeDisk = DeviceType(2) TypeUnixChar = DeviceType(3) TypeUnixBlock = DeviceType(4) TypeUSB = DeviceType(5) TypeGPU = DeviceType(6) TypeInfiniband = DeviceType(7) TypeProxy = DeviceType(8) TypeUnixHotplug = DeviceType(9) TypeTPM = DeviceType(10) TypePCI = DeviceType(11) )
Supported device types.
const ( TypeContainer = 0 TypeImage = 1 TypeProfile = 2 TypeProject = 3 TypeCertificate = 4 TypeInstance = 5 TypeInstanceBackup = 6 TypeInstanceSnapshot = 7 TypeNetwork = 8 TypeNetworkACL = 9 TypeNode = 10 TypeOperation = 11 TypeStoragePool = 12 TypeStorageVolume = 13 TypeStorageVolumeBackup = 14 TypeStorageVolumeSnapshot = 15 TypeWarning = 16 TypeClusterGroup = 17 TypeStorageBucket = 18 )
Numeric type codes identifying different kind of entities.
const ( // NetworkIntegrationTypeOVN represents an OVN network integration. NetworkIntegrationTypeOVN = iota )
Variables ¶
var EntityNames = map[int]string{ TypeContainer: "container", TypeImage: "image", TypeProfile: "profile", TypeProject: "project", TypeCertificate: "certificate", TypeInstance: "instance", TypeInstanceBackup: "instance backup", TypeInstanceSnapshot: "instance snapshot", TypeNetwork: "network", TypeNetworkACL: "network acl", TypeNode: "node", TypeOperation: "operation", TypeStoragePool: "storage pool", TypeStorageVolume: "storage volume", TypeStorageVolumeBackup: "storage volume backup", TypeStorageVolumeSnapshot: "storage volume snapshot", TypeStorageBucket: "storage bucket", TypeWarning: "warning", TypeClusterGroup: "cluster group", }
EntityNames associates an entity code to its name.
var EntityTypes = map[string]int{}
EntityTypes associates an entity name to its type code.
var EntityURIs = map[int]string{ TypeContainer: "/" + version.APIVersion + "/containers/%s?project=%s", TypeImage: "/" + version.APIVersion + "/images/%s?project=%s", TypeProfile: "/" + version.APIVersion + "/profiles/%s?project=%s", TypeProject: "/" + version.APIVersion + "/projects/%s", TypeCertificate: "/" + version.APIVersion + "/certificates/%s", TypeInstance: "/" + version.APIVersion + "/instances/%s?project=%s", TypeInstanceBackup: "/" + version.APIVersion + "/instances/%s/backups/%s?project=%s", TypeInstanceSnapshot: "/" + version.APIVersion + "/instances/%s/snapshots/%s?project=%s", TypeNetwork: "/" + version.APIVersion + "/networks/%s?project=%s", TypeNetworkACL: "/" + version.APIVersion + "/network-acls/%s?project=%s", TypeNode: "/" + version.APIVersion + "/cluster/members/%s", TypeOperation: "/" + version.APIVersion + "/operations/%s", TypeStoragePool: "/" + version.APIVersion + "/storage-pools/%s", TypeStorageVolume: "/" + version.APIVersion + "/storage-pools/%s/volumes/%s/%s?project=%s", TypeStorageVolumeBackup: "/" + version.APIVersion + "/storage-pools/%s/volumes/%s/%s/backups/%s?project=%s", TypeStorageVolumeSnapshot: "/" + version.APIVersion + "/storage-pools/%s/volumes/%s/%s/snapshots/%s?project=%s", TypeStorageBucket: "/" + version.APIVersion + "/storage-pools/%s/buckets/%s?project=%s", TypeWarning: "/" + version.APIVersion + "/warnings/%s", TypeClusterGroup: "/" + version.APIVersion + "/cluster/groups/%s", }
EntityURIs associates an entity code to its URI pattern.
var NetworkIntegrationTypeNames = map[int]string{ NetworkIntegrationTypeOVN: "ovn", }
NetworkIntegrationTypeNames is a map between DB type to their string representation.
var PreparedStmts = map[int]*sql.Stmt{}
PreparedStmts is a placeholder for transitioning to package-scoped transaction functions.
var ProjectFeatures = map[string]ProjectFeature{ "features.images": { DefaultEnabled: true, }, "features.profiles": { DefaultEnabled: true, }, "features.storage.volumes": { DefaultEnabled: true, }, "features.storage.buckets": { DefaultEnabled: true, }, "features.networks": {}, "features.networks.zones": { CanEnableNonEmpty: true, }, }
ProjectFeatures lists available project features and their behaviours.
var SchemaVersion = len(updates)
SchemaVersion is the current version of the cluster database schema.
Functions ¶
func APIToDevices ¶
APIToDevices takes an API format devices map and converts it to a map of db.Device.
func CertificateExists ¶
CertificateExists checks if a certificate with the given key exists. generator: certificate Exists
func ClusterGroupExists ¶
ClusterGroupExists checks if a cluster_group with the given key exists. generator: cluster_group Exists
func CreateCertificate ¶
CreateCertificate adds a new certificate to the database. generator: certificate Create
func CreateCertificateProjects ¶
CreateCertificateProjects adds a new certificate_project to the database. generator: certificate_project Create
func CreateCertificateWithProjects ¶
func CreateCertificateWithProjects(ctx context.Context, tx *sql.Tx, cert Certificate, projectNames []string) (int64, error)
CreateCertificateWithProjects stores a CertInfo object in the db, and associates it to a list of project names. It will ignore the ID field from the CertInfo.
func CreateClusterGroup ¶
CreateClusterGroup adds a new cluster_group to the database. generator: cluster_group Create
func CreateConfig ¶
CreateConfig adds a new config to the database. generator: config Create
func CreateDevices ¶
CreateDevices adds a new device to the database. generator: device Create
func CreateInstance ¶
CreateInstance adds a new instance to the database. generator: instance Create
func CreateInstanceConfig ¶
func CreateInstanceConfig(ctx context.Context, tx *sql.Tx, instanceID int64, config map[string]string) error
CreateInstanceConfig adds new instance Config to the database. generator: instance Create
func CreateInstanceDevices ¶
func CreateInstanceDevices(ctx context.Context, tx *sql.Tx, instanceID int64, devices map[string]Device) error
CreateInstanceDevices adds new instance Devices to the database. generator: instance Create
func CreateInstanceProfiles ¶
CreateInstanceProfiles adds a new instance_profile to the database. generator: instance_profile Create
func CreateInstanceSnapshot ¶
func CreateInstanceSnapshot(ctx context.Context, tx *sql.Tx, object InstanceSnapshot) (int64, error)
CreateInstanceSnapshot adds a new instance_snapshot to the database. generator: instance_snapshot Create
func CreateInstanceSnapshotConfig ¶
func CreateInstanceSnapshotConfig(ctx context.Context, tx *sql.Tx, instanceSnapshotID int64, config map[string]string) error
CreateInstanceSnapshotConfig adds new instance_snapshot Config to the database. generator: instance_snapshot Create
func CreateInstanceSnapshotDevices ¶
func CreateInstanceSnapshotDevices(ctx context.Context, tx *sql.Tx, instanceSnapshotID int64, devices map[string]Device) error
CreateInstanceSnapshotDevices adds new instance_snapshot Devices to the database. generator: instance_snapshot Create
func CreateNetworkIntegration ¶
func CreateNetworkIntegration(ctx context.Context, tx *sql.Tx, object NetworkIntegration) (int64, error)
CreateNetworkIntegration adds a new network_integration to the database. generator: network_integration Create
func CreateNetworkIntegrationConfig ¶
func CreateNetworkIntegrationConfig(ctx context.Context, tx *sql.Tx, networkIntegrationID int64, config map[string]string) error
CreateNetworkIntegrationConfig adds new network_integration Config to the database. generator: network_integration Create
func CreateNodeClusterGroup ¶
func CreateNodeClusterGroup(ctx context.Context, tx *sql.Tx, object NodeClusterGroup) (int64, error)
CreateNodeClusterGroup adds a new node_cluster_group to the database. generator: node_cluster_group Create
func CreateOrReplaceOperation ¶
CreateOrReplaceOperation adds a new operation to the database. generator: operation CreateOrReplace
func CreateProfile ¶
CreateProfile adds a new profile to the database. generator: profile Create
func CreateProfileConfig ¶
func CreateProfileConfig(ctx context.Context, tx *sql.Tx, profileID int64, config map[string]string) error
CreateProfileConfig adds new profile Config to the database. generator: profile Create
func CreateProfileDevices ¶
func CreateProfileDevices(ctx context.Context, tx *sql.Tx, profileID int64, devices map[string]Device) error
CreateProfileDevices adds new profile Devices to the database. generator: profile Create
func CreateProject ¶
CreateProject adds a new project to the database. generator: project Create
func CreateProjectConfig ¶
func CreateProjectConfig(ctx context.Context, tx *sql.Tx, projectID int64, config map[string]string) error
CreateProjectConfig adds new project Config to the database. generator: project Create
func DeleteCertificate ¶
DeleteCertificate deletes the certificate matching the given key parameters. generator: certificate DeleteOne-by-Fingerprint
func DeleteCertificateProjects ¶
DeleteCertificateProjects deletes the certificate_project matching the given key parameters. generator: certificate_project DeleteMany
func DeleteCertificates ¶
func DeleteCertificates(ctx context.Context, tx *sql.Tx, name string, certificateType certificate.Type) error
DeleteCertificates deletes the certificate matching the given key parameters. generator: certificate DeleteMany-by-Name-and-Type
func DeleteClusterGroup ¶
DeleteClusterGroup deletes the cluster_group matching the given key parameters. generator: cluster_group DeleteOne-by-Name
func DeleteConfig ¶
DeleteConfig deletes the config matching the given key parameters. generator: config DeleteMany
func DeleteDevices ¶
DeleteDevices deletes the device matching the given key parameters. generator: device DeleteMany
func DeleteInstance ¶
DeleteInstance deletes the instance matching the given key parameters. generator: instance DeleteOne-by-Project-and-Name
func DeleteInstanceProfiles ¶
DeleteInstanceProfiles deletes the instance_profile matching the given key parameters. generator: instance_profile DeleteMany
func DeleteInstanceSnapshot ¶
func DeleteInstanceSnapshot(ctx context.Context, tx *sql.Tx, project string, instance string, name string) error
DeleteInstanceSnapshot deletes the instance_snapshot matching the given key parameters. generator: instance_snapshot DeleteOne-by-Project-and-Instance-and-Name
func DeleteNetworkIntegration ¶
DeleteNetworkIntegration deletes the network_integration matching the given key parameters. generator: network_integration DeleteOne-by-Name
func DeleteNodeClusterGroup ¶
DeleteNodeClusterGroup deletes the node_cluster_group matching the given key parameters. generator: node_cluster_group DeleteOne-by-GroupID
func DeleteOperation ¶
DeleteOperation deletes the operation matching the given key parameters. generator: operation DeleteOne-by-UUID
func DeleteOperations ¶
DeleteOperations deletes the operation matching the given key parameters. generator: operation DeleteMany-by-NodeID
func DeleteProfile ¶
DeleteProfile deletes the profile matching the given key parameters. generator: profile DeleteOne-by-Project-and-Name
func DeleteProject ¶
DeleteProject deletes the project matching the given key parameters. generator: project DeleteOne-by-Name
func DeleteWarning ¶
DeleteWarning deletes the warning matching the given key parameters. generator: warning DeleteOne-by-UUID
func DeleteWarnings ¶
DeleteWarnings deletes the warning matching the given key parameters. generator: warning DeleteMany-by-EntityTypeCode-and-EntityID
func DevicesToAPI ¶
DevicesToAPI takes a map of devices and converts them to API format.
func EnsureSchema ¶
EnsureSchema applies all relevant schema updates to the cluster database.
Before actually doing anything, this function will make sure that all nodes in the cluster have a schema version and a number of API extensions that match our one. If it's not the case, we either return an error (if some nodes have version greater than us and we need to be upgraded), or return false and no error (if some nodes have a lower version, and we need to wait till they get upgraded and restarted).
func ExpandInstanceConfig ¶
ExpandInstanceConfig expands the given instance config with the config values of the given profiles.
func ExpandInstanceDevices ¶
ExpandInstanceDevices expands the given instance devices with the devices defined in the given profiles.
func FreshSchema ¶
func FreshSchema() string
FreshSchema returns the fresh schema definition of the global database.
func GetCertificateID ¶
GetCertificateID return the ID of the certificate with the given key. generator: certificate ID
func GetClusterGroupID ¶
GetClusterGroupID return the ID of the cluster_group with the given key. generator: cluster_group ID
func GetConfig ¶
func GetConfig(ctx context.Context, tx *sql.Tx, parent string, filters ...ConfigFilter) (map[int]map[string]string, error)
GetConfig returns all available config. generator: config GetMany
func GetDevices ¶
func GetDevices(ctx context.Context, tx *sql.Tx, parent string, filters ...DeviceFilter) (map[int][]Device, error)
GetDevices returns all available devices for the parent entity. generator: device GetMany
func GetInstanceConfig ¶
func GetInstanceConfig(ctx context.Context, tx *sql.Tx, instanceID int, filters ...ConfigFilter) (map[string]string, error)
GetInstanceConfig returns all available Instance Config generator: instance GetMany
func GetInstanceDevices ¶
func GetInstanceDevices(ctx context.Context, tx *sql.Tx, instanceID int, filters ...DeviceFilter) (map[string]Device, error)
GetInstanceDevices returns all available Instance Devices generator: instance GetMany
func GetInstanceID ¶
GetInstanceID return the ID of the instance with the given key. generator: instance ID
func GetInstanceSnapshotConfig ¶
func GetInstanceSnapshotConfig(ctx context.Context, tx *sql.Tx, instanceSnapshotID int, filters ...ConfigFilter) (map[string]string, error)
GetInstanceSnapshotConfig returns all available InstanceSnapshot Config generator: instance_snapshot GetMany
func GetInstanceSnapshotDevices ¶
func GetInstanceSnapshotDevices(ctx context.Context, tx *sql.Tx, instanceSnapshotID int, filters ...DeviceFilter) (map[string]Device, error)
GetInstanceSnapshotDevices returns all available InstanceSnapshot Devices generator: instance_snapshot GetMany
func GetInstanceSnapshotID ¶
func GetInstanceSnapshotID(ctx context.Context, tx *sql.Tx, project string, instance string, name string) (int64, error)
GetInstanceSnapshotID return the ID of the instance_snapshot with the given key. generator: instance_snapshot ID
func GetNetworkIntegrationConfig ¶
func GetNetworkIntegrationConfig(ctx context.Context, tx *sql.Tx, networkIntegrationID int, filters ...ConfigFilter) (map[string]string, error)
GetNetworkIntegrationConfig returns all available NetworkIntegration Config generator: network_integration GetMany
func GetNetworkIntegrationID ¶
GetNetworkIntegrationID return the ID of the network_integration with the given key. generator: network_integration ID
func GetNodeClusterGroupID ¶
GetNodeClusterGroupID return the ID of the node_cluster_group with the given key. generator: node_cluster_group ID
func GetProfileConfig ¶
func GetProfileConfig(ctx context.Context, tx *sql.Tx, profileID int, filters ...ConfigFilter) (map[string]string, error)
GetProfileConfig returns all available Profile Config generator: profile GetMany
func GetProfileDevices ¶
func GetProfileDevices(ctx context.Context, tx *sql.Tx, profileID int, filters ...DeviceFilter) (map[string]Device, error)
GetProfileDevices returns all available Profile Devices generator: profile GetMany
func GetProfileID ¶
GetProfileID return the ID of the profile with the given key. generator: profile ID
func GetProjectConfig ¶
func GetProjectConfig(ctx context.Context, tx *sql.Tx, projectID int, filters ...ConfigFilter) (map[string]string, error)
GetProjectConfig returns all available Project Config generator: project GetMany
func GetProjectID ¶
GetProjectID return the ID of the project with the given key. generator: project ID
func GetProjectIDsToNames ¶
GetProjectIDsToNames returns a map associating each prect ID to its project name.
func GetProjectNames ¶
GetProjectNames returns the names of all availablprojects.
func GetWarningID ¶
GetWarningID return the ID of the warning with the given key. generator: warning ID
func InitProjectWithoutImages ¶
InitProjectWithoutImages populates the images_profiles table with all images from the default project when a project is created with features.images=false.
func InstanceExists ¶
InstanceExists checks if a instance with the given key exists. generator: instance Exists
func InstanceSnapshotExists ¶
func InstanceSnapshotExists(ctx context.Context, tx *sql.Tx, project string, instance string, name string) (bool, error)
InstanceSnapshotExists checks if a instance_snapshot with the given key exists. generator: instance_snapshot Exists
func NetworkIntegrationExists ¶
NetworkIntegrationExists checks if a network_integration with the given key exists. generator: network_integration Exists
func NodeClusterGroupExists ¶
NodeClusterGroupExists checks if a node_cluster_group with the given key exists. generator: node_cluster_group Exists
func Open ¶
Open the cluster database object.
The name argument is the name of the cluster database. It defaults to 'db.bin', but can be overwritten for testing.
The dialer argument is a function that returns a gRPC dialer that can be used to connect to a database node using the gRPC SQL package.
func PrepareStmts ¶
PrepareStmts prepares all registered statements and returns an index from statement code to prepared statement object.
func ProfileExists ¶
ProfileExists checks if a profile with the given key exists. generator: profile Exists
func ProjectExists ¶
ProjectExists checks if a project with the given key exists. generator: project Exists
func ProjectHasImages ¶
ProjectHasImages is a helper to check if a project has the images feature enabled.
func ProjectHasProfiles ¶
ProjectHasProfiles is a helper to check if a project has the profiles feature enabled.
func RegisterStmt ¶
RegisterStmt register a SQL statement.
Registered statements will be prepared upfront and re-used, to speed up execution.
Return a unique registration code.
func RenameClusterGroup ¶
RenameClusterGroup renames the cluster_group matching the given key parameters. generator: cluster_group Rename
func RenameInstance ¶
RenameInstance renames the instance matching the given key parameters. generator: instance Rename
func RenameInstanceSnapshot ¶
func RenameInstanceSnapshot(ctx context.Context, tx *sql.Tx, project string, instance string, name string, to string) error
RenameInstanceSnapshot renames the instance_snapshot matching the given key parameters. generator: instance_snapshot Rename
func RenameNetworkIntegration ¶
RenameNetworkIntegration renames the network_integration matching the given key parameters. generator: network_integration Rename
func RenameProfile ¶
RenameProfile renames the profile matching the given key parameters. generator: profile Rename
func RenameProject ¶
RenameProject renames the project matching the given key parameters. generator: project Rename
func SchemaDotGo ¶
func SchemaDotGo() error
SchemaDotGo refreshes the schema.go file in this package, using the updates defined here.
func StmtString ¶
StmtString returns the in-memory query string with the given code.
func URLToEntityType ¶
URLToEntityType parses a raw URL string and returns the entity type, the project, the location and the path arguments. The returned project is set to "default" if it is not present (unless the entity type is TypeProject, in which case it is set to the value of the path parameter). An error is returned if the URL is not recognised.
func UpdateCertificate ¶
func UpdateCertificate(ctx context.Context, tx *sql.Tx, fingerprint string, object Certificate) error
UpdateCertificate updates the certificate matching the given key parameters. generator: certificate Update
func UpdateCertificateProjects ¶
func UpdateCertificateProjects(ctx context.Context, tx *sql.Tx, certificateID int, projectNames []string) error
UpdateCertificateProjects updates the certificate_project matching the given key parameters. generator: certificate_project Update
func UpdateClusterGroup ¶
UpdateClusterGroup updates the cluster_group matching the given key parameters. generator: cluster_group Update
func UpdateConfig ¶
func UpdateConfig(ctx context.Context, tx *sql.Tx, parent string, referenceID int, config map[string]string) error
UpdateConfig updates the config matching the given key parameters. generator: config Update
func UpdateDevices ¶
func UpdateDevices(ctx context.Context, tx *sql.Tx, parent string, referenceID int, devices map[string]Device) error
UpdateDevices updates the device matching the given key parameters. generator: device Update
func UpdateInstance ¶
func UpdateInstance(ctx context.Context, tx *sql.Tx, project string, name string, object Instance) error
UpdateInstance updates the instance matching the given key parameters. generator: instance Update
func UpdateInstanceConfig ¶
func UpdateInstanceConfig(ctx context.Context, tx *sql.Tx, instanceID int64, config map[string]string) error
UpdateInstanceConfig updates the instance Config matching the given key parameters. generator: instance Update
func UpdateInstanceDevices ¶
func UpdateInstanceDevices(ctx context.Context, tx *sql.Tx, instanceID int64, devices map[string]Device) error
UpdateInstanceDevices updates the instance Device matching the given key parameters. generator: instance Update
func UpdateInstanceProfiles ¶
func UpdateInstanceProfiles(ctx context.Context, tx *sql.Tx, instanceID int, projectName string, profiles []string) error
UpdateInstanceProfiles updates the profiles of an instance in the order they are given.
func UpdateNetworkIntegration ¶
func UpdateNetworkIntegration(ctx context.Context, tx *sql.Tx, name string, object NetworkIntegration) error
UpdateNetworkIntegration updates the network_integration matching the given key parameters. generator: network_integration Update
func UpdateNetworkIntegrationConfig ¶
func UpdateNetworkIntegrationConfig(ctx context.Context, tx *sql.Tx, networkIntegrationID int64, config map[string]string) error
UpdateNetworkIntegrationConfig updates the network_integration Config matching the given key parameters. generator: network_integration Update
func UpdateProfile ¶
func UpdateProfile(ctx context.Context, tx *sql.Tx, project string, name string, object Profile) error
UpdateProfile updates the profile matching the given key parameters. generator: profile Update
func UpdateProfileConfig ¶
func UpdateProfileConfig(ctx context.Context, tx *sql.Tx, profileID int64, config map[string]string) error
UpdateProfileConfig updates the profile Config matching the given key parameters. generator: profile Update
func UpdateProfileDevices ¶
func UpdateProfileDevices(ctx context.Context, tx *sql.Tx, profileID int64, devices map[string]Device) error
UpdateProfileDevices updates the profile Device matching the given key parameters. generator: profile Update
func UpdateProject ¶
UpdateProject updates the project matching the given key parameters.
Types ¶
type Certificate ¶
type Certificate struct { ID int Fingerprint string `db:"primary=yes"` Type certificate.Type Name string Certificate string Restricted bool Description string }
Certificate is here to pass the certificates content from the database around.
func GetCertificate ¶
GetCertificate returns the certificate with the given key. generator: certificate GetOne
func GetCertificateByFingerprintPrefix ¶
func GetCertificateByFingerprintPrefix(ctx context.Context, tx *sql.Tx, fingerprintPrefix string) (*Certificate, error)
GetCertificateByFingerprintPrefix gets an CertBaseInfo object from the database. The argument fingerprint will be queried with a LIKE query, means you can pass a shortform and will get the full fingerprint. There can never be more than one certificate with a given fingerprint, as it is enforced by a UNIQUE constraint in the schema.
func GetCertificates ¶
func GetCertificates(ctx context.Context, tx *sql.Tx, filters ...CertificateFilter) ([]Certificate, error)
GetCertificates returns all available certificates. generator: certificate GetMany
func (*Certificate) ToAPI ¶
func (cert *Certificate) ToAPI(ctx context.Context, tx *sql.Tx) (*api.Certificate, error)
ToAPI converts the database Certificate struct to an api.Certificate entry filling fields from the database as necessary.
func (*Certificate) ToAPIType ¶
func (cert *Certificate) ToAPIType() string
ToAPIType returns the API equivalent type.
type CertificateFilter ¶
type CertificateFilter struct { ID *int Fingerprint *string Name *string Type *certificate.Type }
CertificateFilter specifies potential query parameter fields.
type CertificateGenerated ¶
type CertificateGenerated interface { // GetCertificates returns all available certificates. // generator: certificate GetMany GetCertificates(ctx context.Context, tx *sql.Tx, filters ...CertificateFilter) ([]Certificate, error) // GetCertificate returns the certificate with the given key. // generator: certificate GetOne GetCertificate(ctx context.Context, tx *sql.Tx, fingerprint string) (*Certificate, error) // GetCertificateID return the ID of the certificate with the given key. // generator: certificate ID GetCertificateID(ctx context.Context, tx *sql.Tx, fingerprint string) (int64, error) // CertificateExists checks if a certificate with the given key exists. // generator: certificate Exists CertificateExists(ctx context.Context, tx *sql.Tx, fingerprint string) (bool, error) // CreateCertificate adds a new certificate to the database. // generator: certificate Create CreateCertificate(ctx context.Context, tx *sql.Tx, object Certificate) (int64, error) // DeleteCertificate deletes the certificate matching the given key parameters. // generator: certificate DeleteOne-by-Fingerprint DeleteCertificate(ctx context.Context, tx *sql.Tx, fingerprint string) error // DeleteCertificates deletes the certificate matching the given key parameters. // generator: certificate DeleteMany-by-Name-and-Type DeleteCertificates(ctx context.Context, tx *sql.Tx, name string, certificateType certificate.Type) error // UpdateCertificate updates the certificate matching the given key parameters. // generator: certificate Update UpdateCertificate(ctx context.Context, tx *sql.Tx, fingerprint string, object Certificate) error }
CertificateGenerated is an interface of generated methods for Certificate.
type CertificateProject ¶
CertificateProject is an association table struct that associates Certificates to Projects.
type CertificateProjectFilter ¶
CertificateProjectFilter specifies potential query parameter fields.
type CertificateProjectGenerated ¶
type CertificateProjectGenerated interface { // GetCertificateProjects returns all available Projects for the Certificate. // generator: certificate_project GetMany GetCertificateProjects(ctx context.Context, tx *sql.Tx, certificateID int) ([]Project, error) // DeleteCertificateProjects deletes the certificate_project matching the given key parameters. // generator: certificate_project DeleteMany DeleteCertificateProjects(ctx context.Context, tx *sql.Tx, certificateID int) error // CreateCertificateProjects adds a new certificate_project to the database. // generator: certificate_project Create CreateCertificateProjects(ctx context.Context, tx *sql.Tx, objects []CertificateProject) error // UpdateCertificateProjects updates the certificate_project matching the given key parameters. // generator: certificate_project Update UpdateCertificateProjects(ctx context.Context, tx *sql.Tx, certificateID int, projectNames []string) error }
CertificateProjectGenerated is an interface of generated methods for CertificateProject.
type ClusterGroup ¶
type ClusterGroup struct { ID int Name string Description string `db:"coalesce=''"` Nodes []string `db:"ignore"` }
ClusterGroup is a value object holding db-related details about a cluster group.
func GetClusterGroup ¶
GetClusterGroup returns the cluster_group with the given key. generator: cluster_group GetOne
func GetClusterGroups ¶
func GetClusterGroups(ctx context.Context, tx *sql.Tx, filters ...ClusterGroupFilter) ([]ClusterGroup, error)
GetClusterGroups returns all available cluster_groups. generator: cluster_group GetMany
func (*ClusterGroup) ToAPI ¶
func (c *ClusterGroup) ToAPI() (*api.ClusterGroup, error)
ToAPI returns an API entry.
type ClusterGroupFilter ¶
ClusterGroupFilter specifies potential query parameter fields.
type ClusterGroupGenerated ¶
type ClusterGroupGenerated interface { // GetClusterGroups returns all available cluster_groups. // generator: cluster_group GetMany GetClusterGroups(ctx context.Context, tx *sql.Tx, filters ...ClusterGroupFilter) ([]ClusterGroup, error) // GetClusterGroup returns the cluster_group with the given key. // generator: cluster_group GetOne GetClusterGroup(ctx context.Context, tx *sql.Tx, name string) (*ClusterGroup, error) // GetClusterGroupID return the ID of the cluster_group with the given key. // generator: cluster_group ID GetClusterGroupID(ctx context.Context, tx *sql.Tx, name string) (int64, error) // ClusterGroupExists checks if a cluster_group with the given key exists. // generator: cluster_group Exists ClusterGroupExists(ctx context.Context, tx *sql.Tx, name string) (bool, error) // RenameClusterGroup renames the cluster_group matching the given key parameters. // generator: cluster_group Rename RenameClusterGroup(ctx context.Context, tx *sql.Tx, name string, to string) error // CreateClusterGroup adds a new cluster_group to the database. // generator: cluster_group Create CreateClusterGroup(ctx context.Context, tx *sql.Tx, object ClusterGroup) (int64, error) // UpdateClusterGroup updates the cluster_group matching the given key parameters. // generator: cluster_group Update UpdateClusterGroup(ctx context.Context, tx *sql.Tx, name string, object ClusterGroup) error // DeleteClusterGroup deletes the cluster_group matching the given key parameters. // generator: cluster_group DeleteOne-by-Name DeleteClusterGroup(ctx context.Context, tx *sql.Tx, name string) error }
ClusterGroupGenerated is an interface of generated methods for ClusterGroup.
type ConfigFilter ¶
ConfigFilter specifies potential query parameter fields.
type ConfigGenerated ¶
type ConfigGenerated interface { // GetConfig returns all available config. // generator: config GetMany GetConfig(ctx context.Context, tx *sql.Tx, parent string, filters ...ConfigFilter) (map[int]map[string]string, error) // CreateConfig adds a new config to the database. // generator: config Create CreateConfig(ctx context.Context, tx *sql.Tx, parent string, object Config) error // UpdateConfig updates the config matching the given key parameters. // generator: config Update UpdateConfig(ctx context.Context, tx *sql.Tx, parent string, referenceID int, config map[string]string) error // DeleteConfig deletes the config matching the given key parameters. // generator: config DeleteMany DeleteConfig(ctx context.Context, tx *sql.Tx, parent string, referenceID int) error }
ConfigGenerated is an interface of generated methods for Config.
type DeviceFilter ¶
type DeviceFilter struct { Name *string Type *DeviceType Config *ConfigFilter }
DeviceFilter specifies potential query parameter fields.
type DeviceGenerated ¶
type DeviceGenerated interface { // GetDevices returns all available devices for the parent entity. // generator: device GetMany GetDevices(ctx context.Context, tx *sql.Tx, parent string, filters ...DeviceFilter) (map[int][]Device, error) // CreateDevices adds a new device to the database. // generator: device Create CreateDevices(ctx context.Context, tx *sql.Tx, parent string, objects map[string]Device) error // UpdateDevices updates the device matching the given key parameters. // generator: device Update UpdateDevices(ctx context.Context, tx *sql.Tx, parent string, referenceID int, devices map[string]Device) error // DeleteDevices deletes the device matching the given key parameters. // generator: device DeleteMany DeleteDevices(ctx context.Context, tx *sql.Tx, parent string, referenceID int) error }
DeviceGenerated is an interface of generated methods for Device.
type DeviceType ¶
type DeviceType int
DeviceType represents the types of supported devices.
func NewDeviceType ¶
func NewDeviceType(t string) (DeviceType, error)
NewDeviceType determines the device type from the given string, if supported.
func (DeviceType) String ¶
func (t DeviceType) String() string
type Image ¶
type Image struct { ID int Project string `db:"primary=yes&join=projects.name"` Fingerprint string `db:"primary=yes"` Type int Filename string Size int64 Public bool Architecture int CreationDate sql.NullTime ExpiryDate sql.NullTime UploadDate time.Time Cached bool LastUseDate sql.NullTime AutoUpdate bool }
Image is a value object holding db-related details about an image.
type ImageFilter ¶
type ImageFilter struct { ID *int Project *string Fingerprint *string Public *bool Cached *bool AutoUpdate *bool }
ImageFilter can be used to filter results yielded by GetImages.
type ImageGenerated ¶
type ImageGenerated interface { // GetImages returns all available images. // generator: image GetMany GetImages(ctx context.Context, tx *sql.Tx, filters ...ImageFilter) ([]Image, error) // GetImage returns the image with the given key. // generator: image GetOne GetImage(ctx context.Context, tx *sql.Tx, project string, fingerprint string) (*Image, error) }
ImageGenerated is an interface of generated methods for Image.
type Instance ¶
type Instance struct { ID int Project string `db:"primary=yes&join=projects.name"` Name string `db:"primary=yes"` Node string `db:"join=nodes.name"` Type instancetype.Type Snapshot bool `db:"ignore"` Architecture int Ephemeral bool CreationDate time.Time Stateful bool LastUseDate sql.NullTime Description string `db:"coalesce=''"` ExpiryDate sql.NullTime }
Instance is a value object holding db-related details about an instance.
func GetInstance ¶
GetInstance returns the instance with the given key. generator: instance GetOne
func GetInstances ¶
GetInstances returns all available instances. generator: instance GetMany
func GetProfileInstances ¶
GetProfileInstances returns all available Instances for the Profile. generator: instance_profile GetMany
type InstanceFilter ¶
type InstanceFilter struct { ID *int Project *string Name *string Node *string Type *instancetype.Type }
InstanceFilter specifies potential query parameter fields.
type InstanceGenerated ¶
type InstanceGenerated interface { // GetInstanceConfig returns all available Instance Config // generator: instance GetMany GetInstanceConfig(ctx context.Context, tx *sql.Tx, instanceID int, filters ...ConfigFilter) (map[string]string, error) // GetInstanceDevices returns all available Instance Devices // generator: instance GetMany GetInstanceDevices(ctx context.Context, tx *sql.Tx, instanceID int, filters ...DeviceFilter) (map[string]Device, error) // GetInstances returns all available instances. // generator: instance GetMany GetInstances(ctx context.Context, tx *sql.Tx, filters ...InstanceFilter) ([]Instance, error) // GetInstance returns the instance with the given key. // generator: instance GetOne GetInstance(ctx context.Context, tx *sql.Tx, project string, name string) (*Instance, error) // GetInstanceID return the ID of the instance with the given key. // generator: instance ID GetInstanceID(ctx context.Context, tx *sql.Tx, project string, name string) (int64, error) // InstanceExists checks if a instance with the given key exists. // generator: instance Exists InstanceExists(ctx context.Context, tx *sql.Tx, project string, name string) (bool, error) // CreateInstanceConfig adds new instance Config to the database. // generator: instance Create CreateInstanceConfig(ctx context.Context, tx *sql.Tx, instanceID int64, config map[string]string) error // CreateInstanceDevices adds new instance Devices to the database. // generator: instance Create CreateInstanceDevices(ctx context.Context, tx *sql.Tx, instanceID int64, devices map[string]Device) error // CreateInstance adds a new instance to the database. // generator: instance Create CreateInstance(ctx context.Context, tx *sql.Tx, object Instance) (int64, error) // RenameInstance renames the instance matching the given key parameters. // generator: instance Rename RenameInstance(ctx context.Context, tx *sql.Tx, project string, name string, to string) error // DeleteInstance deletes the instance matching the given key parameters. // generator: instance DeleteOne-by-Project-and-Name DeleteInstance(ctx context.Context, tx *sql.Tx, project string, name string) error // UpdateInstanceConfig updates the instance Config matching the given key parameters. // generator: instance Update UpdateInstanceConfig(ctx context.Context, tx *sql.Tx, instanceID int64, config map[string]string) error // UpdateInstanceDevices updates the instance Device matching the given key parameters. // generator: instance Update UpdateInstanceDevices(ctx context.Context, tx *sql.Tx, instanceID int64, devices map[string]Device) error // UpdateInstance updates the instance matching the given key parameters. // generator: instance Update UpdateInstance(ctx context.Context, tx *sql.Tx, project string, name string, object Instance) error }
InstanceGenerated is an interface of generated methods for Instance.
type InstanceProfile ¶
type InstanceProfile struct { InstanceID int `db:"primary=yes&order=yes"` ProfileID int ApplyOrder int `db:"order=yes"` }
InstanceProfile is an association table struct that associates Instances to Profiles.
type InstanceProfileFilter ¶
InstanceProfileFilter specifies potential query parameter fields.
type InstanceProfileGenerated ¶
type InstanceProfileGenerated interface { // GetProfileInstances returns all available Instances for the Profile. // generator: instance_profile GetMany GetProfileInstances(ctx context.Context, tx *sql.Tx, profileID int) ([]Instance, error) // GetInstanceProfiles returns all available Profiles for the Instance. // generator: instance_profile GetMany GetInstanceProfiles(ctx context.Context, tx *sql.Tx, instanceID int) ([]Profile, error) // CreateInstanceProfiles adds a new instance_profile to the database. // generator: instance_profile Create CreateInstanceProfiles(ctx context.Context, tx *sql.Tx, objects []InstanceProfile) error // DeleteInstanceProfiles deletes the instance_profile matching the given key parameters. // generator: instance_profile DeleteMany DeleteInstanceProfiles(ctx context.Context, tx *sql.Tx, instanceID int) error }
InstanceProfileGenerated is an interface of generated methods for InstanceProfile.
type InstanceSnapshot ¶
type InstanceSnapshot struct { ID int Project string `db:"primary=yes&join=projects.name&joinon=instances.project_id"` Instance string `db:"primary=yes&join=instances.name"` Name string `db:"primary=yes"` CreationDate time.Time Stateful bool Description string `db:"coalesce=''"` ExpiryDate sql.NullTime }
InstanceSnapshot is a value object holding db-related details about a snapshot.
func GetInstanceSnapshot ¶
func GetInstanceSnapshot(ctx context.Context, tx *sql.Tx, project string, instance string, name string) (*InstanceSnapshot, error)
GetInstanceSnapshot returns the instance_snapshot with the given key. generator: instance_snapshot GetOne
func GetInstanceSnapshots ¶
func GetInstanceSnapshots(ctx context.Context, tx *sql.Tx, filters ...InstanceSnapshotFilter) ([]InstanceSnapshot, error)
GetInstanceSnapshots returns all available instance_snapshots. generator: instance_snapshot GetMany
func (*InstanceSnapshot) ToInstance ¶
func (s *InstanceSnapshot) ToInstance(parentName string, parentNode string, parentType instancetype.Type, parentArch int) Instance
ToInstance converts an instance snapshot to a database Instance, filling in extra fields from the parent instance.
type InstanceSnapshotFilter ¶
InstanceSnapshotFilter specifies potential query parameter fields.
type InstanceSnapshotGenerated ¶
type InstanceSnapshotGenerated interface { // GetInstanceSnapshotConfig returns all available InstanceSnapshot Config // generator: instance_snapshot GetMany GetInstanceSnapshotConfig(ctx context.Context, tx *sql.Tx, instanceSnapshotID int, filters ...ConfigFilter) (map[string]string, error) // GetInstanceSnapshotDevices returns all available InstanceSnapshot Devices // generator: instance_snapshot GetMany GetInstanceSnapshotDevices(ctx context.Context, tx *sql.Tx, instanceSnapshotID int, filters ...DeviceFilter) (map[string]Device, error) // GetInstanceSnapshots returns all available instance_snapshots. // generator: instance_snapshot GetMany GetInstanceSnapshots(ctx context.Context, tx *sql.Tx, filters ...InstanceSnapshotFilter) ([]InstanceSnapshot, error) // GetInstanceSnapshot returns the instance_snapshot with the given key. // generator: instance_snapshot GetOne GetInstanceSnapshot(ctx context.Context, tx *sql.Tx, project string, instance string, name string) (*InstanceSnapshot, error) // GetInstanceSnapshotID return the ID of the instance_snapshot with the given key. // generator: instance_snapshot ID GetInstanceSnapshotID(ctx context.Context, tx *sql.Tx, project string, instance string, name string) (int64, error) // InstanceSnapshotExists checks if a instance_snapshot with the given key exists. // generator: instance_snapshot Exists InstanceSnapshotExists(ctx context.Context, tx *sql.Tx, project string, instance string, name string) (bool, error) // CreateInstanceSnapshotConfig adds new instance_snapshot Config to the database. // generator: instance_snapshot Create CreateInstanceSnapshotConfig(ctx context.Context, tx *sql.Tx, instanceSnapshotID int64, config map[string]string) error // CreateInstanceSnapshotDevices adds new instance_snapshot Devices to the database. // generator: instance_snapshot Create CreateInstanceSnapshotDevices(ctx context.Context, tx *sql.Tx, instanceSnapshotID int64, devices map[string]Device) error // CreateInstanceSnapshot adds a new instance_snapshot to the database. // generator: instance_snapshot Create CreateInstanceSnapshot(ctx context.Context, tx *sql.Tx, object InstanceSnapshot) (int64, error) // RenameInstanceSnapshot renames the instance_snapshot matching the given key parameters. // generator: instance_snapshot Rename RenameInstanceSnapshot(ctx context.Context, tx *sql.Tx, project string, instance string, name string, to string) error // DeleteInstanceSnapshot deletes the instance_snapshot matching the given key parameters. // generator: instance_snapshot DeleteOne-by-Project-and-Instance-and-Name DeleteInstanceSnapshot(ctx context.Context, tx *sql.Tx, project string, instance string, name string) error }
InstanceSnapshotGenerated is an interface of generated methods for InstanceSnapshot.
type NetworkIntegration ¶
NetworkIntegration is a value object holding db-related details about a network integration.
func GetNetworkIntegration ¶
func GetNetworkIntegration(ctx context.Context, tx *sql.Tx, name string) (*NetworkIntegration, error)
GetNetworkIntegration returns the network_integration with the given key. generator: network_integration GetOne
func GetNetworkIntegrations ¶
func GetNetworkIntegrations(ctx context.Context, tx *sql.Tx, filters ...NetworkIntegrationFilter) ([]NetworkIntegration, error)
GetNetworkIntegrations returns all available network_integrations. generator: network_integration GetMany
func (*NetworkIntegration) ToAPI ¶
func (n *NetworkIntegration) ToAPI(ctx context.Context, tx *sql.Tx) (*api.NetworkIntegration, error)
ToAPI converts the DB records to an API record.
type NetworkIntegrationFilter ¶
NetworkIntegrationFilter specifies potential query parameter fields.
type NetworkIntegrationGenerated ¶
type NetworkIntegrationGenerated interface { // GetNetworkIntegrationConfig returns all available NetworkIntegration Config // generator: network_integration GetMany GetNetworkIntegrationConfig(ctx context.Context, tx *sql.Tx, networkIntegrationID int, filters ...ConfigFilter) (map[string]string, error) // GetNetworkIntegrations returns all available network_integrations. // generator: network_integration GetMany GetNetworkIntegrations(ctx context.Context, tx *sql.Tx, filters ...NetworkIntegrationFilter) ([]NetworkIntegration, error) // GetNetworkIntegration returns the network_integration with the given key. // generator: network_integration GetOne GetNetworkIntegration(ctx context.Context, tx *sql.Tx, name string) (*NetworkIntegration, error) // NetworkIntegrationExists checks if a network_integration with the given key exists. // generator: network_integration Exists NetworkIntegrationExists(ctx context.Context, tx *sql.Tx, name string) (bool, error) // CreateNetworkIntegrationConfig adds new network_integration Config to the database. // generator: network_integration Create CreateNetworkIntegrationConfig(ctx context.Context, tx *sql.Tx, networkIntegrationID int64, config map[string]string) error // CreateNetworkIntegration adds a new network_integration to the database. // generator: network_integration Create CreateNetworkIntegration(ctx context.Context, tx *sql.Tx, object NetworkIntegration) (int64, error) // GetNetworkIntegrationID return the ID of the network_integration with the given key. // generator: network_integration ID GetNetworkIntegrationID(ctx context.Context, tx *sql.Tx, name string) (int64, error) // RenameNetworkIntegration renames the network_integration matching the given key parameters. // generator: network_integration Rename RenameNetworkIntegration(ctx context.Context, tx *sql.Tx, name string, to string) error // DeleteNetworkIntegration deletes the network_integration matching the given key parameters. // generator: network_integration DeleteOne-by-Name DeleteNetworkIntegration(ctx context.Context, tx *sql.Tx, name string) error // UpdateNetworkIntegrationConfig updates the network_integration Config matching the given key parameters. // generator: network_integration Update UpdateNetworkIntegrationConfig(ctx context.Context, tx *sql.Tx, networkIntegrationID int64, config map[string]string) error // UpdateNetworkIntegration updates the network_integration matching the given key parameters. // generator: network_integration Update UpdateNetworkIntegration(ctx context.Context, tx *sql.Tx, name string, object NetworkIntegration) error }
NetworkIntegrationGenerated is an interface of generated methods for NetworkIntegration.
type NodeClusterGroup ¶
type NodeClusterGroup struct { GroupID int `db:"primary=yes"` Node string `db:"join=nodes.name"` NodeID int `db:"omit=create,objects,objects-by-GroupID"` }
NodeClusterGroup associates a node to a cluster group.
func GetNodeClusterGroups ¶
func GetNodeClusterGroups(ctx context.Context, tx *sql.Tx, filters ...NodeClusterGroupFilter) ([]NodeClusterGroup, error)
GetNodeClusterGroups returns all available node_cluster_groups. generator: node_cluster_group GetMany
type NodeClusterGroupFilter ¶
type NodeClusterGroupFilter struct {
GroupID *int
}
NodeClusterGroupFilter specifies potential query parameter fields.
type NodeFilter ¶
type NodeFilter struct {
Name *string
}
NodeFilter specifies potential query parameter fields.
type NodeGenerated ¶
type NodeGenerated interface { // GetNodeID return the ID of the node with the given key. // generator: node ID GetNodeID(ctx context.Context, tx *sql.Tx, name string) (int64, error) }
NodeGenerated is an interface of generated methods for Node.
type Operation ¶
type Operation struct { ID int64 `db:"primary=yes"` // Stable database identifier UUID string `db:"primary=yes"` // User-visible identifier NodeAddress string `db:"join=nodes.address&omit=create-or-replace"` // Address of the node the operation is running on ProjectID *int64 // ID of the project for the operation. NodeID int64 // ID of the node the operation is running on Type operationtype.Type // Type of the operation }
Operation holds information about a single operation running on a member in the cluster.
func GetOperations ¶
func GetOperations(ctx context.Context, tx *sql.Tx, filters ...OperationFilter) ([]Operation, error)
GetOperations returns all available operations. generator: operation GetMany
type OperationFilter ¶
OperationFilter specifies potential query parameter fields.
type OperationGenerated ¶
type OperationGenerated interface { // GetOperations returns all available operations. // generator: operation GetMany GetOperations(ctx context.Context, tx *sql.Tx, filters ...OperationFilter) ([]Operation, error) // CreateOrReplaceOperation adds a new operation to the database. // generator: operation CreateOrReplace CreateOrReplaceOperation(ctx context.Context, tx *sql.Tx, object Operation) (int64, error) // DeleteOperation deletes the operation matching the given key parameters. // generator: operation DeleteOne-by-UUID DeleteOperation(ctx context.Context, tx *sql.Tx, uuid string) error // DeleteOperations deletes the operation matching the given key parameters. // generator: operation DeleteMany-by-NodeID DeleteOperations(ctx context.Context, tx *sql.Tx, nodeID int64) error }
OperationGenerated is an interface of generated methods for Operation.
type Profile ¶
type Profile struct { ID int ProjectID int `db:"omit=create,update"` Project string `db:"primary=yes&join=projects.name"` Name string `db:"primary=yes"` Description string `db:"coalesce=''"` }
Profile is a value object holding db-related details about a profile.
func GetInstanceProfiles ¶
GetInstanceProfiles returns all available Profiles for the Instance. generator: instance_profile GetMany
func GetProfile ¶
GetProfile returns the profile with the given key. generator: profile GetOne
func GetProfiles ¶
GetProfiles returns all available profiles. generator: profile GetMany
type ProfileFilter ¶
ProfileFilter specifies potential query parameter fields.
type ProfileGenerated ¶
type ProfileGenerated interface { // GetProfileID return the ID of the profile with the given key. // generator: profile ID GetProfileID(ctx context.Context, tx *sql.Tx, project string, name string) (int64, error) // ProfileExists checks if a profile with the given key exists. // generator: profile Exists ProfileExists(ctx context.Context, tx *sql.Tx, project string, name string) (bool, error) // GetProfileConfig returns all available Profile Config // generator: profile GetMany GetProfileConfig(ctx context.Context, tx *sql.Tx, profileID int, filters ...ConfigFilter) (map[string]string, error) // GetProfileDevices returns all available Profile Devices // generator: profile GetMany GetProfileDevices(ctx context.Context, tx *sql.Tx, profileID int, filters ...DeviceFilter) (map[string]Device, error) // GetProfiles returns all available profiles. // generator: profile GetMany GetProfiles(ctx context.Context, tx *sql.Tx, filters ...ProfileFilter) ([]Profile, error) // GetProfile returns the profile with the given key. // generator: profile GetOne GetProfile(ctx context.Context, tx *sql.Tx, project string, name string) (*Profile, error) // CreateProfileConfig adds new profile Config to the database. // generator: profile Create CreateProfileConfig(ctx context.Context, tx *sql.Tx, profileID int64, config map[string]string) error // CreateProfileDevices adds new profile Devices to the database. // generator: profile Create CreateProfileDevices(ctx context.Context, tx *sql.Tx, profileID int64, devices map[string]Device) error // CreateProfile adds a new profile to the database. // generator: profile Create CreateProfile(ctx context.Context, tx *sql.Tx, object Profile) (int64, error) // RenameProfile renames the profile matching the given key parameters. // generator: profile Rename RenameProfile(ctx context.Context, tx *sql.Tx, project string, name string, to string) error // UpdateProfileConfig updates the profile Config matching the given key parameters. // generator: profile Update UpdateProfileConfig(ctx context.Context, tx *sql.Tx, profileID int64, config map[string]string) error // UpdateProfileDevices updates the profile Device matching the given key parameters. // generator: profile Update UpdateProfileDevices(ctx context.Context, tx *sql.Tx, profileID int64, devices map[string]Device) error // UpdateProfile updates the profile matching the given key parameters. // generator: profile Update UpdateProfile(ctx context.Context, tx *sql.Tx, project string, name string, object Profile) error // DeleteProfile deletes the profile matching the given key parameters. // generator: profile DeleteOne-by-Project-and-Name DeleteProfile(ctx context.Context, tx *sql.Tx, project string, name string) error }
ProfileGenerated is an interface of generated methods for Profile.
type Project ¶
Project represents a project.
func GetCertificateProjects ¶
GetCertificateProjects returns all available Projects for the Certificate. generator: certificate_project GetMany
func GetProject ¶
GetProject returns the project with the given key. generator: project GetOne
func GetProjects ¶
GetProjects returns all available projects. generator: project GetMany
type ProjectFeature ¶
type ProjectFeature struct { // DefaultEnabled // Whether the feature should be enabled by default on new projects. DefaultEnabled bool // CanEnableNonEmpty // Whether or not the feature can be changed to enabled on a non-empty project. CanEnableNonEmpty bool }
ProjectFeature indicates the behaviour of a project feature.
type ProjectFilter ¶
type ProjectFilter struct { ID *int Name *string `db:"omit=update"` // If non-empty, return only the project with this name. }
ProjectFilter specifies potential query parameter fields.
type ProjectGenerated ¶
type ProjectGenerated interface { // GetProjectConfig returns all available Project Config // generator: project GetMany GetProjectConfig(ctx context.Context, tx *sql.Tx, projectID int, filters ...ConfigFilter) (map[string]string, error) // GetProjects returns all available projects. // generator: project GetMany GetProjects(ctx context.Context, tx *sql.Tx, filters ...ProjectFilter) ([]Project, error) // GetProject returns the project with the given key. // generator: project GetOne GetProject(ctx context.Context, tx *sql.Tx, name string) (*Project, error) // ProjectExists checks if a project with the given key exists. // generator: project Exists ProjectExists(ctx context.Context, tx *sql.Tx, name string) (bool, error) // CreateProjectConfig adds new project Config to the database. // generator: project Create CreateProjectConfig(ctx context.Context, tx *sql.Tx, projectID int64, config map[string]string) error // CreateProject adds a new project to the database. // generator: project Create CreateProject(ctx context.Context, tx *sql.Tx, object Project) (int64, error) // GetProjectID return the ID of the project with the given key. // generator: project ID GetProjectID(ctx context.Context, tx *sql.Tx, name string) (int64, error) // RenameProject renames the project matching the given key parameters. // generator: project Rename RenameProject(ctx context.Context, tx *sql.Tx, name string, to string) error // DeleteProject deletes the project matching the given key parameters. // generator: project DeleteOne-by-Name DeleteProject(ctx context.Context, tx *sql.Tx, name string) error }
ProjectGenerated is an interface of generated methods for Project.
type Warning ¶
type Warning struct { ID int Node string `db:"coalesce=''&leftjoin=nodes.name"` Project string `db:"coalesce=''&leftjoin=projects.name"` EntityTypeCode int `db:"coalesce=-1"` EntityID int `db:"coalesce=-1"` UUID string `db:"primary=yes"` TypeCode warningtype.Type Status warningtype.Status FirstSeenDate time.Time LastSeenDate time.Time UpdatedDate time.Time LastMessage string Count int }
Warning is a value object holding db-related details about a warning.
func GetWarning ¶
GetWarning returns the warning with the given key. generator: warning GetOne-by-UUID
func GetWarnings ¶
GetWarnings returns all available warnings. generator: warning GetMany
type WarningFilter ¶
type WarningFilter struct { ID *int UUID *string Project *string Node *string TypeCode *warningtype.Type EntityTypeCode *int EntityID *int Status *warningtype.Status }
WarningFilter specifies potential query parameter fields.
type WarningGenerated ¶
type WarningGenerated interface { // GetWarnings returns all available warnings. // generator: warning GetMany GetWarnings(ctx context.Context, tx *sql.Tx, filters ...WarningFilter) ([]Warning, error) // GetWarning returns the warning with the given key. // generator: warning GetOne-by-UUID GetWarning(ctx context.Context, tx *sql.Tx, uuid string) (*Warning, error) // DeleteWarning deletes the warning matching the given key parameters. // generator: warning DeleteOne-by-UUID DeleteWarning(ctx context.Context, tx *sql.Tx, uuid string) error // DeleteWarnings deletes the warning matching the given key parameters. // generator: warning DeleteMany-by-EntityTypeCode-and-EntityID DeleteWarnings(ctx context.Context, tx *sql.Tx, entityTypeCode int, entityID int) error // GetWarningID return the ID of the warning with the given key. // generator: warning ID GetWarningID(ctx context.Context, tx *sql.Tx, uuid string) (int64, error) // WarningExists checks if a warning with the given key exists. // generator: warning Exists WarningExists(ctx context.Context, tx *sql.Tx, uuid string) (bool, error) }
WarningGenerated is an interface of generated methods for Warning.
Source Files ¶
- certificate_projects.go
- certificate_projects.interface.mapper.go
- certificate_projects.mapper.go
- certificates.go
- certificates.interface.mapper.go
- certificates.mapper.go
- cluster_groups.go
- cluster_groups.interface.mapper.go
- cluster_groups.mapper.go
- config.go
- config.interface.mapper.go
- config.mapper.go
- devices.go
- devices.interface.mapper.go
- devices.mapper.go
- entities.go
- images.go
- images.interface.mapper.go
- images.mapper.go
- instance_profiles.go
- instance_profiles.interface.mapper.go
- instance_profiles.mapper.go
- instances.go
- instances.interface.mapper.go
- instances.mapper.go
- networks_integrations.go
- networks_integrations.interface.mapper.go
- networks_integrations.mapper.go
- nodes.go
- nodes.interface.mapper.go
- nodes.mapper.go
- nodes_cluster_groups.go
- nodes_cluster_groups.interface.mapper.go
- nodes_cluster_groups.mapper.go
- open.go
- operations.go
- operations.interface.mapper.go
- operations.mapper.go
- profiles.go
- profiles.interface.mapper.go
- profiles.mapper.go
- projects.go
- projects.interface.mapper.go
- projects.mapper.go
- query.go
- schema.go
- snapshots.go
- snapshots.interface.mapper.go
- snapshots.mapper.go
- stmt.go
- update.go
- warnings.go
- warnings.interface.mapper.go
- warnings.mapper.go