Documentation

Overview

    Package model contains datastore model definitions.

    Index

    Constants

    View Source
    const ConfigKind = "Config"

      ConfigKind is a config entity's kind in the datastore.

      View Source
      const ProjectKind = "Project"

        ProjectKind is a project entity's kind in the datastore.

        View Source
        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 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,noindex"`
          	// 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,noindex"`
              	// 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"`
                	// Configured is the Unix time when the GCE instance was configured.
                	Configured 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"`
                	// 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"`
                	// 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() *compute.Instance

                    GetInstance returns a *compute.Instance representation of this VM.

                    func (*VM) IndexAttributes

                    func (vm *VM) IndexAttributes()

                      IndexAttributes sets indexable fields of vm.Attributes in AttributesIndexed.

                      Source Files