Documentation ¶
Index ¶
- Constants
- Variables
- func Routes(config Config, r *mux.Router) *mux.Router
- type Config
- type Context
- type CreateImageRequest
- type CreateServerRequest
- type ErrorImage
- type HTTPErrorData
- type HTTPReturnErrorCode
- type Handler
- type PrivateAddresses
- type RequestedVolume
- type Response
- type Server
- type ServerDetails
- type Servers
- type Service
Constants ¶
const ( // PoolsV1 is the content-type string for v1 of our pools resource PoolsV1 = "x.ciao.pools.v1" // ExternalIPsV1 is the content-type string for v1 of our external-ips resource ExternalIPsV1 = "x.ciao.external-ips.v1" // WorkloadsV1 is the content-type string for v1 of our workloads resource WorkloadsV1 = "x.ciao.workloads.v1" // TenantsV1 is the content-type string for v1 of our tenants resource TenantsV1 = "x.ciao.tenants.v1" // NodeV1 is the content-type string for v1 of our node resource NodeV1 = "x.ciao.node.v1" // ImagesV1 is the content-type string for v1 of our images resource ImagesV1 = "x.ciao.images.v1" // VolumesV1 is the content-type string for v1 of our volumes resource VolumesV1 = "x.ciao.volumes.v1" // InstancesV1 is the content-type string for v1 of our intances resource InstancesV1 = "x.ciao.instances.v1" )
const Port = 8889
Port is the default port number for the ciao API.
Variables ¶
var ( // ErrNoImage is returned when an image is not found. ErrNoImage = errors.New("Image not found") // ErrImageSaving is returned when an image is being uploaded. ErrImageSaving = errors.New("Image being uploaded") // ErrBadUUID is returned when an invalid UUID is specified ErrBadUUID = errors.New("Bad UUID") // ErrAlreadyExists is returned when an attempt is made to add // an image with a UUID that already exists. ErrAlreadyExists = errors.New("Already Exists") // ErrQuota is returned when the tenant exceeds its quota ErrQuota = errors.New("Tenant over quota") )
var ( //ErrInstanceNotFound is used if instance not found ErrInstanceNotFound = errors.New("Instance not found") // ErrVolumeNotAvailable returned if volume not available ErrVolumeNotAvailable = errors.New("Volume not available") // ErrVolumeOwner returned if permission denied ErrVolumeOwner = errors.New("You are not volume owner") // ErrVolumeNotAttached returned if volume not attached ErrVolumeNotAttached = errors.New("Volume not attached") )
Functions ¶
Types ¶
type CreateImageRequest ¶
type CreateImageRequest struct { Name string `json:"name,omitempty"` ID string `json:"id,omitempty"` Visibility types.Visibility `json:"visibility,omitempty"` }
CreateImageRequest contains information for a create image request.
type CreateServerRequest ¶
type CreateServerRequest struct { Server struct { ID string `json:"id"` Name string `json:"name"` Image string `json:"imageRef"` WorkloadID string `json:"workload_id"` MaxInstances int `json:"max_count"` MinInstances int `json:"min_count"` Metadata map[string]string `json:"metadata,omitempty"` } `json:"server"` }
CreateServerRequest contains the details needed to start new instance(s)
type HTTPErrorData ¶
type HTTPErrorData struct { Code int `json:"code"` Name string `json:"name"` Message string `json:"message"` }
HTTPErrorData represents the HTTP response body for a compute API request error.
type HTTPReturnErrorCode ¶
type HTTPReturnErrorCode struct {
Error HTTPErrorData `json:"error"`
}
HTTPReturnErrorCode represents the unmarshalled version for Return codes when a API call is made and you need to return explicit data of the call as OpenStack format http://developer.openstack.org/api-guide/compute/faults.html
type Handler ¶
type Handler struct { *Context Handler func(*Context, http.ResponseWriter, *http.Request) (Response, error) Privileged bool }
Handler is a custom handler for the compute APIs. This custom handler allows us to more cleanly return an error and response, and pass some package level context into the handler.
type PrivateAddresses ¶
PrivateAddresses contains information about a single instance network interface.
type RequestedVolume ¶
type RequestedVolume struct { Size int `json:"size"` SourceVolID string `json:"source_volid,omitempty"` Description string `json:"description,omitempty"` Name string `json:"name,omitempty"` ImageRef string `json:"imageRef,omitempty"` Internal bool `json:"-"` }
RequestedVolume contains information about a volume to be created.
type Response ¶
type Response struct {
// contains filtered or unexported fields
}
Response contains the http status and any response struct to be marshalled.
type Server ¶
type Server struct {
Server ServerDetails `json:"server"`
}
Server holds a single server's worth of details.
type ServerDetails ¶
type ServerDetails struct { PrivateAddresses []PrivateAddresses `json:"private_addresses"` Created time.Time `json:"created"` WorkloadID string `json:"workload_id"` NodeID string `json:"node_id"` ID string `json:"id"` Name string `json:"name"` Volumes []string `json:"volumes"` Status string `json:"status"` TenantID string `json:"tenant_id"` SSHIP string `json:"ssh_ip"` SSHPort int `json:"ssh_port"` }
ServerDetails contains information about a specific instance.
type Servers ¶
type Servers struct { TotalServers int `json:"total_servers"` Servers []ServerDetails `json:"servers"` }
Servers holds multiple servers including a count
type Service ¶
type Service interface { AddPool(name string, subnet *string, ips []string) (types.Pool, error) ListPools() ([]types.Pool, error) ShowPool(id string) (types.Pool, error) DeletePool(id string) error AddAddress(poolID string, subnet *string, IPs []string) error RemoveAddress(poolID string, subnetID *string, IPID *string) error ListMappedAddresses(tenantID *string) []types.MappedIP MapAddress(tenantID string, poolName *string, instanceID string) error UnMapAddress(ID string) error CreateWorkload(req types.Workload) (types.Workload, error) DeleteWorkload(tenantID string, workloadID string) error ShowWorkload(tenantID string, workloadID string) (types.Workload, error) ListWorkloads(tenantID string) ([]types.Workload, error) ListQuotas(tenantID string) []types.QuotaDetails UpdateQuotas(tenantID string, qds []types.QuotaDetails) error EvacuateNode(nodeID string) error RestoreNode(nodeID string) error ListTenants() ([]types.TenantSummary, error) ShowTenant(ID string) (types.TenantConfig, error) PatchTenant(ID string, patch []byte) error CreateTenant(ID string, config types.TenantConfig) (types.TenantSummary, error) DeleteTenant(ID string) error CreateImage(string, CreateImageRequest) (types.Image, error) UploadImage(string, string, io.Reader) error ListImages(string) ([]types.Image, error) GetImage(string, string) (types.Image, error) DeleteImage(string, string) error CreateVolume(tenant string, req RequestedVolume) (types.Volume, error) DeleteVolume(tenant string, volume string) error AttachVolume(tenant string, volume string, instance string, mountpoint string) error DetachVolume(tenant string, volume string, attachment string) error ListVolumesDetail(tenant string) ([]types.Volume, error) ShowVolumeDetails(tenant string, volume string) (types.Volume, error) CreateServer(string, CreateServerRequest) (interface{}, error) ListServersDetail(tenant string) ([]ServerDetails, error) ShowServerDetails(tenant string, server string) (Server, error) DeleteServer(tenant string, server string) error StartServer(tenant string, server string) error StopServer(tenant string, server string) error }
Service is an interface which must be implemented by the ciao API context.