virtbuf

package module
v0.2.8 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2024 License: GPL-3.0 Imports: 24 Imported by: 7

README

these are .proto files. first stab. may be inaccurate writes out config files as protojson and prototext todo: lots of stuff

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DropletState_name = map[int32]string{
		0: "ON",
		1: "OFF",
		2: "UNKNOWN",
		3: "PAUSED",
		4: "CRASHED",
		5: "INMIGRATE",
	}
	DropletState_value = map[string]int32{
		"ON":        0,
		"OFF":       1,
		"UNKNOWN":   2,
		"PAUSED":    3,
		"CRASHED":   4,
		"INMIGRATE": 5,
	}
)

Enum value maps for DropletState.

View Source
var (
	DropletArchive_name = map[int32]string{
		0: "DUP",
		1: "USER",
	}
	DropletArchive_value = map[string]int32{
		"DUP":  0,
		"USER": 1,
	}
)

Enum value maps for DropletArchive.

View Source
var (
	EventType_name = map[int32]string{
		0:  "ADD",
		1:  "DELETE",
		2:  "POWERON",
		3:  "POWEROFF",
		4:  "HIBERNATE",
		5:  "MIGRATE",
		6:  "DEMO",
		7:  "GET",
		8:  "LOGIN",
		9:  "OK",
		10: "FAIL",
		11: "CRASH",
		12: "CHANGE",
	}
	EventType_value = map[string]int32{
		"ADD":       0,
		"DELETE":    1,
		"POWERON":   2,
		"POWEROFF":  3,
		"HIBERNATE": 4,
		"MIGRATE":   5,
		"DEMO":      6,
		"GET":       7,
		"LOGIN":     8,
		"OK":        9,
		"FAIL":      10,
		"CRASH":     11,
		"CHANGE":    12,
	}
)

Enum value maps for EventType.

View Source
var (
	HypervisorArch_name = map[int32]string{
		0: "RISCV64",
		1: "X86_64",
		2: "ARM64",
	}
	HypervisorArch_value = map[string]int32{
		"RISCV64": 0,
		"X86_64":  1,
		"ARM64":   2,
	}
)

Enum value maps for HypervisorArch.

View Source
var File_droplet_proto protoreflect.FileDescriptor
View Source
var File_event_proto protoreflect.FileDescriptor
View Source
var File_experiments_proto protoreflect.FileDescriptor
View Source
var File_hypervisor_proto protoreflect.FileDescriptor

Functions

func ConfigWriteJSON

func ConfigWriteJSON(a any, filename string) error

func ConfigWriteTEXT

func ConfigWriteTEXT(a any, filename string) error

func FormatDuration added in v0.2.1

func FormatDuration(d time.Duration) string

func HumanFormatBytes

func HumanFormatBytes(b int64) string

This isn't for the marketing department so this isn't going to use 'MiB' and 'GiB'

func SetGB

func SetGB(gb int) int64

can the json protobuf output use a string and have a type handler to convert it back to int64?

func SetMB

func SetMB(mb int) int64

Types

type Archive added in v0.2.4

type Archive struct {
	Reason DropletArchive         `protobuf:"varint,1,opt,name=reason,proto3,enum=virtbuf.DropletArchive" json:"reason,omitempty"` // why the droplet was archived
	When   *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=when,proto3" json:"when,omitempty"`                                  // when it was archived
	// contains filtered or unexported fields
}

func (*Archive) Descriptor deprecated added in v0.2.4

func (*Archive) Descriptor() ([]byte, []int)

Deprecated: Use Archive.ProtoReflect.Descriptor instead.

func (*Archive) GetReason added in v0.2.4

func (x *Archive) GetReason() DropletArchive

func (*Archive) GetWhen added in v0.2.4

func (x *Archive) GetWhen() *timestamppb.Timestamp

func (*Archive) ProtoMessage added in v0.2.4

func (*Archive) ProtoMessage()

func (*Archive) ProtoReflect added in v0.2.4

func (x *Archive) ProtoReflect() protoreflect.Message

func (*Archive) Reset added in v0.2.4

func (x *Archive) Reset()

func (*Archive) String added in v0.2.4

func (x *Archive) String() string

type Cluster added in v0.2.5

type Cluster struct {
	sync.RWMutex

	Dirs []string

	H *Hypervisors

	Unstable        *timestamppb.Timestamp
	UnstableTimeout *durationpb.Duration
	// contains filtered or unexported fields
}

func CreateSampleCluster added in v0.2.1

func CreateSampleCluster(total int) *Cluster

func InitCluster added in v0.2.1

func InitCluster() *Cluster

func (*Cluster) AddDroplet added in v0.2.5

func (c *Cluster) AddDroplet(newd *Droplet) bool

adds a new droplet. enforce unique hostnames

func (*Cluster) AddDropletLocal added in v0.2.5

func (c *Cluster) AddDropletLocal(name string, hypername string) *Droplet

This isn't for the marketing department

func (*Cluster) AddDropletSimple added in v0.2.5

func (c *Cluster) AddDropletSimple(uuid string, hostname string, cpus int, mem int) *Droplet

func (*Cluster) AddEvent added in v0.2.5

func (c *Cluster) AddEvent(e *Event)

func (*Cluster) AddHypervisor added in v0.2.5

func (c *Cluster) AddHypervisor(hostname string, cpus int, mem int) *Hypervisor

func (*Cluster) BlankFields added in v0.2.5

func (c *Cluster) BlankFields()

func (*Cluster) ChangeDropletState added in v0.2.5

func (c *Cluster) ChangeDropletState(d *Droplet, newState DropletState) error

records an event that the droplet changed state (aka turned on, turned off, etc)

func (*Cluster) ClusterStable added in v0.2.5

func (c *Cluster) ClusterStable() (bool, string)

func (*Cluster) ConfigLoad added in v0.2.5

func (c *Cluster) ConfigLoad() error

func (*Cluster) ConfigSave added in v0.2.5

func (c *Cluster) ConfigSave() error

writes out the cluster information it seperate files to make it humanly possible to hand edit things as needed

func (*Cluster) DropletMoved added in v0.2.5

func (c *Cluster) DropletMoved(d *Droplet, newh *Hypervisor) error

records an event that the droplet migrated to another hypervisor

func (*Cluster) DropletReady added in v0.2.5

func (c *Cluster) DropletReady(d *Droplet) (bool, string)

check the cluster and droplet to make sure it's ready to start

func (*Cluster) DropletsAll added in v0.2.5

func (c *Cluster) DropletsAll() *DropletIterator

func (*Cluster) DumpDroplet added in v0.2.5

func (c *Cluster) DumpDroplet(w http.ResponseWriter, r *http.Request) (string, error)

func (*Cluster) FindDropletByName added in v0.2.5

func (c *Cluster) FindDropletByName(name string) *Droplet

func (*Cluster) FindHypervisorByName added in v0.2.5

func (c *Cluster) FindHypervisorByName(name string) *Hypervisor

func (*Cluster) GetDropletIterator added in v0.2.5

func (c *Cluster) GetDropletIterator() *DropletIterator

Use Scan() in a loop, similar to a while loop

for iterator.Scan() {
	d := iterator.Droplet()
	fmt.Println("Droplet UUID:", d.Uuid)
}

func (*Cluster) SelectDropletAll added in v0.2.5

func (c *Cluster) SelectDropletAll() []*Droplet

SelectDropletPointers safely returns a slice of pointers to Droplet records.

func (*Cluster) SelectDropletPointers added in v0.2.5

func (c *Cluster) SelectDropletPointers() []*Droplet

SelectDropletPointers safely returns a slice of pointers to Droplet records.

type Current added in v0.2.4

type Current struct {
	State         DropletState           `protobuf:"varint,1,opt,name=state,proto3,enum=virtbuf.DropletState" json:"state,omitempty"`            // used to track the current state before taking any action
	Hypervisor    string                 `protobuf:"bytes,2,opt,name=hypervisor,proto3" json:"hypervisor,omitempty"`                             // the current hypervisor the droplet is running on
	StartAttempts int64                  `protobuf:"varint,3,opt,name=start_attempts,json=startAttempts,proto3" json:"start_attempts,omitempty"` // how many times a start has been attempted
	FullXml       string                 `protobuf:"bytes,4,opt,name=full_xml,json=fullXml,proto3" json:"full_xml,omitempty"`                    // the full libvirt xml to import
	LastPoll      *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=last_poll,json=lastPoll,proto3" json:"last_poll,omitempty"`                 // the last time we heard anything from this droplet
	ImageUrl      string                 `protobuf:"bytes,6,opt,name=image_url,json=imageUrl,proto3" json:"image_url,omitempty"`                 // url to the image
	OffSince      *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=off_since,json=offSince,proto3" json:"off_since,omitempty"`                 // when the droplet was turned off
	OnSince       *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=on_since,json=onSince,proto3" json:"on_since,omitempty"`                    // when the droplet was turned on
	// contains filtered or unexported fields
}

volatile data. the current settings and values of things. These are passed around while the cluster to monitor and control the systems but they are not saved to the config file

func (*Current) Descriptor deprecated added in v0.2.4

func (*Current) Descriptor() ([]byte, []int)

Deprecated: Use Current.ProtoReflect.Descriptor instead.

func (*Current) GetFullXml added in v0.2.4

func (x *Current) GetFullXml() string

func (*Current) GetHypervisor added in v0.2.4

func (x *Current) GetHypervisor() string

func (*Current) GetImageUrl added in v0.2.4

func (x *Current) GetImageUrl() string

func (*Current) GetLastPoll added in v0.2.4

func (x *Current) GetLastPoll() *timestamppb.Timestamp

func (*Current) GetOffSince added in v0.2.4

func (x *Current) GetOffSince() *timestamppb.Timestamp

func (*Current) GetOnSince added in v0.2.4

func (x *Current) GetOnSince() *timestamppb.Timestamp

func (*Current) GetStartAttempts added in v0.2.4

func (x *Current) GetStartAttempts() int64

func (*Current) GetState added in v0.2.4

func (x *Current) GetState() DropletState

func (*Current) ProtoMessage added in v0.2.4

func (*Current) ProtoMessage()

func (*Current) ProtoReflect added in v0.2.4

func (x *Current) ProtoReflect() protoreflect.Message

func (*Current) Reset added in v0.2.4

func (x *Current) Reset()

func (*Current) String added in v0.2.4

func (x *Current) String() string

type Disk added in v0.2.4

type Disk struct {
	Filename string `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"`
	Filepath string `protobuf:"bytes,2,opt,name=filepath,proto3" json:"filepath,omitempty"`
	Size     int64  `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"`
	QemuArch string `protobuf:"bytes,4,opt,name=qemu_arch,json=qemuArch,proto3" json:"qemu_arch,omitempty"` // what arch. example: "x86_64" or "riscv64"
	// contains filtered or unexported fields
}

func (*Disk) Descriptor deprecated added in v0.2.4

func (*Disk) Descriptor() ([]byte, []int)

Deprecated: Use Disk.ProtoReflect.Descriptor instead.

func (*Disk) GetFilename added in v0.2.4

func (x *Disk) GetFilename() string

func (*Disk) GetFilepath added in v0.2.4

func (x *Disk) GetFilepath() string

func (*Disk) GetQemuArch added in v0.2.4

func (x *Disk) GetQemuArch() string

func (*Disk) GetSize added in v0.2.4

func (x *Disk) GetSize() int64

func (*Disk) ProtoMessage added in v0.2.4

func (*Disk) ProtoMessage()

func (*Disk) ProtoReflect added in v0.2.4

func (x *Disk) ProtoReflect() protoreflect.Message

func (*Disk) Reset added in v0.2.4

func (x *Disk) Reset()

func (*Disk) String added in v0.2.4

func (x *Disk) String() string

type Droplet added in v0.2.4

type Droplet struct {
	Uuid                string                 `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`                                                          // should be unique across the cluster
	Hostname            string                 `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"`                                                  // should be unique and work in DNS
	Cpus                int64                  `protobuf:"varint,3,opt,name=cpus,proto3" json:"cpus,omitempty"`                                                         // what's the point of int64 vs int32
	Memory              int64                  `protobuf:"varint,4,opt,name=memory,proto3" json:"memory,omitempty"`                                                     // in bytes
	Current             *Current               `protobuf:"bytes,5,opt,name=current,proto3" json:"current,omitempty"`                                                    // what the state and values of the droplet is
	StartState          DropletState           `protobuf:"varint,6,opt,name=start_state,json=startState,proto3,enum=virtbuf.DropletState" json:"start_state,omitempty"` // what the state of the droplet is SUPPOSED TO BE ('on' or 'off')
	QemuMachine         string                 `protobuf:"bytes,7,opt,name=qemu_machine,json=qemuMachine,proto3" json:"qemu_machine,omitempty"`                         // the qemu machine type to use "pc-q35-9.0"
	SpicePort           int64                  `protobuf:"varint,8,opt,name=spice_port,json=spicePort,proto3" json:"spice_port,omitempty"`                              // preferred port to use for spice
	PreferredHypervisor string                 `protobuf:"bytes,9,opt,name=preferred_hypervisor,json=preferredHypervisor,proto3" json:"preferred_hypervisor,omitempty"` // the hypervisor to prefer to run the droplet on
	ForceHypervisor     string                 `protobuf:"bytes,10,opt,name=force_hypervisor,json=forceHypervisor,proto3" json:"force_hypervisor,omitempty"`            // use this hypervisor and this hypervisor only
	PreferredArch       string                 `protobuf:"bytes,11,opt,name=preferred_arch,json=preferredArch,proto3" json:"preferred_arch,omitempty"`                  // the cpu arch to use "x86_64" (should really get this from the disk?)
	Networks            []*Network             `protobuf:"bytes,12,rep,name=networks,proto3" json:"networks,omitempty"`                                                 // really just mac addresses. should be unique across cluster
	Disks               []*Disk                `protobuf:"bytes,13,rep,name=disks,proto3" json:"disks,omitempty"`                                                       // disks to attach
	LocalOnly           string                 `protobuf:"bytes,14,opt,name=local_only,json=localOnly,proto3" json:"local_only,omitempty"`                              // this is only defined locally on the hypervisor
	CustomXml           string                 `protobuf:"bytes,15,opt,name=custom_xml,json=customXml,proto3" json:"custom_xml,omitempty"`                              // if needed,
	Archive             *Archive               `protobuf:"bytes,16,opt,name=archive,proto3" json:"archive,omitempty"`                                                   // what the state of the droplet is SUPPOSED TO BE ('on' or 'off')
	Unstable            *timestamppb.Timestamp `protobuf:"bytes,39,opt,name=unstable,proto3" json:"unstable,omitempty"`                                                 // the last time we heard anything from this droplet
	UnstableTimeout     *durationpb.Duration   `protobuf:"bytes,40,opt,name=unstable_timeout,json=unstableTimeout,proto3" json:"unstable_timeout,omitempty"`            // the last time we heard anything from this droplet
	// contains filtered or unexported fields
}

func CreateSampleDroplet added in v0.2.4

func CreateSampleDroplet(hostname string) *Droplet

func NewDefaultDroplet added in v0.2.7

func NewDefaultDroplet(hostname string) *Droplet

creates a new droplet with default values

func (*Droplet) Descriptor deprecated added in v0.2.4

func (*Droplet) Descriptor() ([]byte, []int)

Deprecated: Use Droplet.ProtoReflect.Descriptor instead.

func (*Droplet) DumpDroplet added in v0.2.4

func (d *Droplet) DumpDroplet(w http.ResponseWriter, r *http.Request) (string, error)

func (*Droplet) FormatJSON added in v0.2.4

func (d *Droplet) FormatJSON() string

func (*Droplet) FormatTEXT added in v0.2.4

func (d *Droplet) FormatTEXT() string

func (*Droplet) GetArchive added in v0.2.4

func (x *Droplet) GetArchive() *Archive

func (*Droplet) GetCpus added in v0.2.4

func (x *Droplet) GetCpus() int64

func (*Droplet) GetCurrent added in v0.2.4

func (x *Droplet) GetCurrent() *Current

func (*Droplet) GetCustomXml added in v0.2.4

func (x *Droplet) GetCustomXml() string

func (*Droplet) GetDisks added in v0.2.4

func (x *Droplet) GetDisks() []*Disk

func (*Droplet) GetForceHypervisor added in v0.2.4

func (x *Droplet) GetForceHypervisor() string

func (*Droplet) GetHostname added in v0.2.4

func (x *Droplet) GetHostname() string

func (*Droplet) GetLocalOnly added in v0.2.4

func (x *Droplet) GetLocalOnly() string

func (*Droplet) GetMemory added in v0.2.4

func (x *Droplet) GetMemory() int64

func (*Droplet) GetNetworks added in v0.2.4

func (x *Droplet) GetNetworks() []*Network

func (*Droplet) GetPreferredArch added in v0.2.4

func (x *Droplet) GetPreferredArch() string

func (*Droplet) GetPreferredHypervisor added in v0.2.4

func (x *Droplet) GetPreferredHypervisor() string

func (*Droplet) GetQemuMachine added in v0.2.4

func (x *Droplet) GetQemuMachine() string

func (*Droplet) GetSpicePort added in v0.2.4

func (x *Droplet) GetSpicePort() int64

func (*Droplet) GetStartState added in v0.2.4

func (x *Droplet) GetStartState() DropletState

func (*Droplet) GetUnstable added in v0.2.4

func (x *Droplet) GetUnstable() *timestamppb.Timestamp

func (*Droplet) GetUnstableTimeout added in v0.2.4

func (x *Droplet) GetUnstableTimeout() *durationpb.Duration

func (*Droplet) GetUuid added in v0.2.4

func (x *Droplet) GetUuid() string

func (*Droplet) MarshalJSON added in v0.2.4

func (d *Droplet) MarshalJSON() ([]byte, error)

func (*Droplet) NewChangeEvent added in v0.2.4

func (d *Droplet) NewChangeEvent(fname string, origval any, newval any) *Event

Wrapping the int into a protobuf message

func (*Droplet) ProtoMessage added in v0.2.4

func (*Droplet) ProtoMessage()

func (*Droplet) ProtoReflect added in v0.2.4

func (x *Droplet) ProtoReflect() protoreflect.Message

func (*Droplet) Reset added in v0.2.4

func (x *Droplet) Reset()

func (*Droplet) SetCpus added in v0.2.4

func (d *Droplet) SetCpus(b int64)

update the droplet memory

func (*Droplet) SetMemory added in v0.2.4

func (d *Droplet) SetMemory(b int64) *Event

update the droplet memory

func (*Droplet) SetState added in v0.2.4

func (d *Droplet) SetState(newState DropletState)

update the droplet memory

func (*Droplet) SprintDumpHeader added in v0.2.4

func (d *Droplet) SprintDumpHeader() string

func (*Droplet) SprintHeader added in v0.2.4

func (d *Droplet) SprintHeader() string

func (*Droplet) String added in v0.2.4

func (x *Droplet) String() string

func (*Droplet) Unmarshal added in v0.2.4

func (d *Droplet) Unmarshal(data []byte) error

func (*Droplet) UnmarshalJSON added in v0.2.4

func (d *Droplet) UnmarshalJSON(data []byte) error

type DropletArchive added in v0.2.4

type DropletArchive int32
const (
	DropletArchive_DUP  DropletArchive = 0
	DropletArchive_USER DropletArchive = 1
)

func (DropletArchive) Descriptor added in v0.2.4

func (DropletArchive) Enum added in v0.2.4

func (x DropletArchive) Enum() *DropletArchive

func (DropletArchive) EnumDescriptor deprecated added in v0.2.4

func (DropletArchive) EnumDescriptor() ([]byte, []int)

Deprecated: Use DropletArchive.Descriptor instead.

func (DropletArchive) Number added in v0.2.4

func (DropletArchive) String added in v0.2.4

func (x DropletArchive) String() string

func (DropletArchive) Type added in v0.2.4

type DropletIterator added in v0.2.1

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

func NewDropletIterator added in v0.2.1

func NewDropletIterator(droplets []*Droplet) *DropletIterator

NewDropletIterator initializes a new iterator.

func (*DropletIterator) Droplet added in v0.2.1

func (it *DropletIterator) Droplet() *Droplet

Droplet returns the current droplet.

func (*DropletIterator) Scan added in v0.2.1

func (it *DropletIterator) Scan() bool

Scan moves to the next element and returns false if there are no more droplets.

type DropletState added in v0.2.4

type DropletState int32

virtual machine state

const (
	DropletState_ON        DropletState = 0
	DropletState_OFF       DropletState = 1
	DropletState_UNKNOWN   DropletState = 2 // qemu says 'Shutdown'
	DropletState_PAUSED    DropletState = 3
	DropletState_CRASHED   DropletState = 4
	DropletState_INMIGRATE DropletState = 5
)

func (DropletState) Descriptor added in v0.2.4

func (DropletState) Enum added in v0.2.4

func (x DropletState) Enum() *DropletState

func (DropletState) EnumDescriptor deprecated added in v0.2.4

func (DropletState) EnumDescriptor() ([]byte, []int)

Deprecated: Use DropletState.Descriptor instead.

func (DropletState) Number added in v0.2.4

func (DropletState) String added in v0.2.4

func (x DropletState) String() string

func (DropletState) Type added in v0.2.4

type Droplets added in v0.2.4

type Droplets struct {
	Uuid     string     `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`       // I guess why not just have this on each file
	Version  string     `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // maybe can be used for protobuf schema change violations
	Droplets []*Droplet `protobuf:"bytes,3,rep,name=droplets,proto3" json:"droplets,omitempty"`
	// contains filtered or unexported fields
}

func (*Droplets) Descriptor deprecated added in v0.2.4

func (*Droplets) Descriptor() ([]byte, []int)

Deprecated: Use Droplets.ProtoReflect.Descriptor instead.

func (*Droplets) FormatJSON added in v0.2.4

func (d *Droplets) FormatJSON() string

human readable JSON

func (*Droplets) FormatTEXT added in v0.2.4

func (d *Droplets) FormatTEXT() string

apparently this isn't supposed to be used? https://protobuf.dev/reference/go/faq/#unstable-text this is a shame because this is much nicer output than JSON Format()

func (*Droplets) GetDroplets added in v0.2.4

func (x *Droplets) GetDroplets() []*Droplet

func (*Droplets) GetUuid added in v0.2.4

func (x *Droplets) GetUuid() string

func (*Droplets) GetVersion added in v0.2.4

func (x *Droplets) GetVersion() string

func (*Droplets) MarshalJSON added in v0.2.4

func (d *Droplets) MarshalJSON() ([]byte, error)

marshal

func (*Droplets) ProtoMessage added in v0.2.4

func (*Droplets) ProtoMessage()

func (*Droplets) ProtoReflect added in v0.2.4

func (x *Droplets) ProtoReflect() protoreflect.Message

func (*Droplets) Reset added in v0.2.4

func (x *Droplets) Reset()

func (*Droplets) String added in v0.2.4

func (x *Droplets) String() string

func (*Droplets) UnmarshalJSON added in v0.2.4

func (d *Droplets) UnmarshalJSON(data []byte) error

unmarshal

type Event added in v0.2.4

type Event struct {
	Id             int32                  `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Etype          EventType              `protobuf:"varint,2,opt,name=etype,proto3,enum=virtbuf.EventType" json:"etype,omitempty"`
	Droplet        string                 `protobuf:"bytes,3,opt,name=droplet,proto3" json:"droplet,omitempty"`                                     // name of the droplet
	DropletUuid    string                 `protobuf:"bytes,4,opt,name=droplet_uuid,json=dropletUuid,proto3" json:"droplet_uuid,omitempty"`          // uuid of the droplet
	Hypervisor     string                 `protobuf:"bytes,5,opt,name=hypervisor,proto3" json:"hypervisor,omitempty"`                               // name of the hypervisor
	HypervisorUuid string                 `protobuf:"bytes,6,opt,name=hypervisor_uuid,json=hypervisorUuid,proto3" json:"hypervisor_uuid,omitempty"` // uuid of the hypervisor
	Start          *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=start,proto3" json:"start,omitempty"`                                         // start time
	End            *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=end,proto3" json:"end,omitempty"`                                             // end time
	FieldName      string                 `protobuf:"bytes,9,opt,name=field_name,json=fieldName,proto3" json:"field_name,omitempty"`                // the field name that changed
	OrigVal        string                 `protobuf:"bytes,10,opt,name=orig_val,json=origVal,proto3" json:"orig_val,omitempty"`                     // original value
	NewVal         string                 `protobuf:"bytes,11,opt,name=new_val,json=newVal,proto3" json:"new_val,omitempty"`                        // new value
	OrigAny        *anypb.Any             `protobuf:"bytes,12,opt,name=orig_any,json=origAny,proto3" json:"orig_any,omitempty"`                     // anypb format. probably overkill
	NewAny         *anypb.Any             `protobuf:"bytes,13,opt,name=new_any,json=newAny,proto3" json:"new_any,omitempty"`                        // anypb format
	// contains filtered or unexported fields
}

this information leans towards being human readable not programatic in other words, it's better to just have the droplet name here rather than the uuid at least for now in the early days. but maybe forever. homelab clouds normally don't have many events. we are talking less than 1 a minute. even 1 an hour is often a lot

func NewAddEvent added in v0.2.4

func NewAddEvent(a any, fname string, newval any) *Event

work in progress

func (*Event) Descriptor deprecated added in v0.2.4

func (*Event) Descriptor() ([]byte, []int)

Deprecated: Use Event.ProtoReflect.Descriptor instead.

func (*Event) GetDroplet added in v0.2.4

func (x *Event) GetDroplet() string

func (*Event) GetDropletUuid added in v0.2.4

func (x *Event) GetDropletUuid() string

func (*Event) GetEnd added in v0.2.4

func (x *Event) GetEnd() *timestamppb.Timestamp

func (*Event) GetEtype added in v0.2.4

func (x *Event) GetEtype() EventType

func (*Event) GetFieldName added in v0.2.4

func (x *Event) GetFieldName() string

func (*Event) GetHypervisor added in v0.2.4

func (x *Event) GetHypervisor() string

func (*Event) GetHypervisorUuid added in v0.2.4

func (x *Event) GetHypervisorUuid() string

func (*Event) GetId added in v0.2.4

func (x *Event) GetId() int32

func (*Event) GetNewAny added in v0.2.4

func (x *Event) GetNewAny() *anypb.Any

func (*Event) GetNewVal added in v0.2.4

func (x *Event) GetNewVal() string

func (*Event) GetOrigAny added in v0.2.4

func (x *Event) GetOrigAny() *anypb.Any

func (*Event) GetOrigVal added in v0.2.4

func (x *Event) GetOrigVal() string

func (*Event) GetStart added in v0.2.4

func (x *Event) GetStart() *timestamppb.Timestamp

func (*Event) ProtoMessage added in v0.2.4

func (*Event) ProtoMessage()

func (*Event) ProtoReflect added in v0.2.4

func (x *Event) ProtoReflect() protoreflect.Message

func (*Event) Reset added in v0.2.4

func (x *Event) Reset()

func (*Event) String added in v0.2.4

func (x *Event) String() string

type EventType added in v0.2.4

type EventType int32
const (
	EventType_ADD       EventType = 0
	EventType_DELETE    EventType = 1
	EventType_POWERON   EventType = 2
	EventType_POWEROFF  EventType = 3 // should indicate a "normal" shutdown
	EventType_HIBERNATE EventType = 4
	EventType_MIGRATE   EventType = 5
	EventType_DEMO      EventType = 6
	EventType_GET       EventType = 7  // request something
	EventType_LOGIN     EventType = 8  // attempt to login
	EventType_OK        EventType = 9  // everything is ok
	EventType_FAIL      EventType = 10 // everything failed
	EventType_CRASH     EventType = 11 // droplet hard crashed
	EventType_CHANGE    EventType = 12 // droplet or hypervisor config change
)

func (EventType) Descriptor added in v0.2.4

func (EventType) Descriptor() protoreflect.EnumDescriptor

func (EventType) Enum added in v0.2.4

func (x EventType) Enum() *EventType

func (EventType) EnumDescriptor deprecated added in v0.2.4

func (EventType) EnumDescriptor() ([]byte, []int)

Deprecated: Use EventType.Descriptor instead.

func (EventType) Number added in v0.2.4

func (x EventType) Number() protoreflect.EnumNumber

func (EventType) String added in v0.2.4

func (x EventType) String() string

func (EventType) Type added in v0.2.4

type Events added in v0.2.4

type Events struct {
	Uuid      string   `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`                             // I guess why not just have this on each file
	Version   string   `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`                       // maybe can be used for protobuf schema change violations
	EventSize int64    `protobuf:"varint,3,opt,name=event_size,json=eventSize,proto3" json:"event_size,omitempty"` // max events to store in a single
	Events    []*Event `protobuf:"bytes,4,rep,name=events,proto3" json:"events,omitempty"`                         // all the events
	// contains filtered or unexported fields
}

func CreateSampleEvents added in v0.2.4

func CreateSampleEvents(total int) *Events

func (*Events) AppendEvent added in v0.2.4

func (epb *Events) AppendEvent(e *Event)

func (*Events) Descriptor deprecated added in v0.2.4

func (*Events) Descriptor() ([]byte, []int)

Deprecated: Use Events.ProtoReflect.Descriptor instead.

func (*Events) FormatJSON added in v0.2.4

func (e *Events) FormatJSON() string

func (*Events) FormatTEXT added in v0.2.4

func (e *Events) FormatTEXT() string

func (*Events) GetEventSize added in v0.2.4

func (x *Events) GetEventSize() int64

func (*Events) GetEvents added in v0.2.4

func (x *Events) GetEvents() []*Event

func (*Events) GetUuid added in v0.2.4

func (x *Events) GetUuid() string

func (*Events) GetVersion added in v0.2.4

func (x *Events) GetVersion() string

func (*Events) MarshalJSON added in v0.2.4

func (e *Events) MarshalJSON() ([]byte, error)

func (*Events) ProtoMessage added in v0.2.4

func (*Events) ProtoMessage()

func (*Events) ProtoReflect added in v0.2.4

func (x *Events) ProtoReflect() protoreflect.Message

func (*Events) Reset added in v0.2.4

func (x *Events) Reset()

func (*Events) String added in v0.2.4

func (x *Events) String() string

func (*Events) UnmarshalJSON added in v0.2.4

func (e *Events) UnmarshalJSON(data []byte) error

type Hypervisor added in v0.2.4

type Hypervisor struct {
	Uuid     string         `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
	Hostname string         `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"`
	Active   bool           `protobuf:"varint,3,opt,name=active,proto3" json:"active,omitempty"` // is allowed to start new droplets
	Cpus     int64          `protobuf:"varint,4,opt,name=cpus,proto3" json:"cpus,omitempty"`
	Memory   int64          `protobuf:"varint,5,opt,name=memory,proto3" json:"memory,omitempty"` // in bytes
	Comment  string         `protobuf:"bytes,6,opt,name=comment,proto3" json:"comment,omitempty"`
	Autoscan bool           `protobuf:"varint,7,opt,name=autoscan,proto3" json:"autoscan,omitempty"` // to scan or not to scan by virtigo
	Arch     HypervisorArch `protobuf:"varint,8,opt,name=arch,proto3,enum=virtbuf.HypervisorArch" json:"arch,omitempty"`
	// contains filtered or unexported fields
}

func CreateSampleHypervisor added in v0.2.4

func CreateSampleHypervisor(hostname string, mem int) *Hypervisor

func (*Hypervisor) Descriptor deprecated added in v0.2.4

func (*Hypervisor) Descriptor() ([]byte, []int)

Deprecated: Use Hypervisor.ProtoReflect.Descriptor instead.

func (*Hypervisor) GetActive added in v0.2.4

func (x *Hypervisor) GetActive() bool

func (*Hypervisor) GetArch added in v0.2.4

func (x *Hypervisor) GetArch() HypervisorArch

func (*Hypervisor) GetAutoscan added in v0.2.4

func (x *Hypervisor) GetAutoscan() bool

func (*Hypervisor) GetComment added in v0.2.4

func (x *Hypervisor) GetComment() string

func (*Hypervisor) GetCpus added in v0.2.4

func (x *Hypervisor) GetCpus() int64

func (*Hypervisor) GetHostname added in v0.2.4

func (x *Hypervisor) GetHostname() string

func (*Hypervisor) GetMemory added in v0.2.4

func (x *Hypervisor) GetMemory() int64

func (*Hypervisor) GetUuid added in v0.2.4

func (x *Hypervisor) GetUuid() string

func (*Hypervisor) ProtoMessage added in v0.2.4

func (*Hypervisor) ProtoMessage()

func (*Hypervisor) ProtoReflect added in v0.2.4

func (x *Hypervisor) ProtoReflect() protoreflect.Message

func (*Hypervisor) Reset added in v0.2.4

func (x *Hypervisor) Reset()

func (*Hypervisor) SetMemoryGB added in v0.2.4

func (x *Hypervisor) SetMemoryGB(gb int)

func (*Hypervisor) String added in v0.2.4

func (x *Hypervisor) String() string

type HypervisorArch added in v0.2.4

type HypervisorArch int32

think about this more

const (
	HypervisorArch_RISCV64 HypervisorArch = 0
	HypervisorArch_X86_64  HypervisorArch = 1
	HypervisorArch_ARM64   HypervisorArch = 2
)

func (HypervisorArch) Descriptor added in v0.2.4

func (HypervisorArch) Enum added in v0.2.4

func (x HypervisorArch) Enum() *HypervisorArch

func (HypervisorArch) EnumDescriptor deprecated added in v0.2.4

func (HypervisorArch) EnumDescriptor() ([]byte, []int)

Deprecated: Use HypervisorArch.Descriptor instead.

func (HypervisorArch) Number added in v0.2.4

func (HypervisorArch) String added in v0.2.4

func (x HypervisorArch) String() string

func (HypervisorArch) Type added in v0.2.4

type Hypervisors added in v0.2.4

type Hypervisors struct {
	Uuid        string        `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`       // I guess why not just have this on each file
	Version     string        `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // maybe can be used for protobuf schema change violations
	Hypervisors []*Hypervisor `protobuf:"bytes,3,rep,name=hypervisors,proto3" json:"hypervisors,omitempty"`
	// contains filtered or unexported fields
}

func (*Hypervisors) Descriptor deprecated added in v0.2.4

func (*Hypervisors) Descriptor() ([]byte, []int)

Deprecated: Use Hypervisors.ProtoReflect.Descriptor instead.

func (*Hypervisors) FormatJSON added in v0.2.4

func (h *Hypervisors) FormatJSON() string

func (*Hypervisors) GetHypervisors added in v0.2.4

func (x *Hypervisors) GetHypervisors() []*Hypervisor

func (*Hypervisors) GetUuid added in v0.2.4

func (x *Hypervisors) GetUuid() string

func (*Hypervisors) GetVersion added in v0.2.4

func (x *Hypervisors) GetVersion() string

func (*Hypervisors) ProtoMessage added in v0.2.4

func (*Hypervisors) ProtoMessage()

func (*Hypervisors) ProtoReflect added in v0.2.4

func (x *Hypervisors) ProtoReflect() protoreflect.Message

func (*Hypervisors) Reset added in v0.2.4

func (x *Hypervisors) Reset()

func (*Hypervisors) String added in v0.2.4

func (x *Hypervisors) String() string

type Network added in v0.2.4

type Network struct {
	Mac  string `protobuf:"bytes,1,opt,name=mac,proto3" json:"mac,omitempty"`
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

func (*Network) Descriptor deprecated added in v0.2.4

func (*Network) Descriptor() ([]byte, []int)

Deprecated: Use Network.ProtoReflect.Descriptor instead.

func (*Network) GetMac added in v0.2.4

func (x *Network) GetMac() string

func (*Network) GetName added in v0.2.4

func (x *Network) GetName() string

func (*Network) ProtoMessage added in v0.2.4

func (*Network) ProtoMessage()

func (*Network) ProtoReflect added in v0.2.4

func (x *Network) ProtoReflect() protoreflect.Message

func (*Network) Reset added in v0.2.4

func (x *Network) Reset()

func (*Network) String added in v0.2.4

func (x *Network) String() string

type WhatInfo added in v0.2.4

type WhatInfo struct {
	Capacity int64 `protobuf:"varint,1,opt,name=capacity,proto3" json:"capacity,omitempty"` // Stores the storage capacity in bytes.
	// contains filtered or unexported fields
}

this is for exerimenting

func (*WhatInfo) Descriptor deprecated added in v0.2.4

func (*WhatInfo) Descriptor() ([]byte, []int)

Deprecated: Use WhatInfo.ProtoReflect.Descriptor instead.

func (WhatInfo) FormatJSON added in v0.2.4

func (s WhatInfo) FormatJSON() string

func (*WhatInfo) GetCapacity added in v0.2.4

func (x *WhatInfo) GetCapacity() int64

func (WhatInfo) MarshalJSON added in v0.2.4

func (s WhatInfo) MarshalJSON() ([]byte, error)

MarshalJSON custom marshals the WhatInfo struct to JSON

func (*WhatInfo) ProtoMessage added in v0.2.4

func (*WhatInfo) ProtoMessage()

func (*WhatInfo) ProtoReflect added in v0.2.4

func (x *WhatInfo) ProtoReflect() protoreflect.Message

func (*WhatInfo) Reset added in v0.2.4

func (x *WhatInfo) Reset()

func (*WhatInfo) String added in v0.2.4

func (x *WhatInfo) String() string

func (*WhatInfo) UnmarshalJSON added in v0.2.4

func (s *WhatInfo) UnmarshalJSON(data []byte) error

UnmarshalJSON custom unmarshals JSON into the WhatInfo struct

type WhatsThis added in v0.2.4

type WhatsThis struct {

	// is it possible to have custom formatting in JSON and TEXT marshal/unmarshal ?
	Humantest *WhatInfo              `protobuf:"bytes,1,opt,name=humantest,proto3" json:"humantest,omitempty"`
	End       *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"`                        // end time
	OrigVal   *anypb.Any             `protobuf:"bytes,3,opt,name=orig_val,json=origVal,proto3" json:"orig_val,omitempty"` // original value
	NewVal    *anypb.Any             `protobuf:"bytes,4,opt,name=new_val,json=newVal,proto3" json:"new_val,omitempty"`    // new value
	// contains filtered or unexported fields
}

func CreateExperiment added in v0.2.4

func CreateExperiment(total int) *WhatsThis

func (*WhatsThis) Descriptor deprecated added in v0.2.4

func (*WhatsThis) Descriptor() ([]byte, []int)

Deprecated: Use WhatsThis.ProtoReflect.Descriptor instead.

func (*WhatsThis) GetEnd added in v0.2.4

func (x *WhatsThis) GetEnd() *timestamppb.Timestamp

func (*WhatsThis) GetHumantest added in v0.2.4

func (x *WhatsThis) GetHumantest() *WhatInfo

func (*WhatsThis) GetNewVal added in v0.2.4

func (x *WhatsThis) GetNewVal() *anypb.Any

func (*WhatsThis) GetOrigVal added in v0.2.4

func (x *WhatsThis) GetOrigVal() *anypb.Any

func (*WhatsThis) ProtoMessage added in v0.2.4

func (*WhatsThis) ProtoMessage()

func (*WhatsThis) ProtoReflect added in v0.2.4

func (x *WhatsThis) ProtoReflect() protoreflect.Message

func (*WhatsThis) Reset added in v0.2.4

func (x *WhatsThis) Reset()

func (*WhatsThis) String added in v0.2.4

func (x *WhatsThis) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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