db

package
v0.0.0-...-1b70f73 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2022 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultTenantName = "default" // this is temporary until tenant management exists

	// tenants.state
	TenantStatePENDING      = 0
	TenantStatePROVISIONING = 1
	TenantStateACTIVE       = 2
	TenantStateSUSPENDED    = 3
	TenantStateDELETED      = 4

	// jobs.state
	JobStateQUEUED  = 0
	JobStateRUNNING = 1
	JobStateDONE    = 2
	JobStateFAILED  = 3

	// instances.state
	InstanceStatePENDING  = 0
	InstanceStateCREATING = 1
	InstanceStateSTARTED  = 2
	InstanceStateSTOPPED  = 3
	InstanceStateDELETING = 4
	InstanceStateDELETED  = 5
	InstanceStateERROR    = 6
)

Variables

This section is empty.

Functions

func QueueJob

func QueueJob(ctx context.Context, queries *Queries, worker string, jobType string, jobData interface{}) (string, error)

QueueJob queues a job and returns it's job ID

Types

type AddNodeParams

type AddNodeParams struct {
	ResourceID string
	Hostname   string
	Available  bool
}

type AttachVolumeToInstanceParams

type AttachVolumeToInstanceParams struct {
	Instance   sql.NullString
	ResourceID string
}

type CreateInstanceParams

type CreateInstanceParams struct {
	ResourceID string
	BaseImage  string
	Memory     int32
	Cpu        int32
	UserData   []byte
	RootVolume string
}

type CreateJobParams

type CreateJobParams struct {
	JobID          string
	AssignedWorker string
	State          int32
	StateText      string
	JobType        string
	JobData        json.RawMessage
}

type CreateNICParams

type CreateNICParams struct {
	ResourceID string
	Instance   string
	Mac        string
	Ipv4       pqtype.Inet
	Network    string
}

type CreateNetworkParams

type CreateNetworkParams struct {
	ResourceID string
	Openwrt    string
}

type CreateResourceParams

type CreateResourceParams struct {
	ResourceID string
	Tenant     string
}

type CreateVolumeParams

type CreateVolumeParams struct {
	ResourceID string
	Node       string
	Size       int32
}

type DBTX

type DBTX interface {
	ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
	PrepareContext(context.Context, string) (*sql.Stmt, error)
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}

type Instance

type Instance struct {
	ResourceID string
	BaseImage  string
	Memory     int32
	Cpu        int32
	Node       sql.NullString
	State      int32
	UserData   []byte
	RootVolume string
}

type InstanceNic

type InstanceNic struct {
	ResourceID string
	Instance   string
	Mac        string
	Network    string
	Ipv4       pqtype.Inet
	Trunk      bool
}

type Job

type Job struct {
	JobID          string
	CreatedAt      time.Time
	AssignedWorker string
	State          int32
	StateText      string
	JobType        string
	JobData        json.RawMessage
}

type Network

type Network struct {
	ResourceID string
	VlanID     int32
	Openwrt    string
	Subnet     pqtype.CIDR
}

type Node

type Node struct {
	ResourceID string
	Hostname   string
	Available  bool
}

type Openwrt

type Openwrt struct {
	OpenwrtID string
}

type OpenwrtNetwork

type OpenwrtNetwork struct {
	OpenwrtID string
	Network   string
}

type PGNotifyMessage

type PGNotifyMessage struct {
	Table  string
	Action string
	Data   struct {
		JobID          string          `json:"job_id"`
		AssignedWorker string          `json:"assigned_worker"`
		State          int             `json:"state"`
		StateText      string          `json:"state_text"`
		JobType        string          `json:"job_type"`
		JobData        json.RawMessage `json:"job_data"`
	}
}

type Queries

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

func New

func New(db DBTX) *Queries

func (*Queries) AddNode

func (q *Queries) AddNode(ctx context.Context, arg AddNodeParams) (Node, error)

func (*Queries) AddOpenwrt

func (q *Queries) AddOpenwrt(ctx context.Context, openwrtID string) (string, error)

func (*Queries) AttachVolumeToInstance

func (q *Queries) AttachVolumeToInstance(ctx context.Context, arg AttachVolumeToInstanceParams) (int64, error)

func (*Queries) CreateInstance

func (q *Queries) CreateInstance(ctx context.Context, arg CreateInstanceParams) error

INSTANCES

func (*Queries) CreateJob

func (q *Queries) CreateJob(ctx context.Context, arg CreateJobParams) error

JOBS

func (*Queries) CreateNIC

func (q *Queries) CreateNIC(ctx context.Context, arg CreateNICParams) error

INSTANCE NICs

func (*Queries) CreateNetwork

func (q *Queries) CreateNetwork(ctx context.Context, arg CreateNetworkParams) (int32, error)

NETWORKS

func (*Queries) CreateResource

func (q *Queries) CreateResource(ctx context.Context, arg CreateResourceParams) error

RESOURCES

func (*Queries) CreateTenant

func (q *Queries) CreateTenant(ctx context.Context, name string) error

Copyright 2021 Entanglement Garden Developers SPDX-License-Identifier: AGPL-3.0-only TENANTS

func (*Queries) CreateVolume

func (q *Queries) CreateVolume(ctx context.Context, arg CreateVolumeParams) error

VOLUMES

func (*Queries) DeleteInstance

func (q *Queries) DeleteInstance(ctx context.Context, resourceID string) error

func (*Queries) DeleteJob

func (q *Queries) DeleteJob(ctx context.Context, jobID string) error

func (*Queries) DeleteNetwork

func (q *Queries) DeleteNetwork(ctx context.Context, resourceID string) error

func (*Queries) DeleteNode

func (q *Queries) DeleteNode(ctx context.Context, resourceID string) (int64, error)

func (*Queries) DeleteResource

func (q *Queries) DeleteResource(ctx context.Context, resourceID string) error

func (*Queries) DeleteVolume

func (q *Queries) DeleteVolume(ctx context.Context, resourceID string) error

func (*Queries) DetachVolume

func (q *Queries) DetachVolume(ctx context.Context, resourceID string) (int64, error)

func (*Queries) GetAllOpenwrtIDs

func (q *Queries) GetAllOpenwrtIDs(ctx context.Context) ([]string, error)

func (*Queries) GetAvailableNodes

func (q *Queries) GetAvailableNodes(ctx context.Context) ([]string, error)

func (*Queries) GetFailedJobs

func (q *Queries) GetFailedJobs(ctx context.Context) ([]Job, error)

func (*Queries) GetInstance

func (q *Queries) GetInstance(ctx context.Context, resourceID string) (Instance, error)

func (*Queries) GetInstanceAttachedVolumes

func (q *Queries) GetInstanceAttachedVolumes(ctx context.Context, instance sql.NullString) ([]Volume, error)

func (*Queries) GetInstanceNICs

func (q *Queries) GetInstanceNICs(ctx context.Context, instance string) ([]InstanceNic, error)

func (*Queries) GetJob

func (q *Queries) GetJob(ctx context.Context, jobID string) (Job, error)

func (*Queries) GetNICs

func (q *Queries) GetNICs(ctx context.Context, instance string) ([]InstanceNic, error)

func (*Queries) GetNetwork

func (q *Queries) GetNetwork(ctx context.Context, resourceID string) (Network, error)

func (*Queries) GetNextJob

func (q *Queries) GetNextJob(ctx context.Context) (Job, error)

func (*Queries) GetNextJobForWorker

func (q *Queries) GetNextJobForWorker(ctx context.Context, assignedWorker string) (Job, error)

func (*Queries) GetNodeByHostname

func (q *Queries) GetNodeByHostname(ctx context.Context, hostname string) (Node, error)

func (*Queries) GetNodeForInstance

func (q *Queries) GetNodeForInstance(ctx context.Context, resourceID string) (Node, error)

func (*Queries) GetNodes

func (q *Queries) GetNodes(ctx context.Context) ([]Node, error)

NODES

func (*Queries) GetOpenwrtByID

func (q *Queries) GetOpenwrtByID(ctx context.Context, openwrtID string) (string, error)

OPENWRTS

func (*Queries) GetTrunkNIC

func (q *Queries) GetTrunkNIC(ctx context.Context, instance string) (InstanceNic, error)

func (*Queries) ListInstances

func (q *Queries) ListInstances(ctx context.Context, tenant string) ([]Instance, error)

func (*Queries) ListNetworks

func (q *Queries) ListNetworks(ctx context.Context) ([]string, error)

func (*Queries) ListTenants

func (q *Queries) ListTenants(ctx context.Context) ([]Tenant, error)

func (*Queries) ListVolumes

func (q *Queries) ListVolumes(ctx context.Context, tenant string) ([]Volume, error)

func (*Queries) SetInstanceState

func (q *Queries) SetInstanceState(ctx context.Context, arg SetInstanceStateParams) error

func (*Queries) SetJobState

func (q *Queries) SetJobState(ctx context.Context, arg SetJobStateParams) (int64, error)

func (*Queries) SetNodeAvailability

func (q *Queries) SetNodeAvailability(ctx context.Context, arg SetNodeAvailabilityParams) (int64, error)

func (*Queries) SetNodeForInstance

func (q *Queries) SetNodeForInstance(ctx context.Context, arg SetNodeForInstanceParams) (int64, error)

func (*Queries) SetNodeHostname

func (q *Queries) SetNodeHostname(ctx context.Context, arg SetNodeHostnameParams) (int64, error)

func (*Queries) SetVlanSeq

func (q *Queries) SetVlanSeq(ctx context.Context, setval int64) error

func (*Queries) WithTx

func (q *Queries) WithTx(tx *sql.Tx) *Queries

type Resource

type Resource struct {
	ResourceID string
	Tenant     string
}

type ResourceTag

type ResourceTag struct {
	ResourceID string
	Tag        string
	Value      string
}

type SetInstanceStateParams

type SetInstanceStateParams struct {
	State      int32
	ResourceID string
}

type SetJobStateParams

type SetJobStateParams struct {
	State     int32
	StateText string
	JobID     string
}

type SetNodeAvailabilityParams

type SetNodeAvailabilityParams struct {
	Available bool
	Hostname  string
}

type SetNodeForInstanceParams

type SetNodeForInstanceParams struct {
	Node       sql.NullString
	ResourceID string
}

type SetNodeHostnameParams

type SetNodeHostnameParams struct {
	Hostname   string
	ResourceID string
}

type Tenant

type Tenant struct {
	Name  string
	State int32
}

type Volume

type Volume struct {
	ResourceID string
	Node       string
	Size       int32
	Instance   sql.NullString
}

Jump to

Keyboard shortcuts

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