 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Overview ¶
@author Couchbase <info@couchbase.com> @copyright 2015 Couchbase, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
@author Couchbase <info@couchbase.com> @copyright 2015 Couchbase, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Constants
- Variables
- func RegisterManager(mgr Manager, errorPolicy revrpc.BabysitErrorPolicy) error
- type AutofailoverManager
- type Cancel
- type CancelTaskReq
- type DefragmentedUtilizationInfo
- type DefragmentedUtilizationReply
- type GetCurrentTopologyReq
- type GetTaskListReq
- type HealthInfo
- type HibernationManager
- type Manager
- type NodeID
- type NodeInfo
- type PauseParams
- type Priority
- type RecoveryType
- type ResumeParams
- type Revision
- type ServerlessManager
- type Task
- type TaskList
- type TaskStatus
- type TaskType
- type Topology
- type TopologyChange
- type TopologyChangeType
- type Void
Constants ¶
const ( TaskTypeRebalance = TaskType("task-rebalance") TaskTypePrepared = TaskType("task-prepared") TaskTypeBucketPause = TaskType("task-pause-bucket") TaskTypeBucketResume = TaskType("task-resume-bucket") )
const ( TaskStatusRunning = TaskStatus("task-running") TaskStatusFailed = TaskStatus("task-failed") TaskStatusCannotResume = TaskStatus("task-status-cannot-resume") )
const ( RecoveryTypeFull = RecoveryType("recovery-full") RecoveryTypeDelta = RecoveryType("recovery-delta") )
const ( TopologyChangeTypeRebalance = TopologyChangeType("topology-change-rebalance") TopologyChangeTypeFailover = TopologyChangeType("topology-change-failover") )
Variables ¶
Functions ¶
func RegisterManager ¶
func RegisterManager(mgr Manager, errorPolicy revrpc.BabysitErrorPolicy) error
Types ¶
type AutofailoverManager ¶
type AutofailoverManager interface {
	// returns HealthInfo if the service considers itself overall
	// healthy and error otherwise
	HealthCheck() (*HealthInfo, error)
	// returns nil if the auto failover is safe from the service
	// perspective for the NodeID's passed, and error otherwise
	IsSafe(nodeUUIDs []NodeID) error
}
    type CancelTaskReq ¶
type DefragmentedUtilizationInfo ¶ added in v0.1.3
type DefragmentedUtilizationReply ¶ added in v0.1.3
type DefragmentedUtilizationReply struct {
	Info *DefragmentedUtilizationInfo
}
    For some strange reason golang jsonrpc doesn't allow to return any marshallable type except struct. So we have to wrap map returned by the service into structure to deal with this peculiarity.
type GetCurrentTopologyReq ¶
type GetTaskListReq ¶
type HealthInfo ¶
type HealthInfo struct {
	// number of the disk failures encountered since the
	// start of the service executable
	DiskFailures int `json:"diskFailures"`
}
    type HibernationManager ¶ added in v0.1.4
type HibernationManager interface {
	PreparePause(params PauseParams) error
	Pause(params PauseParams) error
	PrepareResume(params ResumeParams) error
	Resume(params ResumeParams) error
}
    type Manager ¶
type Manager interface {
	GetNodeInfo() (*NodeInfo, error)
	Shutdown() error
	GetTaskList(rev Revision, cancel Cancel) (*TaskList, error)
	CancelTask(id string, rev Revision) error
	GetCurrentTopology(rev Revision, cancel Cancel) (*Topology, error)
	PrepareTopologyChange(change TopologyChange) error
	StartTopologyChange(change TopologyChange) error
}
    type PauseParams ¶ added in v0.1.4
type RecoveryType ¶
type RecoveryType string
type ResumeParams ¶ added in v0.1.4
type ServerlessManager ¶ added in v0.1.3
type ServerlessManager interface {
	// returns projected utilization stats if the service would
	// be defragmented
	GetDefragmentedUtilization() (*DefragmentedUtilizationInfo, error)
}
    type Task ¶
type Task struct {
	Rev Revision `json:"rev"`
	ID           string     `json:"id"`
	Type         TaskType   `json:"type"`
	Status       TaskStatus `json:"status"`
	IsCancelable bool       `json:"isCancelable"`
	Progress         float64            `json:"progress"`
	DetailedProgress map[NodeID]float64 `json:"detailedProgress,omitempty"`
	Description  string `json:"description,omitempty"`
	ErrorMessage string `json:"errorMessage,omitempty"`
	Extra map[string]interface{} `json:"extra"`
}
    type TaskStatus ¶
type TaskStatus string
type TopologyChange ¶
type TopologyChange struct {
	ID                 string   `json:"id"`
	CurrentTopologyRev Revision `json:"currentTopologyRev"`
	Type TopologyChangeType `json:"type"`
	KeepNodes []struct {
		NodeInfo     NodeInfo     `json:"nodeInfo"`
		RecoveryType RecoveryType `json:"recoveryType"`
	} `json:"keepNodes"`
	EjectNodes []NodeInfo `json:"ejectNodes"`
}
    type TopologyChangeType ¶
type TopologyChangeType string