gcecloudprovider

package
v0.5.0-rc1 Latest Latest
Warning

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

Go to latest
Published: May 29, 2019 License: Apache-2.0 Imports: 25 Imported by: 3

Documentation

Index

Constants

View Source
const (
	// Zonal key type.
	Zonal = "zonal"
	// Regional key type.
	Regional = "regional"
	// Global key type.
	Global = "global"
)
View Source
const (
	DiskSizeGb = 10
	Timestamp  = "2018-09-05T15:17:08.270-07:00"
	BasePath   = "https://www.googleapis.com/compute/v1/projects/"
)
View Source
const (
	TokenURL = "https://accounts.google.com/o/oauth2/token"

	GCEComputeAPIEndpoint     = "https://www.googleapis.com/compute/v1/"
	GCEComputeBetaAPIEndpoint = "https://www.googleapis.com/compute/beta/"
)

Variables

This section is empty.

Functions

func IsGCEError

func IsGCEError(err error, reason string) bool

isGCEError returns true if given error is a googleapi.Error with given reason (e.g. "resourceInUseByAnotherResource")

func NewAltTokenSource added in v0.5.0

func NewAltTokenSource(tokenURL, tokenBody string) oauth2.TokenSource

NewAltTokenSource constructs a new alternate token source for generating tokens.

Types

type AltTokenSource added in v0.5.0

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

AltTokenSource is the structure holding the data for the functionality needed to generates tokens

func (*AltTokenSource) Token added in v0.5.0

func (a *AltTokenSource) Token() (*oauth2.Token, error)

Token returns a token which may be used for authentication

type CloudDisk

type CloudDisk struct {
	ZonalDisk    *compute.Disk
	RegionalDisk *computebeta.Disk
}

func RegionalCloudDisk

func RegionalCloudDisk(disk *computebeta.Disk) *CloudDisk

func ZonalCloudDisk

func ZonalCloudDisk(disk *compute.Disk) *CloudDisk

func (*CloudDisk) GetKind

func (d *CloudDisk) GetKind() string

func (*CloudDisk) GetName

func (d *CloudDisk) GetName() string
func (d *CloudDisk) GetSelfLink() string

func (*CloudDisk) GetSizeGb

func (d *CloudDisk) GetSizeGb() int64

func (*CloudDisk) GetSnapshotId added in v0.3.0

func (d *CloudDisk) GetSnapshotId() string

func (*CloudDisk) GetType

func (d *CloudDisk) GetType() string

func (*CloudDisk) GetUsers

func (d *CloudDisk) GetUsers() []string

func (*CloudDisk) GetZone

func (d *CloudDisk) GetZone() string

func (*CloudDisk) Type

func (d *CloudDisk) Type() CloudDiskType

type CloudDiskType

type CloudDiskType string

type CloudProvider

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

func CreateCloudProvider

func CreateCloudProvider(vendorVersion string, configPath string) (*CloudProvider, error)

func (*CloudProvider) AttachDisk

func (cloud *CloudProvider) AttachDisk(ctx context.Context, volKey *meta.Key, readWrite, diskType, instanceZone, instanceName string) error

func (*CloudProvider) CreateSnapshot

func (cloud *CloudProvider) CreateSnapshot(ctx context.Context, volKey *meta.Key, snapshotName string) (*compute.Snapshot, error)

func (*CloudProvider) DeleteDisk

func (cloud *CloudProvider) DeleteDisk(ctx context.Context, volKey *meta.Key) error

func (*CloudProvider) DeleteSnapshot

func (cloud *CloudProvider) DeleteSnapshot(ctx context.Context, snapshotName string) error

func (*CloudProvider) DetachDisk

func (cloud *CloudProvider) DetachDisk(ctx context.Context, deviceName, instanceZone, instanceName string) error

func (*CloudProvider) GetDisk

func (cloud *CloudProvider) GetDisk(ctx context.Context, key *meta.Key) (*CloudDisk, error)

func (*CloudProvider) GetDiskSourceURI

func (cloud *CloudProvider) GetDiskSourceURI(volKey *meta.Key) string

func (*CloudProvider) GetDiskTypeURI

func (cloud *CloudProvider) GetDiskTypeURI(volKey *meta.Key, diskType string) string

func (*CloudProvider) GetInstanceOrError

func (cloud *CloudProvider) GetInstanceOrError(ctx context.Context, instanceZone, instanceName string) (*compute.Instance, error)

func (*CloudProvider) GetReplicaZoneURI

func (cloud *CloudProvider) GetReplicaZoneURI(zone string) string

func (*CloudProvider) GetSnapshot

func (cloud *CloudProvider) GetSnapshot(ctx context.Context, snapshotName string) (*compute.Snapshot, error)

func (*CloudProvider) InsertDisk

func (cloud *CloudProvider) InsertDisk(ctx context.Context, volKey *meta.Key, diskType string, capBytes int64, capacityRange *csi.CapacityRange, replicaZones []string, snapshotId, diskEncryptionKmsKey string) error

func (*CloudProvider) ListSnapshots

func (cloud *CloudProvider) ListSnapshots(ctx context.Context, filter string, maxEntries int64, pageToken string) ([]*compute.Snapshot, string, error)

func (*CloudProvider) ListZones

func (cloud *CloudProvider) ListZones(ctx context.Context, region string) ([]string, error)

func (*CloudProvider) RepairUnderspecifiedVolumeKey

func (cloud *CloudProvider) RepairUnderspecifiedVolumeKey(ctx context.Context, volumeKey *meta.Key) (*meta.Key, error)

RepairUnderspecifiedVolumeKey will query the cloud provider and check each zone for the disk specified by the volume key and return a volume key with a correct zone

func (*CloudProvider) ValidateExistingDisk

func (cloud *CloudProvider) ValidateExistingDisk(ctx context.Context, resp *CloudDisk, diskType string, reqBytes, limBytes int64) error

func (*CloudProvider) WaitForAttach

func (cloud *CloudProvider) WaitForAttach(ctx context.Context, volKey *meta.Key, instanceZone, instanceName string) error

type ConfigFile added in v0.5.0

type ConfigFile struct {
	Global ConfigGlobal `gcfg:"global"`
}

type ConfigGlobal added in v0.5.0

type ConfigGlobal struct {
	TokenURL  string `gcfg:"token-url"`
	TokenBody string `gcfg:"token-body"`
	ProjectId string `gcfg:"project-id"`
}

type FakeCloudProvider

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

func FakeCreateCloudProvider

func FakeCreateCloudProvider(project, zone string, cloudDisks []*CloudDisk) (*FakeCloudProvider, error)

func (*FakeCloudProvider) AttachDisk

func (cloud *FakeCloudProvider) AttachDisk(ctx context.Context, volKey *meta.Key, readWrite, diskType, instanceZone, instanceName string) error

func (*FakeCloudProvider) CreateSnapshot

func (cloud *FakeCloudProvider) CreateSnapshot(ctx context.Context, volKey *meta.Key, snapshotName string) (*compute.Snapshot, error)

func (*FakeCloudProvider) DeleteDisk

func (cloud *FakeCloudProvider) DeleteDisk(ctx context.Context, volKey *meta.Key) error

func (*FakeCloudProvider) DeleteSnapshot

func (cloud *FakeCloudProvider) DeleteSnapshot(ctx context.Context, snapshotName string) error

Snapshot Methods

func (*FakeCloudProvider) DetachDisk

func (cloud *FakeCloudProvider) DetachDisk(ctx context.Context, deviceName, instanceZone, instanceName string) error

func (*FakeCloudProvider) GetDisk

func (cloud *FakeCloudProvider) GetDisk(ctx context.Context, volKey *meta.Key) (*CloudDisk, error)

Disk Methods

func (*FakeCloudProvider) GetDiskSourceURI

func (cloud *FakeCloudProvider) GetDiskSourceURI(volKey *meta.Key) string

func (*FakeCloudProvider) GetDiskTypeURI

func (cloud *FakeCloudProvider) GetDiskTypeURI(volKey *meta.Key, diskType string) string

func (*FakeCloudProvider) GetInstanceOrError

func (cloud *FakeCloudProvider) GetInstanceOrError(ctx context.Context, instanceZone, instanceName string) (*compute.Instance, error)

func (*FakeCloudProvider) GetReplicaZoneURI

func (cloud *FakeCloudProvider) GetReplicaZoneURI(zone string) string

Regional Disk Methods

func (*FakeCloudProvider) GetSnapshot

func (cloud *FakeCloudProvider) GetSnapshot(ctx context.Context, snapshotName string) (*compute.Snapshot, error)

Snapshot Methods

func (*FakeCloudProvider) InsertDisk

func (cloud *FakeCloudProvider) InsertDisk(ctx context.Context, volKey *meta.Key, diskType string, capBytes int64, capacityRange *csi.CapacityRange, replicaZones []string, snapshotId, diskEncryptionKmsKey string) error

func (*FakeCloudProvider) InsertInstance

func (cloud *FakeCloudProvider) InsertInstance(instance *compute.Instance, instanceZone, instanceName string)

Instance Methods

func (*FakeCloudProvider) ListSnapshots

func (cloud *FakeCloudProvider) ListSnapshots(ctx context.Context, filter string, maxEntries int64, pageToken string) ([]*compute.Snapshot, string, error)

func (*FakeCloudProvider) ListZones

func (cloud *FakeCloudProvider) ListZones(ctx context.Context, region string) ([]string, error)

func (*FakeCloudProvider) RepairUnderspecifiedVolumeKey

func (cloud *FakeCloudProvider) RepairUnderspecifiedVolumeKey(ctx context.Context, volumeKey *meta.Key) (*meta.Key, error)

func (*FakeCloudProvider) ValidateExistingDisk

func (cloud *FakeCloudProvider) ValidateExistingDisk(ctx context.Context, resp *CloudDisk, diskType string, reqBytes, limBytes int64) error

func (*FakeCloudProvider) ValidateExistingSnapshot

func (cloud *FakeCloudProvider) ValidateExistingSnapshot(resp *compute.Snapshot, volKey *meta.Key) error

func (*FakeCloudProvider) WaitForAttach

func (cloud *FakeCloudProvider) WaitForAttach(ctx context.Context, volKey *meta.Key, instanceZone, instanceName string) error

type GCECompute

type GCECompute interface {
	// Disk Methods
	GetDisk(ctx context.Context, volumeKey *meta.Key) (*CloudDisk, error)
	RepairUnderspecifiedVolumeKey(ctx context.Context, volumeKey *meta.Key) (*meta.Key, error)
	ValidateExistingDisk(ctx context.Context, disk *CloudDisk, diskType string, reqBytes, limBytes int64) error
	InsertDisk(ctx context.Context, volKey *meta.Key, diskType string, capBytes int64, capacityRange *csi.CapacityRange, replicaZones []string, snapshotId, diskEncryptionKmsKey string) error
	DeleteDisk(ctx context.Context, volumeKey *meta.Key) error
	AttachDisk(ctx context.Context, volKey *meta.Key, readWrite, diskType, instanceZone, instanceName string) error
	DetachDisk(ctx context.Context, deviceName string, instanceZone, instanceName string) error
	GetDiskSourceURI(volKey *meta.Key) string
	GetDiskTypeURI(volKey *meta.Key, diskType string) string
	WaitForAttach(ctx context.Context, volKey *meta.Key, instanceZone, instanceName string) error
	// Regional Disk Methods
	GetReplicaZoneURI(zone string) string
	// Instance Methods
	GetInstanceOrError(ctx context.Context, instanceZone, instanceName string) (*compute.Instance, error)
	// Zone Methods
	ListZones(ctx context.Context, region string) ([]string, error)
	ListSnapshots(ctx context.Context, filter string, maxEntries int64, pageToken string) ([]*compute.Snapshot, string, error)
	GetSnapshot(ctx context.Context, snapshotName string) (*compute.Snapshot, error)
	CreateSnapshot(ctx context.Context, volKey *meta.Key, snapshotName string) (*compute.Snapshot, error)
	DeleteSnapshot(ctx context.Context, snapshotName string) error
}

Jump to

Keyboard shortcuts

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