Documentation ¶
Overview ¶
Package admin is a convenience layer to support the administration of rbd volumes, snapshots, scheduling etc that is outside of the C api for librbd.
Unlike the rbd package this API does not map to APIs provided by ceph libraries themselves. This API is not yet stable and is subject to change.
Index ¶
- Variables
- type ImageSpec
- type Interval
- type LevelSpec
- type MirrorSnashotScheduleAdmin
- func (mss *MirrorSnashotScheduleAdmin) Add(l LevelSpec, i Interval, s StartTime) error
- func (mss *MirrorSnashotScheduleAdmin) List(l LevelSpec) ([]SnapshotSchedule, error)
- func (mss *MirrorSnashotScheduleAdmin) Remove(l LevelSpec, i Interval, s StartTime) error
- func (mss *MirrorSnashotScheduleAdmin) Status(l LevelSpec) ([]ScheduledImage, error)
- type RBDAdmin
- type ScheduleTerm
- type ScheduleTime
- type ScheduledImage
- type SnapshotSchedule
- type StartTime
- type TaskAdmin
- func (ta *TaskAdmin) AddFlatten(img ImageSpec) (TaskResponse, error)
- func (ta *TaskAdmin) AddRemove(img ImageSpec) (TaskResponse, error)
- func (ta *TaskAdmin) AddTrashRemove(img ImageSpec) (TaskResponse, error)
- func (ta *TaskAdmin) Cancel(taskID string) (TaskResponse, error)
- func (ta *TaskAdmin) GetTaskByID(taskID string) (TaskResponse, error)
- func (ta *TaskAdmin) List() ([]TaskResponse, error)
- type TaskRefs
- type TaskResponse
Constants ¶
This section is empty.
Variables ¶
var ( // NoInterval indicates no specific interval. NoInterval = Interval("") // NoStartTime indicates no specific start time. NoStartTime = StartTime("") )
Functions ¶
This section is empty.
Types ¶
type ImageSpec ¶ added in v0.13.0
type ImageSpec struct {
// contains filtered or unexported fields
}
ImageSpec values are used to identify an RBD image wherever Ceph APIs require an image_spec/image_id_spec using image name/id and optional pool and namespace.
func NewImageSpec ¶ added in v0.13.0
NewImageSpec is used to construct an ImageSpec given an image name/id and optional namespace and pool names.
NewImageSpec constructs an ImageSpec to identify an RBD image and thus requires image name/id, whereas NewLevelSpec constructs LevelSpec to identify entire pool, pool namespace or single RBD image, all of which requires pool name.
func NewRawImageSpec ¶ added in v0.13.0
NewRawImageSpec returns a ImageSpec directly based on the spec string argument without constructing it from component values.
This should only be used if NewImageSpec can not create the imagespec value you want to pass to ceph.
type Interval ¶
type Interval string
Interval of time between scheduled snapshots. Typically in the form <num><m,h,d>. Exact content supported is defined internally on the ceph mgr.
type LevelSpec ¶
type LevelSpec struct {
// contains filtered or unexported fields
}
LevelSpec values are used to identify RBD objects wherever Ceph APIs require a levelspec to select an image, pool, or namespace.
func NewLevelSpec ¶
NewLevelSpec is used to construct a LevelSpec given a pool and optional namespace and image names.
func NewRawLevelSpec ¶
NewRawLevelSpec returns a LevelSpec directly based on the spec string argument without constructing it from component values. This should only be used if NewLevelSpec can not create the levelspec value you want to pass to ceph.
type MirrorSnashotScheduleAdmin ¶
type MirrorSnashotScheduleAdmin struct {
// contains filtered or unexported fields
}
MirrorSnashotScheduleAdmin encapsulates management functions for ceph rbd mirror snapshot schedules.
func (*MirrorSnashotScheduleAdmin) Add ¶
func (mss *MirrorSnashotScheduleAdmin) Add(l LevelSpec, i Interval, s StartTime) error
Add a new snapshot schedule to the given pool/image based on the supplied level spec.
Similar To:
rbd mirror snapshot schedule add <level_spec> <interval> <start_time>
func (*MirrorSnashotScheduleAdmin) List ¶
func (mss *MirrorSnashotScheduleAdmin) List(l LevelSpec) ([]SnapshotSchedule, error)
List the snapshot schedules based on the supplied level spec.
Similar To:
rbd mirror snapshot schedule list <level_spec>
func (*MirrorSnashotScheduleAdmin) Remove ¶
func (mss *MirrorSnashotScheduleAdmin) Remove( l LevelSpec, i Interval, s StartTime) error
Remove a snapshot schedule matching the supplied arguments.
Similar To:
rbd mirror snapshot schedule remove <level_spec> <interval> <start_time>
func (*MirrorSnashotScheduleAdmin) Status ¶
func (mss *MirrorSnashotScheduleAdmin) Status(l LevelSpec) ([]ScheduledImage, error)
Status returns the status of the snapshot (eg. when it will next take place) matching the supplied level spec.
Similar To:
rbd mirror snapshot schedule status <level_spec>
type RBDAdmin ¶
type RBDAdmin struct {
// contains filtered or unexported fields
}
RBDAdmin is used to administrate rbd volumes and pools.
func NewFromConn ¶
func NewFromConn(conn ccom.RadosCommander) *RBDAdmin
NewFromConn creates an new management object from a preexisting rados connection. The existing connection can be rados.Conn or any type implementing the RadosCommander interface.
func (*RBDAdmin) MirrorSnashotSchedule ¶
func (ra *RBDAdmin) MirrorSnashotSchedule() *MirrorSnashotScheduleAdmin
MirrorSnashotSchedule returns a MirrorSnashotScheduleAdmin type for managing ceph rbd mirror snapshot schedules.
type ScheduleTerm ¶
type ScheduleTerm struct { Interval Interval `json:"interval"` StartTime StartTime `json:"start_time"` }
ScheduleTerm represents the interval and start time component of a snapshot schedule.
type ScheduledImage ¶
type ScheduledImage struct { Image string `json:"image"` ScheduleTime ScheduleTime `json:"schedule_time"` }
ScheduledImage contains the item scheduled and when it will next occur.
type SnapshotSchedule ¶
type SnapshotSchedule struct { Name string LevelSpecID string Schedule []ScheduleTerm }
SnapshotSchedule contains values representing an entire snapshot schedule for an image or pool.
type StartTime ¶
type StartTime string
StartTime is the time the snapshot schedule begins. Exact content supported is defined internally on the ceph mgr.
type TaskAdmin ¶ added in v0.13.0
type TaskAdmin struct {
// contains filtered or unexported fields
}
TaskAdmin encapsulates management functions for ceph rbd task operations.
func (*TaskAdmin) AddFlatten ¶ added in v0.13.0
func (ta *TaskAdmin) AddFlatten(img ImageSpec) (TaskResponse, error)
AddFlatten adds a background task to flatten a cloned image based on the supplied image spec.
Similar To:
rbd task add flatten <image_spec>
func (*TaskAdmin) AddRemove ¶ added in v0.13.0
func (ta *TaskAdmin) AddRemove(img ImageSpec) (TaskResponse, error)
AddRemove adds a background task to remove an image based on the supplied image spec.
Similar To:
rbd task add remove <image_spec>
func (*TaskAdmin) AddTrashRemove ¶ added in v0.13.0
func (ta *TaskAdmin) AddTrashRemove(img ImageSpec) (TaskResponse, error)
AddTrashRemove adds a background task to remove an image from the trash based on the supplied image id spec.
Similar To:
rbd task add trash remove <image_id_spec>
func (*TaskAdmin) Cancel ¶ added in v0.13.0
func (ta *TaskAdmin) Cancel(taskID string) (TaskResponse, error)
Cancel a pending or running asynchronous task.
Similar To:
rbd task cancel <task_id>
func (*TaskAdmin) GetTaskByID ¶ added in v0.13.0
func (ta *TaskAdmin) GetTaskByID(taskID string) (TaskResponse, error)
GetTaskByID returns pending or running asynchronous task using id.
Similar To:
rbd task list <task_id>
func (*TaskAdmin) List ¶ added in v0.13.0
func (ta *TaskAdmin) List() ([]TaskResponse, error)
List pending or running asynchronous tasks.
Similar To:
rbd task list
type TaskRefs ¶ added in v0.13.0
type TaskRefs struct { Action string `json:"action"` PoolName string `json:"pool_name"` PoolNamespace string `json:"pool_namespace"` ImageName string `json:"image_name"` ImageID string `json:"image_id"` }
TaskRefs contains the action name and information about the image.
type TaskResponse ¶ added in v0.13.0
type TaskResponse struct { Sequence int `json:"sequence"` ID string `json:"id"` Message string `json:"message"` Refs TaskRefs `json:"refs"` InProgress bool `json:"in_progress"` Progress float64 `json:"progress"` RetryAttempts int `json:"retry_attempts"` RetryTime string `json:"retry_time"` RetryMessage string `json:"retry_message"` }
TaskResponse contains the information about the task added on an image.