1
// Copyright 2014 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
7
"google.golang.org/api/compute/v1"
11
NewRawConnection = &newRawConnection
13
NewInstanceRaw = newInstance
14
PackMetadata = packMetadata
15
UnpackMetadata = unpackMetadata
16
FormatMachineType = formatMachineType
17
FirewallSpec = firewallSpec
18
ExtractAddresses = extractAddresses
21
func SetRawConn(conn *Connection, raw rawConnectionWrapper) {
25
func ExposeRawService(conn *Connection) *compute.Service {
26
return conn.raw.(*rawConn).Service
29
func NewAttached(spec DiskSpec) *compute.AttachedDisk {
30
return spec.newAttached()
33
func NewDetached(spec DiskSpec) (*compute.Disk, error) {
34
return spec.newDetached()
37
func NewAvailabilityZone(zone *compute.Zone) AvailabilityZone {
38
return AvailabilityZone{zone: zone}
41
func GetInstanceSpec(inst *Instance) *InstanceSpec {
45
// TODO(ericsnow) Elimiinate this.
46
func SetInstanceSpec(inst *Instance, spec *InstanceSpec) {
50
func NewNetInterface(spec NetworkSpec, name string) *compute.NetworkInterface {
51
return spec.newInterface(name)
54
func InstanceSpecRaw(spec InstanceSpec) *compute.Instance {
58
func ConnAddInstance(conn *Connection, inst *compute.Instance, mtype string, zones []string) error {
59
return conn.addInstance(inst, mtype, zones)
62
func ConnRemoveInstance(conn *Connection, id, zone string) error {
63
return conn.removeInstance(id, zone)