gce

package
v0.0.0-...-5c0e9a1 Latest Latest
Warning

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

Go to latest
Published: Feb 2, 2015 License: Apache-2.0 Imports: 36 Imported by: 0

Documentation

Overview

Package gce provides tools to deploy Camlistore on Google Compute Engine.

Index

Constants

View Source
const (

	// default instance configuration values.
	// TODO(mpl): they can probably be lowercased now that handler.go is in the same
	// package. Just need to verify camdeploy does not need them.
	InstanceName = "camlistore-server"
	Machine      = "g1-small"
	Zone         = "us-central1-a"

	ConsoleURL        = "https://console.developers.google.com"
	HelpCreateProject = "Go to " + ConsoleURL + " to create a new Google Cloud project"
	HelpEnableAPIs    = `` /* 192-byte string literal not displayed */

	HelpManageSSHKeys   = `` /* 175-byte string literal not displayed */
	HelpManageHTTPCreds = `` /* 232-byte string literal not displayed */
)

Variables

View Source
var (

	// DevHandler: if true, use HTTP instead of HTTPS, force permissions prompt for OAuth,
	// do not actually create an instance. It has no effect if set after NewHandler is
	// called.
	DevHandler bool
)
View Source
var Verbose bool

Verbose enables more info to be printed.

Functions

func NewDeployHandler

func NewDeployHandler(host string, prefix string) (http.Handler, error)

NewDeployHandler initializes a DeployHandler that serves at https://host/prefix/ and returns it. A Google account client ID should be set in CAMLI_GCE_CLIENTID with its corresponding client secret in CAMLI_GCE_CLIENTSECRET.

func NewOAuthConfig

func NewOAuthConfig(clientID, clientSecret string) *oauth2.Config

NewOAuthConfig returns an OAuth configuration template.

Types

type DeployHandler

type DeployHandler struct {
	*log.Logger
	// contains filtered or unexported fields
}

DeployHandler serves a wizard that helps with the deployment of Camlistore on Google Compute Engine. It must be initialized with NewDeployHandler.

func (*DeployHandler) AddTemplateTheme

func (h *DeployHandler) AddTemplateTheme(text string) error

AddTemplateTheme allows to enhance the aesthetics of the default template. To that effect, text can provide the template definitions for "header", "banner", "toplinks", and "footer".

func (*DeployHandler) ServeHTTP

func (h *DeployHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (*DeployHandler) SetLogger

func (h *DeployHandler) SetLogger(logger *log.Logger)

type Deployer

type Deployer struct {
	Cl   *http.Client
	Conf *InstanceConf
	// contains filtered or unexported fields
}

Deployer creates and starts an instance such as defined in Conf.

func (*Deployer) Create

func (d *Deployer) Create(ctx *context.Context) (*compute.Instance, error)

Create sets up and starts a Google Compute Engine instance as defined in d.Conf. It creates the necessary Google Storage buckets beforehand.

func (*Deployer) Get

func (d *Deployer) Get() (*compute.Instance, error)

Get returns the Instance corresponding to the Project, Zone, and Name defined in the Deployer's Conf.

type InstanceConf

type InstanceConf struct {
	Name     string // Name given to the virtual machine instance.
	Project  string // Google project ID where the instance is created.
	Machine  string // Machine type.
	Zone     string // Geographic zone.
	SSHPub   string // SSH public key.
	CertFile string // HTTPS certificate file.
	KeyFile  string // HTTPS key file.
	Hostname string // Fully qualified domain name.
	Password string // Camlistore HTTP basic auth password. Defaults to project ID.

	Ctime time.Time // Timestamp for this configuration.
	// contains filtered or unexported fields
}

InstanceConf is the configuration for the Google Compute Engine instance that will be deployed.

type TemplateData

type TemplateData struct {
	Title             string
	Help              map[string]template.HTML // help bits within the form.
	Hints             []string                 // helping hints printed in case of an error.
	Defaults          map[string]string        // defaults values for the form fields.
	Err               error
	Prefix            string // handler prefix.
	InstanceKey       string // instance creation identifier, for the JS code to regularly poll for progress.
	Piggygif          string // URI to the piggy gif for progress animation.
	Project           string // Project name provided by the user.
	Hostname          string // FQDN provided by the user.
	InstanceIP        string // instance IP address that we display after successful creation.
	CertFingerprint   string // SHA-256 fingerprint of the self-signed HTTPS certificate.
	ProjectConsoleURL string
	Password          string // password provided by user. defaults to project ID.
	ZoneValues        []string
	MachineValues     []string
	Zone              string
}

TemplateData is the data passed for templates of tplHTML.

Directories

Path Synopsis
This program is a wrapper around the gce deploy handler, to help with debugging it.
This program is a wrapper around the gce deploy handler, to help with debugging it.

Jump to

Keyboard shortcuts

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