Documentation
¶
Index ¶
- Constants
- Variables
- func GetOsAndSemver(id string) (string, *semver.Version, error)
- func MustRegisterMigration(m Migration)
- type IPSearchQuery
- type IntegerPool
- type IntegerPoolType
- type MachineSearchQuery
- type MigrateFunc
- type Migration
- type MigrationVersionEntry
- type Migrations
- type NetworkSearchQuery
- type RethinkStore
- func (rs *RethinkStore) Close() error
- func (rs *RethinkStore) Connect() error
- func (rs *RethinkStore) CreateIP(ip *metal.IP) error
- func (rs *RethinkStore) CreateImage(i *metal.Image) error
- func (rs *RethinkStore) CreateMachine(m *metal.Machine) error
- func (rs *RethinkStore) CreateNetwork(nw *metal.Network) error
- func (rs *RethinkStore) CreatePartition(p *metal.Partition) error
- func (rs *RethinkStore) CreateProvisioningEventContainer(ec *metal.ProvisioningEventContainer) error
- func (rs *RethinkStore) CreateSize(size *metal.Size) error
- func (rs *RethinkStore) CreateSwitch(s *metal.Switch) error
- func (rs *RethinkStore) DeleteIP(ip *metal.IP) error
- func (rs *RethinkStore) DeleteImage(i *metal.Image) error
- func (rs *RethinkStore) DeleteMachine(m *metal.Machine) error
- func (rs *RethinkStore) DeleteNetwork(nw *metal.Network) error
- func (rs *RethinkStore) DeleteOrphanImages(images metal.Images, machines metal.Machines) (metal.Images, error)
- func (rs *RethinkStore) DeletePartition(p *metal.Partition) error
- func (rs *RethinkStore) DeleteSize(size *metal.Size) error
- func (rs *RethinkStore) DeleteSwitch(s *metal.Switch) error
- func (rs *RethinkStore) Demote() error
- func (rs *RethinkStore) FindIPByID(id string) (*metal.IP, error)
- func (rs *RethinkStore) FindImage(id string) (*metal.Image, error)
- func (rs *RethinkStore) FindMachine(q *MachineSearchQuery, ms *metal.Machine) error
- func (rs *RethinkStore) FindMachineByID(id string) (*metal.Machine, error)
- func (rs *RethinkStore) FindNetwork(q *NetworkSearchQuery, n *metal.Network) error
- func (rs *RethinkStore) FindNetworkByID(id string) (*metal.Network, error)
- func (rs *RethinkStore) FindPartition(id string) (*metal.Partition, error)
- func (rs *RethinkStore) FindProvisioningEventContainer(id string) (*metal.ProvisioningEventContainer, error)
- func (rs *RethinkStore) FindSize(id string) (*metal.Size, error)
- func (rs *RethinkStore) FindSwitch(id string) (*metal.Switch, error)
- func (rs *RethinkStore) FindWaitingMachine(partitionid, sizeid string) (*metal.Machine, error)
- func (rs *RethinkStore) FromHardware(hw metal.MachineHardware) (*metal.Size, []*metal.SizeMatchingLog, error)
- func (rs *RethinkStore) GetImage(id string) (*metal.Image, error)
- func (rs *RethinkStore) GetIntegerPool(pool IntegerPoolType) (*IntegerPool, error)
- func (rs *RethinkStore) Health() error
- func (rs *RethinkStore) Initialize() error
- func (rs *RethinkStore) ListIPs() (metal.IPs, error)
- func (rs *RethinkStore) ListImages() (metal.Images, error)
- func (rs *RethinkStore) ListMachines() (metal.Machines, error)
- func (rs *RethinkStore) ListNetworks() (metal.Networks, error)
- func (rs *RethinkStore) ListPartitions() (metal.Partitions, error)
- func (rs *RethinkStore) ListProvisioningEventContainers() (metal.ProvisioningEventContainers, error)
- func (rs *RethinkStore) ListSizes() (metal.Sizes, error)
- func (rs *RethinkStore) ListSwitches() ([]metal.Switch, error)
- func (rs *RethinkStore) Migrate(targetVersion *int, dry bool) error
- func (rs *RethinkStore) Mock() *r.Mock
- func (rs *RethinkStore) SearchIPs(q *IPSearchQuery, ips *metal.IPs) error
- func (rs *RethinkStore) SearchMachines(q *MachineSearchQuery, ms *metal.Machines) error
- func (rs *RethinkStore) SearchNetworks(q *NetworkSearchQuery, ns *metal.Networks) error
- func (rs *RethinkStore) SearchSwitches(rackid string, macs []string) ([]metal.Switch, error)
- func (rs *RethinkStore) SearchSwitchesConnectedToMachine(m *metal.Machine) ([]metal.Switch, error)
- func (rs *RethinkStore) UpdateIP(oldIP *metal.IP, newIP *metal.IP) error
- func (rs *RethinkStore) UpdateImage(oldImage *metal.Image, newImage *metal.Image) error
- func (rs *RethinkStore) UpdateMachine(oldMachine *metal.Machine, newMachine *metal.Machine) error
- func (rs *RethinkStore) UpdateNetwork(oldNetwork *metal.Network, newNetwork *metal.Network) error
- func (rs *RethinkStore) UpdatePartition(oldPartition *metal.Partition, newPartition *metal.Partition) error
- func (rs *RethinkStore) UpdateProvisioningEventContainer(old *metal.ProvisioningEventContainer, new *metal.ProvisioningEventContainer) error
- func (rs *RethinkStore) UpdateSize(oldSize *metal.Size, newSize *metal.Size) error
- func (rs *RethinkStore) UpdateSwitch(oldSwitch *metal.Switch, newSwitch *metal.Switch) error
- func (rs *RethinkStore) UpsertProvisioningEventContainer(ec *metal.ProvisioningEventContainer) error
Constants ¶
const (
DemotedUser = "metal"
)
Variables ¶
var ( // VRFPoolRangeMin the minimum integer to get from the vrf pool VRFPoolRangeMin = uint(1) // VRFPoolRangeMax the maximum integer to get from the vrf pool VRFPoolRangeMax = uint(131072) // ASNPoolRangeMin the minimum integer to get from the asn pool ASNPoolRangeMin = uint(1) // ASNPoolRangeMax the maximum integer to get from the asn pool ASNPoolRangeMax = uint(131072) )
Functions ¶
func GetOsAndSemver ¶ added in v0.7.0
GetOsAndSemver parses a imageID to OS and Semver, or returns an error the last part must be the semantic version, valid ids are: ubuntu-19.04 os: ubuntu version: 19.04 ubuntu-19.04.20200408 os: ubuntu version: 19.04.20200408 ubuntu-small-19.04.20200408 os: ubuntu-small version: 19.04.20200408
func MustRegisterMigration ¶ added in v0.12.0
func MustRegisterMigration(m Migration)
MustRegisterMigration registers a migration and panics when a problem occurs
Types ¶
type IPSearchQuery ¶
type IPSearchQuery struct {
IPAddress *string `` /* 151-byte string literal not displayed */
ParentPrefixCidr *string `json:"networkprefix" description:"the prefix of the network this ip address belongs to" optional:"true"`
NetworkID *string `json:"networkid" description:"the network this ip allocate request address belongs to" optional:"true"`
Tags []string `json:"tags" description:"the tags that are assigned to this ip address" optional:"true"`
ProjectID *string `json:"projectid" description:"the project this ip address belongs to, empty if not strong coupled" optional:"true"`
Type *string `json:"type" description:"the type of the ip address, ephemeral or static" optional:"true"`
MachineID *string `json:"machineid" description:"the machine an ip address is associated to" optional:"true"`
}
IPSearchQuery can be used to search networks.
type IntegerPool ¶ added in v0.9.3
type IntegerPool struct {
// contains filtered or unexported fields
}
IntegerPool manages unique integers
func (*IntegerPool) AcquireRandomUniqueInteger ¶ added in v0.9.3
func (ip *IntegerPool) AcquireRandomUniqueInteger() (uint, error)
AcquireRandomUniqueInteger returns a random unique integer from the pool.
func (*IntegerPool) AcquireUniqueInteger ¶ added in v0.9.3
func (ip *IntegerPool) AcquireUniqueInteger(value uint) (uint, error)
AcquireUniqueInteger returns a unique integer from the pool.
func (*IntegerPool) ReleaseUniqueInteger ¶ added in v0.9.3
func (ip *IntegerPool) ReleaseUniqueInteger(id uint) error
ReleaseUniqueInteger returns a unique integer to the pool.
func (*IntegerPool) RenewSession ¶ added in v0.12.0
func (ip *IntegerPool) RenewSession(term *r.Term, session r.QueryExecutor)
type IntegerPoolType ¶ added in v0.9.3
type IntegerPoolType string
IntegerPoolType defines the name of the IntegerPool
const ( // VRFIntegerPool defines the name of the pool for VRFs // this also defines the name of the tables // FIXME, must be renamed to vrfpool later VRFIntegerPool IntegerPoolType = "integerpool" // ASNIntegerPool defines the name of the pool for ASNs ASNIntegerPool IntegerPoolType = "asnpool" )
func (IntegerPoolType) String ¶ added in v0.9.3
func (p IntegerPoolType) String() string
type MachineSearchQuery ¶
type MachineSearchQuery struct {
ID *string `json:"id" optional:"true"`
Name *string `json:"name" optional:"true"`
PartitionID *string `json:"partition_id" optional:"true"`
SizeID *string `json:"sizeid" optional:"true"`
RackID *string `json:"rackid" optional:"true"`
Tags []string `json:"tags" optional:"true"`
// allocation
AllocationName *string `json:"allocation_name" optional:"true"`
AllocationProject *string `json:"allocation_project" optional:"true"`
AllocationImageID *string `json:"allocation_image_id" optional:"true"`
AllocationHostname *string `json:"allocation_hostname" optional:"true"`
AllocationSucceeded *bool `json:"allocation_succeeded" optional:"true"`
// network
NetworkIDs []string `json:"network_ids" optional:"true"`
NetworkPrefixes []string `json:"network_prefixes" optional:"true"`
NetworkIPs []string `json:"network_ips" optional:"true"`
NetworkDestinationPrefixes []string `json:"network_destination_prefixes" optional:"true"`
NetworkVrfs []int64 `json:"network_vrfs" optional:"true"`
NetworkPrivate *bool `json:"network_private" optional:"true"`
NetworkASNs []int64 `json:"network_asns" optional:"true"`
NetworkNat *bool `json:"network_nat" optional:"true"`
NetworkUnderlay *bool `json:"network_underlay" optional:"true"`
// hardware
HardwareMemory *int64 `json:"hardware_memory" optional:"true"`
HardwareCPUCores *int64 `json:"hardware_cpu_cores" optional:"true"`
// nics
NicsMacAddresses []string `json:"nics_mac_addresses" optional:"true"`
NicsNames []string `json:"nics_names" optional:"true"`
NicsVrfs []string `json:"nics_vrfs" optional:"true"`
NicsNeighborMacAddresses []string `json:"nics_neighbor_mac_addresses" optional:"true"`
NicsNeighborNames []string `json:"nics_neighbor_names" optional:"true"`
NicsNeighborVrfs []string `json:"nics_neighbor_vrfs" optional:"true"`
// disks
DiskNames []string `json:"disk_names" optional:"true"`
DiskSizes []int64 `json:"disk_sizes" optional:"true"`
// state
StateValue *string `json:"state_value" optional:"true"`
// ipmi
IpmiAddress *string `json:"ipmi_address" optional:"true"`
IpmiMacAddress *string `json:"ipmi_mac_address" optional:"true"`
IpmiUser *string `json:"ipmi_user" optional:"true"`
IpmiInterface *string `json:"ipmi_interface" optional:"true"`
// fru
FruChassisPartNumber *string `json:"fru_chassis_part_number" optional:"true"`
FruChassisPartSerial *string `json:"fru_chassis_part_serial" optional:"true"`
FruBoardMfg *string `json:"fru_board_mfg" optional:"true"`
FruBoardMfgSerial *string `json:"fru_board_mfg_serial" optional:"true"`
FruBoardPartNumber *string `json:"fru_board_part_number" optional:"true"`
FruProductManufacturer *string `json:"fru_product_manufacturer" optional:"true"`
FruProductPartNumber *string `json:"fru_product_part_number" optional:"true"`
FruProductSerial *string `json:"fru_product_serial" optional:"true"`
}
MachineSearchQuery can be used to search machines.
type MigrateFunc ¶ added in v0.12.0
type MigrateFunc func(db *r.Term, session r.QueryExecutor, rs *RethinkStore) error
MigrateFunc is a function that contains database migration logic
type Migration ¶ added in v0.12.0
type Migration struct {
Name string
Version int
Up MigrateFunc
}
Migration defines a database migration
type MigrationVersionEntry ¶ added in v0.12.0
MigrationVersionEntry is a version entry in the migration database
type Migrations ¶ added in v0.12.0
type Migrations []Migration
Migrations is a list of migrations
func (Migrations) Between ¶ added in v0.12.0
func (ms Migrations) Between(current int, target *int) (Migrations, error)
Between returns a sorted slice of migrations that are between the given current version and target version (target version contained). If target version is nil all newer versions than current are contained in the slice.
type NetworkSearchQuery ¶
type NetworkSearchQuery struct {
ID *string `json:"id" optional:"true"`
Name *string `json:"name" optional:"true"`
PartitionID *string `json:"partitionid" optional:"true"`
ProjectID *string `json:"projectid" optional:"true"`
Prefixes []string `json:"prefixes" optional:"true"`
DestinationPrefixes []string `json:"destinationprefixes" optional:"true"`
Nat *bool `json:"nat" optional:"true"`
PrivateSuper *bool `json:"privatesuper" optional:"true"`
Underlay *bool `json:"underlay" optional:"true"`
Vrf *int64 `json:"vrf" optional:"true"`
ParentNetworkID *string `json:"parentnetworkid" optional:"true"`
Labels map[string]string `json:"labels" optional:"true"`
}
NetworkSearchQuery can be used to search networks.
type RethinkStore ¶
type RethinkStore struct {
*zap.SugaredLogger
// contains filtered or unexported fields
}
A RethinkStore is the database access layer for rethinkdb.
func InitMockDB ¶
func InitMockDB() (*RethinkStore, *r.Mock)
InitMockDB ...
Description: This Function initializes the Mocked rethink DB. It is recommended to execute metal.InitMockDBData() to fill it with mocks
Return Values: - RethinkStore // The Database - Mock // The Mock endpoint (Used for mocks)
func InitTestDB ¶
func InitTestDB(t *testing.T) (*RethinkStore, testcontainers.Container, context.Context)
InitTestDB create a docker container whith rethinkdb for real integration tests.
func (*RethinkStore) Close ¶
func (rs *RethinkStore) Close() error
Close closes the database session.
func (*RethinkStore) Connect ¶
func (rs *RethinkStore) Connect() error
Connect connects to the database. If there is an error, it will run until there is a connection.
func (*RethinkStore) CreateIP ¶
func (rs *RethinkStore) CreateIP(ip *metal.IP) error
CreateIP creates a new ip.
func (*RethinkStore) CreateImage ¶
func (rs *RethinkStore) CreateImage(i *metal.Image) error
CreateImage creates a new image.
func (*RethinkStore) CreateMachine ¶
func (rs *RethinkStore) CreateMachine(m *metal.Machine) error
CreateMachine creates a new machine in the database as "unallocated new machines". If the given machine has an allocation, the function returns an error because allocated machines cannot be created. If there is already a machine with the given ID in the database it will be replaced the the given machine. CreateNetwork creates a new network.
func (*RethinkStore) CreateNetwork ¶
func (rs *RethinkStore) CreateNetwork(nw *metal.Network) error
CreateNetwork creates a new network.
func (*RethinkStore) CreatePartition ¶
func (rs *RethinkStore) CreatePartition(p *metal.Partition) error
CreatePartition creates a new partition.
func (*RethinkStore) CreateProvisioningEventContainer ¶
func (rs *RethinkStore) CreateProvisioningEventContainer(ec *metal.ProvisioningEventContainer) error
CreateProvisioningEventContainer creates a new provisioning event container.
func (*RethinkStore) CreateSize ¶
func (rs *RethinkStore) CreateSize(size *metal.Size) error
CreateSize creates a new size.
func (*RethinkStore) CreateSwitch ¶
func (rs *RethinkStore) CreateSwitch(s *metal.Switch) error
CreateSwitch creates a new switch.
func (*RethinkStore) DeleteIP ¶
func (rs *RethinkStore) DeleteIP(ip *metal.IP) error
DeleteIP deletes an ip.
func (*RethinkStore) DeleteImage ¶
func (rs *RethinkStore) DeleteImage(i *metal.Image) error
DeleteImage deletes an image.
func (*RethinkStore) DeleteMachine ¶
func (rs *RethinkStore) DeleteMachine(m *metal.Machine) error
DeleteMachine removes a machine from the database.
func (*RethinkStore) DeleteNetwork ¶
func (rs *RethinkStore) DeleteNetwork(nw *metal.Network) error
DeleteNetwork deletes an network.
func (*RethinkStore) DeleteOrphanImages ¶ added in v0.7.0
func (rs *RethinkStore) DeleteOrphanImages(images metal.Images, machines metal.Machines) (metal.Images, error)
DeleteOrphanImages deletes Images which are no longer allocated by a machine and older than allowed. Always at least one image per OS is kept even if no longer valid and not allocated. This ensures to have always at least a usable image left.
func (*RethinkStore) DeletePartition ¶
func (rs *RethinkStore) DeletePartition(p *metal.Partition) error
DeletePartition delets a partition.
func (*RethinkStore) DeleteSize ¶
func (rs *RethinkStore) DeleteSize(size *metal.Size) error
DeleteSize deletes a size.
func (*RethinkStore) DeleteSwitch ¶
func (rs *RethinkStore) DeleteSwitch(s *metal.Switch) error
DeleteSwitch deletes a switch.
func (*RethinkStore) Demote ¶ added in v0.12.0
func (rs *RethinkStore) Demote() error
Demote connects to the database with the demoted metal runtime user. this enables putting the database in read-only mode during database migrations
func (*RethinkStore) FindIPByID ¶
func (rs *RethinkStore) FindIPByID(id string) (*metal.IP, error)
FindIPByID returns an ip of a given id.
func (*RethinkStore) FindImage ¶
func (rs *RethinkStore) FindImage(id string) (*metal.Image, error)
FindImage returns an image for the given image id.
func (*RethinkStore) FindMachine ¶
func (rs *RethinkStore) FindMachine(q *MachineSearchQuery, ms *metal.Machine) error
FindMachine returns a machine by the given query, fails if there is no record or multiple records found.
func (*RethinkStore) FindMachineByID ¶
func (rs *RethinkStore) FindMachineByID(id string) (*metal.Machine, error)
FindMachineByID returns a machine for a given id.
func (*RethinkStore) FindNetwork ¶
func (rs *RethinkStore) FindNetwork(q *NetworkSearchQuery, n *metal.Network) error
FindNetwork returns a machine by the given query, fails if there is no record or multiple records found.
func (*RethinkStore) FindNetworkByID ¶
func (rs *RethinkStore) FindNetworkByID(id string) (*metal.Network, error)
FindNetworkByID returns an network of a given id.
func (*RethinkStore) FindPartition ¶
func (rs *RethinkStore) FindPartition(id string) (*metal.Partition, error)
FindPartition return a partition for the given id.
func (*RethinkStore) FindProvisioningEventContainer ¶
func (rs *RethinkStore) FindProvisioningEventContainer(id string) (*metal.ProvisioningEventContainer, error)
FindProvisioningEventContainer finds a provisioning event container to a given machine id.
func (*RethinkStore) FindSize ¶
func (rs *RethinkStore) FindSize(id string) (*metal.Size, error)
FindSize return a size for a given id.
func (*RethinkStore) FindSwitch ¶
func (rs *RethinkStore) FindSwitch(id string) (*metal.Switch, error)
FindSwitch returns a switch for a given id.
func (*RethinkStore) FindWaitingMachine ¶ added in v0.8.1
func (rs *RethinkStore) FindWaitingMachine(partitionid, sizeid string) (*metal.Machine, error)
FindWaitingMachine returns an available, not allocated, waiting and alive machine of given size within the given partition. TODO: the algorithm can be optimized / shortened by using a rethinkdb join command and then using .Sample(1) but current implementation should have a slightly better readability.
func (*RethinkStore) FromHardware ¶
func (rs *RethinkStore) FromHardware(hw metal.MachineHardware) (*metal.Size, []*metal.SizeMatchingLog, error)
FromHardware tries to find a size which matches the given hardware specs.
func (*RethinkStore) GetImage ¶ added in v0.7.0
func (rs *RethinkStore) GetImage(id string) (*metal.Image, error)
GetImage return a image for a given id without semver matching.
func (*RethinkStore) GetIntegerPool ¶ added in v0.9.3
func (rs *RethinkStore) GetIntegerPool(pool IntegerPoolType) (*IntegerPool, error)
GetIntegerPool returns a named integerpool if already created
func (*RethinkStore) Health ¶
func (rs *RethinkStore) Health() error
Health checks if the connection to the database is ok.
func (*RethinkStore) Initialize ¶ added in v0.12.0
func (rs *RethinkStore) Initialize() error
Initialize initializes the database, it should be called every time the application comes up before using the data store
func (*RethinkStore) ListIPs ¶
func (rs *RethinkStore) ListIPs() (metal.IPs, error)
ListIPs returns all ips.
func (*RethinkStore) ListImages ¶
func (rs *RethinkStore) ListImages() (metal.Images, error)
ListImages returns all images.
func (*RethinkStore) ListMachines ¶
func (rs *RethinkStore) ListMachines() (metal.Machines, error)
ListMachines returns all machines.
func (*RethinkStore) ListNetworks ¶
func (rs *RethinkStore) ListNetworks() (metal.Networks, error)
ListNetworks returns all networks.
func (*RethinkStore) ListPartitions ¶
func (rs *RethinkStore) ListPartitions() (metal.Partitions, error)
ListPartitions returns all partition.
func (*RethinkStore) ListProvisioningEventContainers ¶
func (rs *RethinkStore) ListProvisioningEventContainers() (metal.ProvisioningEventContainers, error)
ListProvisioningEventContainers returns all machine provisioning event containers.
func (*RethinkStore) ListSizes ¶
func (rs *RethinkStore) ListSizes() (metal.Sizes, error)
ListSizes returns all sizes.
func (*RethinkStore) ListSwitches ¶
func (rs *RethinkStore) ListSwitches() ([]metal.Switch, error)
ListSwitches returns all known switches.
func (*RethinkStore) Migrate ¶ added in v0.12.0
func (rs *RethinkStore) Migrate(targetVersion *int, dry bool) error
Migrate runs database migrations and puts the database into read only mode for demoted runtime users.
func (*RethinkStore) Mock ¶
func (rs *RethinkStore) Mock() *r.Mock
Mock return the mock from the rethinkdb driver and sets the session to this mock. This MUST NOT be called in productive code.
func (*RethinkStore) SearchIPs ¶
func (rs *RethinkStore) SearchIPs(q *IPSearchQuery, ips *metal.IPs) error
SearchIPs returns the result of the ips search request query.
func (*RethinkStore) SearchMachines ¶
func (rs *RethinkStore) SearchMachines(q *MachineSearchQuery, ms *metal.Machines) error
SearchMachines returns the result of the machines search request query.
func (*RethinkStore) SearchNetworks ¶
func (rs *RethinkStore) SearchNetworks(q *NetworkSearchQuery, ns *metal.Networks) error
SearchNetworks returns the networks that match the given properties
func (*RethinkStore) SearchSwitches ¶
SearchSwitches searches for switches by the given parameters.
func (*RethinkStore) SearchSwitchesConnectedToMachine ¶
SearchSwitchesConnectedToMachine searches switches that are connected to the given machine.
func (*RethinkStore) UpdateImage ¶
UpdateImage updates an image.
func (*RethinkStore) UpdateMachine ¶
UpdateMachine replaces a machine in the database if the 'changed' field of the old value equals the 'changed' field of the recored in the database.
func (*RethinkStore) UpdateNetwork ¶
UpdateNetwork updates an network.
func (*RethinkStore) UpdatePartition ¶
func (rs *RethinkStore) UpdatePartition(oldPartition *metal.Partition, newPartition *metal.Partition) error
UpdatePartition updates a partition.
func (*RethinkStore) UpdateProvisioningEventContainer ¶
func (rs *RethinkStore) UpdateProvisioningEventContainer(old *metal.ProvisioningEventContainer, new *metal.ProvisioningEventContainer) error
UpdateProvisioningEventContainer updates a provisioning event container.
func (*RethinkStore) UpdateSize ¶
UpdateSize updates a size.
func (*RethinkStore) UpdateSwitch ¶
UpdateSwitch updates a switch.
func (*RethinkStore) UpsertProvisioningEventContainer ¶
func (rs *RethinkStore) UpsertProvisioningEventContainer(ec *metal.ProvisioningEventContainer) error
UpsertProvisioningEventContainer inserts a machine's event container.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package migrations contains migration functions for migrating the RethinkDB.
|
Package migrations contains migration functions for migrating the RethinkDB. |