Back to

Package scyllaclient

Latest Go to latest

The latest major version is .

Published: Jul 21, 2020 | License: Apache-2.0 | Module:



const (
	LocalStrategy           = "org.apache.cassandra.locator.LocalStrategy"
	SimpleStrategy          = "org.apache.cassandra.locator.SimpleStrategy"
	NetworkTopologyStrategy = "org.apache.cassandra.locator.NetworkTopologyStrategy"

Replication strategies

const (
	Murmur3Partitioner = "org.apache.cassandra.dht.Murmur3Partitioner"


func DefaultTransport

func DefaultTransport() *http.Transport

func Interactive

func Interactive(ctx context.Context) context.Context

Interactive context means that it should be processed fast without too much useless waiting.

func StatusCodeOf

func StatusCodeOf(err error) int

StatusCodeOf returns HTTP status code carried by the error or it's cause. If not status can be found it returns 0.

type BackoffConfig

type BackoffConfig struct {
	WaitMin    time.Duration
	WaitMax    time.Duration
	MaxRetries uint64
	Multiplier float64
	Jitter     float64

BackoffConfig specifies request exponential backoff parameters.

type Client

type Client struct {
	// contains filtered or unexported fields

func NewClient

func NewClient(config Config, logger log.Logger) (*Client, error)

func (*Client) Decommission

func (c *Client) Decommission(ctx context.Context, host string) error

func (*Client) HostDatacenter

func (c *Client) HostDatacenter(ctx context.Context, host string) (dc string, err error)

HostDatacenter looks up the datacenter that the given host belongs to.

func (*Client) OperationMode

func (c *Client) OperationMode(ctx context.Context, host string) (OperationalMode, error)

func (*Client) Status

func (c *Client) Status(ctx context.Context, host string) (NodeStatusInfoSlice, error)

type CommandStatus

type CommandStatus string

CommandStatus specifies a result of a command

const (
	CommandRunning    CommandStatus = "RUNNING"
	CommandSuccessful CommandStatus = "SUCCESSFUL"
	CommandFailed     CommandStatus = "FAILED"

Command statuses

type Config

type Config struct {
	// Hosts specifies all the cluster hosts that for a pool of hosts for the
	// client.
	Hosts []string
	// Port specifies the default Scylla Manager agent port.
	Port string
	// Transport scheme HTTP or HTTPS.
	Scheme string
	// AuthToken specifies the authentication token.
	AuthToken string `yaml:"auth_token"`
	// Timeout specifies time to complete a single request to Scylla REST API
	// possibly including opening a TCP connection.
	Timeout time.Duration `yaml:"timeout"`
	// PoolDecayDuration specifies size of time window to measure average
	// request time in Epsilon-Greedy host pool.
	Backoff BackoffConfig
	// InteractiveBackoff specifies backoff for interactive requests i.e.
	// originating from API / sctool.
	InteractiveBackoff BackoffConfig
	// How many seconds to wait for the job to finish before returning
	// the info response.
	LongPollingSeconds int64
	PoolDecayDuration  time.Duration
	// Transport allows for setting a custom round tripper to send HTTP
	// requests over not standard connections i.e. over SSH tunnel.
	Transport http.RoundTripper

Config specifies the Client configuration.

func DefaultConfig

func DefaultConfig() Config

DefaultConfig returns a Config initialized with default values.

func (Config) Validate

func (c Config) Validate() error

Validate checks if all the fields are properly set.

type NodeState

type NodeState string

NodeState represents nodetool State=Normal/Leaving/Joining/Moving

const (
	NodeStateNormal  NodeState = ""
	NodeStateLeaving NodeState = "LEAVING"
	NodeStateJoining NodeState = "JOINING"
	NodeStateMoving  NodeState = "MOVING"

NodeState enumeration

func (NodeState) String

func (s NodeState) String() string

type NodeStatus

type NodeStatus bool

NodeStatus represents nodetool Status=Up/Down.

const (
	NodeStatusUp   NodeStatus = true
	NodeStatusDown NodeStatus = false

NodeStatus enumeration

func (NodeStatus) String

func (s NodeStatus) String() string

type NodeStatusInfo

type NodeStatusInfo struct {
	Datacenter string
	HostID     string
	Addr       string
	Status     NodeStatus
	State      NodeState

NodeStatusInfo represents a nodetool status line.

func (NodeStatusInfo) IsUN

func (s NodeStatusInfo) IsUN() bool

IsUN returns true if host is Up and NORMAL meaning it's a fully functional live node.

func (NodeStatusInfo) String

func (s NodeStatusInfo) String() string

type NodeStatusInfoSlice

type NodeStatusInfoSlice []NodeStatusInfo

NodeStatusInfoSlice adds functionality to Status response.

func (NodeStatusInfoSlice) Datacenter

func (s NodeStatusInfoSlice) Datacenter(dcs []string) NodeStatusInfoSlice

Datacenter resturns sub slice containing only nodes from given datacenters.

func (NodeStatusInfoSlice) DownHosts

func (s NodeStatusInfoSlice) DownHosts() []string

DownHosts returns slice of address of nodes that are down.

func (NodeStatusInfoSlice) Hosts

func (s NodeStatusInfoSlice) Hosts() []string

Hosts returns slice of address of all nodes.

func (NodeStatusInfoSlice) LiveHosts

func (s NodeStatusInfoSlice) LiveHosts() []string

LiveHosts returns slice of address of nodes in UN state.

type OperationalMode

type OperationalMode string
const (
	OperationalModeClient         OperationalMode = "CLIENT"
	OperationalModeDecommissioned OperationalMode = "DECOMMISSIONED"
	OperationalModeJoining        OperationalMode = "JOINING"
	OperationalModeLeaving        OperationalMode = "LEAVING"
	OperationalModeNormal         OperationalMode = "NORMAL"
	OperationalModeUnknown        OperationalMode = "UNKNOWN"

func (OperationalMode) IsDecommisioned

func (o OperationalMode) IsDecommisioned() bool

func (OperationalMode) String

func (o OperationalMode) String() string

type ReplicationStrategy

type ReplicationStrategy string

ReplicationStrategy specifies type of a keyspace replication strategy.

type Ring

type Ring struct {
	Tokens      []TokenRange
	HostDC      map[string]string
	Replication ReplicationStrategy

Ring describes token ring of a keyspace.

func (Ring) Datacenters

func (r Ring) Datacenters() []string

Datacenters returs a list of datacenters the keyspace is replicated in.

type ScyllaFeatures

type ScyllaFeatures struct {
	RowLevelRepair bool

ScyllaFeatures specifies features supported by the Scylla version.

type TokenRange

type TokenRange struct {
	StartToken int64
	EndToken   int64
	Replicas   []string

TokenRange describes replicas of a token (range).

type Unit

type Unit struct {
	Keyspace string
	Tables   []string

Unit describes keyspace and some tables in that keyspace.

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier