flocker

package
v1.1.4-beta.0 Latest Latest
Warning

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

Go to latest
Published: Dec 7, 2015 License: Apache-2.0 Imports: 10 Imported by: 0

README

flocker-go

circleci

flocker-go implements the package flocker that will let you easily interact with a Flocker Control Service.

What can it do?

You can check the package documentation here: https://godoc.org/github.com/ClusterHQ/flocker-go

TODO

  • Define a proper interface flockerClientable with all the needed methods for wrapping the Flocker API.

Documentation

Overview

flocker package allows you to easily interact with a Flocker Control Service.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	*http.Client
	// contains filtered or unexported fields
}

Client is a default Flocker Client.

func NewClient

func NewClient(host string, port int, clientIP string, caCertPath, keyPath, certPath string) (*Client, error)

NewClient creates a wrapper over http.Client to communicate with the flocker control service.

func (Client) CreateDataset

func (c Client) CreateDataset(metaName string) (*DatasetState, error)

CreateDataset creates a volume in Flocker, waits for it to be ready and returns the dataset id.

This process is a little bit complex but follows this flow:

1. Find the Flocker Control Service UUID 2. Try to create the dataset 3. If it already exists an error is returned 4. If it didn't previously exist, wait for it to be ready

func (Client) GetDatasetID

func (c Client) GetDatasetID(metaName string) (datasetID string, err error)

GetDatasetID will return the DatasetID found for the given metadata name.

func (Client) GetDatasetState

func (c Client) GetDatasetState(datasetID string) (*DatasetState, error)

GetDatasetState performs a get request to get the state of the given datasetID, if something goes wrong or the datasetID was not found it returns an error.

func (Client) GetPrimaryUUID

func (c Client) GetPrimaryUUID() (uuid string, err error)

GetPrimaryUUID returns the UUID of the primary Flocker Control Service for the given host.

func (Client) UpdatePrimaryForDataset

func (c Client) UpdatePrimaryForDataset(newPrimaryUUID, datasetID string) (*DatasetState, error)

UpdatePrimaryForDataset will update the Primary for the given dataset returning the current DatasetState.

type Clientable

type Clientable interface {
	CreateDataset(metaName string) (*DatasetState, error)

	GetDatasetState(datasetID string) (*DatasetState, error)
	GetDatasetID(metaName string) (datasetID string, err error)
	GetPrimaryUUID() (primaryUUID string, err error)

	UpdatePrimaryForDataset(primaryUUID, datasetID string) (*DatasetState, error)
}

Clientable exposes the needed methods to implement your own Flocker Client.

type DatasetState

type DatasetState struct {
	Path        string      `json:"path"`
	DatasetID   string      `json:"dataset_id"`
	Primary     string      `json:"primary,omitempty"`
	MaximumSize json.Number `json:"maximum_size,omitempty"`
}

Jump to

Keyboard shortcuts

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