database

package
v0.0.0-...-278bb9c Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2022 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Overview

Package database defines the interface to interact with the database.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Store

type Store interface {

	// GetMachineByMac retrieves a machine based on its mac address.
	GetMachineByMac(mac util.MacAddress) (*machine.MachineModel, error)
	GetMachineImageByMac(mac util.MacAddress) (*images.MachineImageModel, error)

	// GetMachines returns a list of all machines in the database
	GetMachines() ([]machine.MachineModel, error)
	CreateMachine(machine *machine.MachineModel) error

	// UpdateMachine changes the value of a machine based.
	// The mac address is used as key.
	UpdateMachine(machine *machine.MachineModel) error
	AddBootSetupToMachine(bootSetup *images.BootSetup) error
	GetNextBootSetup(machineMAC string) (*images.BootSetup, error)
	DeleteMachine(machine *machine.MachineModel) error

	GetUserByUsername(name string) (*user.UserModel, error)
	GetUserByID(id uint) (*user.UserModel, error)
	GetUsers() ([]user.UserModel, error)
	CreateUser(user *user.UserModel) error
	RemoveUser(user *user.UserModel) error
	ModifyUser(user *user.UserModel) error

	GetImageByUUID(uuid images.ImageUUID) (*images.ImageModel, error)
	GetImagesByUsername(username string) ([]images.ImageModel, error)
	GetImagesByNameAndUsername(name string, username string) ([]images.ImageModel, error)
	CreateImage(image *images.ImageModel)
	DeleteImage(image *images.ImageModel) error
	UpdateImage(image *images.ImageModel) error
	CreateNewImageVersion(version images.Version)
	GetVersionByID(versionID uint64) (*images.Version, error)

	// You could use weird Go polymorphisms here, but I guess I will just copy and paste code
	CreateMachineImage(image *images.MachineImageModel)
	CreateImageSetup(username string, image *images.ImageSetup) error
	AddImageToImageSetup(setup *images.ImageSetup, image *images.ImageModel, version images.Version, update bool)
	FindImageSetupsByUsername(username string) (*[]images.ImageSetup, error)
	GetImageSetup(imageSetup string) (images.ImageSetup, error)
	GetImageSetups(username string) (*[]images.ImageSetup, error)
	GetMachineImageByUUID(uuid images.ImageUUID) (*images.MachineImageModel, error)

	ModifyImageSetup(imageSetup *images.ImageSetup) error
	DeleteImageSetup(imageSetup *images.ImageSetup) error
	RemoveImageFromImageSetup(setup *images.ImageSetup, image *images.ImageModel, version images.Version, update bool) error
}

Store defines the functions which should be exported by any concrete database implementation

Directories

Path Synopsis
Package sqlite defines an implementation for the store as an SQLite database
Package sqlite defines an implementation for the store as an SQLite database

Jump to

Keyboard shortcuts

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