Documentation
¶
Overview ¶
Package model contains datastore model definitions.
Index ¶
Constants ¶
const ConfigKind = "Config"
ConfigKind is a config entity's kind in the datastore.
const ProjectKind = "Project"
ProjectKind is a project entity's kind in the datastore.
const VMKind = "VM"
VMKind is a VM entity's kind in the datastore.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ComputeInstance ¶
type ComputeInstance struct {
Stable *compute.Instance
Alpha *computealpha.Instance
}
A ComputeInstance is a struct containing either a Stable or an Alpha compute instance. Certain features require the use of the alpha GCP APIs.
In a valid ComputeInstance instance, exactly one of the fields will be non-nil.
type Config ¶
type Config struct {
// ID is the unique identifier for this config.
ID string `gae:"$id"`
// Config is the config.Config representation of this entity.
// Indexing is not useful here since this field contains textproto.
// Additionally, indexed string fields are limited to 1500 bytes.
// https://cloud.google.com/datastore/docs/concepts/limits.
// noindex is not respected here. See config.Config.ToProperty.
Config *config.Config `gae:"binary_config,legacy"`
// contains filtered or unexported fields
}
Config is a root entity representing a config for one type of VMs. VM entities should be created for each config entity.
type NetworkInterface ¶
type NetworkInterface struct {
// ExternalIP is an external network address assigned to a GCE instance.
// GCE currently supports at most one external IP address per network
// interface.
ExternalIP string
// Internal is an internal network address assigned to a GCE instance.
InternalIP string
}
NetworkInterface is a network interface attached to a GCE instance.
type Project ¶
type Project struct {
// ID is the unique identifier for this project.
ID string `gae:"$id"`
// Config is the projects.Config representation of this entity.
// noindex is not respected here. See projects.Config.ToProperty.
Config *projects.Config `gae:"binary_config,legacy"`
// contains filtered or unexported fields
}
Project is a root entity representing a GCP project. GCE quota utilization is reported for each metric in each region.
type VM ¶
type VM struct {
// ID is the unique identifier for this VM.
ID string `gae:"$id"`
// Attributes is the config.VM describing the GCE instance to create.
// Indexing is not useful here since this field contains textproto.
// noindex is not respected here. See config.VM.ToProperty.
Attributes config.VM `gae:"binary_attributes,noindex"`
// AttributesIndexed is a slice of strings in "key:value" form where the key is
// the path to a field in Attributes and the value is its associated value.
// Allows fields from Attributes to be indexed.
AttributesIndexed []string `gae:"attributes_indexed"`
// Config is the ID of the config this VM was created from.
Config string `gae:"config"`
// ConfigExpanded is the Unix time when the GCE instance was configured, i.e.
// the time we expand user config and decide to create the VM.
ConfigExpanded int64 `gae:"configured"`
// Connected is the Unix time when the GCE instance connected to Swarming.
Connected int64 `gae:"connected"`
// Created is the Unix time when the GCE instance was created.
Created int64 `gae:"created"`
// Drained indicates whether or not this VM is drained.
// A GCE instance should not be created for a drained VM.
// Any existing GCE instance should be deleted regardless of deadline.
Drained bool `gae:"drained"`
// DUT is the name of the matched lab DUT.
// Optional if the VM is not linked to a DUT.
DUT string `gae:"dut"`
// Hostname is the short hostname of the GCE instance to create.
Hostname string `gae:"hostname"`
// Image is the source image for the boot disk of the GCE instance.
Image string `gae:"image"`
// Index is this VM's number with respect to its config.
Index int32 `gae:"index"`
// Lifetime is the number of seconds the GCE instance should live for.
Lifetime int64 `gae:"lifetime"`
// NetworkInterfaces is a slice of network interfaces attached to this created
// GCE instance. Empty if the instance is not yet created.
NetworkInterfaces []NetworkInterface `gae:"network_interfaces"`
// Prefix is the prefix to use when naming the GCE instance.
Prefix string `gae:"prefix"`
// ScalingType is how the pool size is scaled.
ScalingType string `gae:"scaling_type"`
// Revision is the config revision this VM was created from.
Revision string `gae:"revision"`
// Swarming is hostname of the Swarming server the GCE instance connects to.
Swarming string `gae:"swarming"`
// Timeout is the number of seconds the GCE instance has to connect to Swarming.
Timeout int64 `gae:"timeout"`
// URL is the URL of the created GCE instance.
URL string `gae:"url"`
// contains filtered or unexported fields
}
VM is a root entity representing a configured VM. GCE instances should be created for each VM entity.
func (*VM) GetInstance ¶
func (vm *VM) GetInstance() ComputeInstance
GetInstance returns a ComputeInstance representation of this VM.
func (*VM) IndexAttributes ¶
func (vm *VM) IndexAttributes()
IndexAttributes sets indexable fields of vm.Attributes in AttributesIndexed.