server

package
v0.0.0-...-d9a8df2 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2016 License: Apache-2.0 Imports: 70 Imported by: 0

Documentation

Overview

Package server is a generated protocol buffer package.

It is generated from these files:
	cockroach/server/admin.proto

It has these top-level messages:
	DatabasesRequest
	DatabasesResponse
	DatabaseDetailsRequest
	DatabaseDetailsResponse
	TableDetailsRequest
	TableDetailsResponse
	UsersRequest
	UsersResponse
	EventsRequest
	EventsResponse
	SetUIDataRequest
	SetUIDataResponse
	GetUIDataRequest
	GetUIDataResponse

Package server is a reverse proxy.

It translates gRPC into RESTful JSON APIs.

Package server implements the Cockroach storage node. A node corresponds to a single instance of the cockroach binary, running on a single physical machine, which exports the "Node" Go RPC service. Each node multiplexes RPC requests to one or more stores, associated with physical storage devices.

Package server also provides access to administrative tools via the command line and also through a REST API.

Index

Constants

View Source
const (
	// TestUser is a fixed user used in unittests.
	// It has valid embedded client certs.
	TestUser = "testuser"
)

Variables

View Source
var (
	ErrInvalidLengthAdmin = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowAdmin   = fmt.Errorf("proto: integer overflow")
)

Functions

func ExpectedInitialRangeCount

func ExpectedInitialRangeCount() int

ExpectedInitialRangeCount returns the expected number of ranges that should be on the server after initial (asynchronous) splits have been completed, assuming no additional information is added outside of the normal bootstrap process.

func GetBootstrapSchema

func GetBootstrapSchema() sql.MetadataSchema

GetBootstrapSchema returns the schema which will be used to bootstrap a new server.

func GetTotalMemory

func GetTotalMemory() (int64, error)

GetTotalMemory returns either the total system memory or if possible the cgroups available memory.

func PathForNodeStatus

func PathForNodeStatus(nodeID string) string

PathForNodeStatus returns the path needed to issue a GET request for node status. If passed an empty nodeID, this returns the path to GET status for all nodes.

func RegisterAdminHandler

func RegisterAdminHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error

RegisterAdminHandler registers the http handlers for service Admin to "mux". The handlers forward requests to the grpc endpoint over "conn".

func RegisterAdminHandlerFromEndpoint

func RegisterAdminHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)

RegisterAdminHandlerFromEndpoint is same as RegisterAdminHandler but automatically dials to "endpoint" and closes the connection when "ctx" gets done.

func RegisterAdminServer

func RegisterAdminServer(s *grpc.Server, srv AdminServer)

Types

type AdminClient

type AdminClient interface {
	// URL: /_admin/v1/users
	Users(ctx context.Context, in *UsersRequest, opts ...grpc.CallOption) (*UsersResponse, error)
	// URL: /_admin/v1/databases
	Databases(ctx context.Context, in *DatabasesRequest, opts ...grpc.CallOption) (*DatabasesResponse, error)
	// Example URL: /_admin/v1/databases/system
	DatabaseDetails(ctx context.Context, in *DatabaseDetailsRequest, opts ...grpc.CallOption) (*DatabaseDetailsResponse, error)
	// Example URL: /_admin/v1/databases/system/tables/ui
	TableDetails(ctx context.Context, in *TableDetailsRequest, opts ...grpc.CallOption) (*TableDetailsResponse, error)
	// Example URLs:
	// - /_admin/v1/events?type=create_table
	// - /_admin/v1/events?type=drop_table&target_id=4
	// - /_admin/v1/events
	Events(ctx context.Context, in *EventsRequest, opts ...grpc.CallOption) (*EventsResponse, error)
	// This requires a POST. Because of the libraries we're using, the POST body
	// must be in the following format:
	//
	// {"key": "KEY GOES HERE", "value": "BASE64-ENCODED VALUE GOES HERE"}
	//
	// Note that "key" and "value" are both quoted strings. value must be base64-
	// encoded, because it may be binary. All of these JSON style decisions
	// have been forced by the underlying libraries.
	SetUIData(ctx context.Context, in *SetUIDataRequest, opts ...grpc.CallOption) (*SetUIDataResponse, error)
	// Example URL: /_admin/v1/uidata?key=MYKEY
	GetUIData(ctx context.Context, in *GetUIDataRequest, opts ...grpc.CallOption) (*GetUIDataResponse, error)
}

func NewAdminClient

func NewAdminClient(cc *grpc.ClientConn) AdminClient

type AdminServer

type AdminServer interface {
	// URL: /_admin/v1/users
	Users(context.Context, *UsersRequest) (*UsersResponse, error)
	// URL: /_admin/v1/databases
	Databases(context.Context, *DatabasesRequest) (*DatabasesResponse, error)
	// Example URL: /_admin/v1/databases/system
	DatabaseDetails(context.Context, *DatabaseDetailsRequest) (*DatabaseDetailsResponse, error)
	// Example URL: /_admin/v1/databases/system/tables/ui
	TableDetails(context.Context, *TableDetailsRequest) (*TableDetailsResponse, error)
	// Example URLs:
	// - /_admin/v1/events?type=create_table
	// - /_admin/v1/events?type=drop_table&target_id=4
	// - /_admin/v1/events
	Events(context.Context, *EventsRequest) (*EventsResponse, error)
	// This requires a POST. Because of the libraries we're using, the POST body
	// must be in the following format:
	//
	// {"key": "KEY GOES HERE", "value": "BASE64-ENCODED VALUE GOES HERE"}
	//
	// Note that "key" and "value" are both quoted strings. value must be base64-
	// encoded, because it may be binary. All of these JSON style decisions
	// have been forced by the underlying libraries.
	SetUIData(context.Context, *SetUIDataRequest) (*SetUIDataResponse, error)
	// Example URL: /_admin/v1/uidata?key=MYKEY
	GetUIData(context.Context, *GetUIDataRequest) (*GetUIDataResponse, error)
}

type Context

type Context struct {
	// Embed the base context.
	base.Context

	// Addr is the host:port to bind.
	Addr string

	// HTTPAddr is the host:port to bind for HTTP requests. This is temporary,
	// and will be removed when grpc.(*Server).ServeHTTP performance problems are
	// addressed upstream. See https://github.com/grpc/grpc-go/issues/586.
	HTTPAddr string

	// Stores is specified to enable durable key-value storage.
	Stores StoreSpecList

	// Attrs specifies a colon-separated list of node topography or machine
	// capabilities, used to match capabilities or location preferences specified
	// in zone configs.
	Attrs string

	// JoinUsing is a comma-separated list of node addresses that
	// act as bootstrap hosts for connecting to the gossip network.
	JoinUsing string

	// CacheSize is the amount of memory in bytes to use for caching data.
	// The value is split evenly between the stores if there are more than one.
	CacheSize int64

	// MemtableBudget is the amount of memory, per store, in bytes to use for
	// the memory table.
	// This value is no longer settable by the end user.
	MemtableBudget int64

	// Engines is the storage instances specified by Stores.
	Engines []engine.Engine

	// NodeAttributes is the parsed representation of Attrs.
	NodeAttributes roachpb.Attributes

	// GossipBootstrapResolvers is a list of gossip resolvers used
	// to find bootstrap nodes for connecting to the gossip network.
	GossipBootstrapResolvers []resolver.Resolver

	// Enables linearizable behaviour of operations on this node by making sure
	// that no commit timestamp is reported back to the client until all other
	// node clocks have necessarily passed it.
	// Environment Variable: COCKROACH_LINEARIZABLE
	Linearizable bool

	// Maximum clock offset for the cluster.
	// Environment Variable: COCKROACH_MAX_OFFSET
	MaxOffset time.Duration

	// MetricsFrequency determines the frequency at which the server should
	// record internal metrics.
	// Environment Variable: COCKROACH_METRICS_FREQUENCY
	MetricsFrequency time.Duration

	// ScanInterval determines a duration during which each range should be
	// visited approximately once by the range scanner.
	// Environment Variable: COCKROACH_SCAN_INTERVAL
	ScanInterval time.Duration

	// ScanMaxIdleTime is the maximum time the scanner will be idle between ranges.
	// If enabled (> 0), the scanner may complete in less than ScanInterval for small
	// stores.
	// Environment Variable: COCKROACH_SCAN_MAX_IDLE_TIME
	ScanMaxIdleTime time.Duration

	// ConsistencyCheckInterval
	ConsistencyCheckInterval time.Duration

	// TimeUntilStoreDead is the time after which if there is no new gossiped
	// information about a store, it is considered dead.
	// Environment Variable: COCKROACH_TIME_UNTIL_STORE_DEAD
	TimeUntilStoreDead time.Duration

	// TestingKnobs is used for internal test controls only.
	TestingKnobs TestingKnobs
}

Context holds parameters needed to setup a server. Calling "cli".initFlags(ctx *Context) will initialize Context using command flags. Keep in sync with "cli/flags.go".

func NewContext

func NewContext() *Context

NewContext returns a Context with default values.

func NewTestContext

func NewTestContext() *Context

NewTestContext returns a context for testing. It overrides the Certs with the test certs directory. We need to override the certs loader.

func (*Context) AdminURL

func (ctx *Context) AdminURL() string

AdminURL returns the URL for the admin UI.

func (*Context) InitDefaults

func (ctx *Context) InitDefaults()

InitDefaults sets up the default values for a Context.

Note: This method should only perform simple initialization of fields because it is called very early in the lifetime of a cockroach process at which point we do not know if we are initializing a server or using the cli. Do not call any functions which could log or error. In fact, it is best if you don't call any other functions at all.

func (*Context) InitNode

func (ctx *Context) InitNode() error

InitNode parses node attributes and initializes the gossip bootstrap resolvers.

func (*Context) InitStores

func (ctx *Context) InitStores(stopper *stop.Stopper) error

InitStores initializes ctx.Engines based on ctx.Stores.

func (*Context) PGURL

func (ctx *Context) PGURL(user string) *url.URL

PGURL returns the URL for the postgres endpoint.

type DatabaseDetailsRequest

type DatabaseDetailsRequest struct {
	// database is the name of the database we are querying.
	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
}

DatabaseDetailsRequest requests detailed information about the specified database

func (*DatabaseDetailsRequest) Descriptor

func (*DatabaseDetailsRequest) Descriptor() ([]byte, []int)

func (*DatabaseDetailsRequest) Marshal

func (m *DatabaseDetailsRequest) Marshal() (data []byte, err error)

func (*DatabaseDetailsRequest) MarshalTo

func (m *DatabaseDetailsRequest) MarshalTo(data []byte) (int, error)

func (*DatabaseDetailsRequest) ProtoMessage

func (*DatabaseDetailsRequest) ProtoMessage()

func (*DatabaseDetailsRequest) Reset

func (m *DatabaseDetailsRequest) Reset()

func (*DatabaseDetailsRequest) Size

func (m *DatabaseDetailsRequest) Size() (n int)

func (*DatabaseDetailsRequest) String

func (m *DatabaseDetailsRequest) String() string

func (*DatabaseDetailsRequest) Unmarshal

func (m *DatabaseDetailsRequest) Unmarshal(data []byte) error

type DatabaseDetailsResponse

type DatabaseDetailsResponse struct {
	// grants are the results of SHOW GRANTS for this database.
	Grants []*DatabaseDetailsResponse_Grant `protobuf:"bytes,1,rep,name=grants" json:"grants,omitempty"`
	// table_names contains the names of all tables (SHOW TABLES) in this
	// database.
	TableNames []string `protobuf:"bytes,2,rep,name=table_names,json=tableNames" json:"table_names,omitempty"`
}

DatabaseDetailsResponse contains grant information and table names for a database.

func (*DatabaseDetailsResponse) Descriptor

func (*DatabaseDetailsResponse) Descriptor() ([]byte, []int)

func (*DatabaseDetailsResponse) Marshal

func (m *DatabaseDetailsResponse) Marshal() (data []byte, err error)

func (*DatabaseDetailsResponse) MarshalTo

func (m *DatabaseDetailsResponse) MarshalTo(data []byte) (int, error)

func (*DatabaseDetailsResponse) ProtoMessage

func (*DatabaseDetailsResponse) ProtoMessage()

func (*DatabaseDetailsResponse) Reset

func (m *DatabaseDetailsResponse) Reset()

func (*DatabaseDetailsResponse) Size

func (m *DatabaseDetailsResponse) Size() (n int)

func (*DatabaseDetailsResponse) String

func (m *DatabaseDetailsResponse) String() string

func (*DatabaseDetailsResponse) Unmarshal

func (m *DatabaseDetailsResponse) Unmarshal(data []byte) error

type DatabaseDetailsResponse_Grant

type DatabaseDetailsResponse_Grant struct {
	// user is the user that this grant applies to.
	User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
	// privileges are the abilities this grant gives to the user.
	Privileges []string `protobuf:"bytes,2,rep,name=privileges" json:"privileges,omitempty"`
}

func (*DatabaseDetailsResponse_Grant) Descriptor

func (*DatabaseDetailsResponse_Grant) Descriptor() ([]byte, []int)

func (*DatabaseDetailsResponse_Grant) Marshal

func (m *DatabaseDetailsResponse_Grant) Marshal() (data []byte, err error)

func (*DatabaseDetailsResponse_Grant) MarshalTo

func (m *DatabaseDetailsResponse_Grant) MarshalTo(data []byte) (int, error)

func (*DatabaseDetailsResponse_Grant) ProtoMessage

func (*DatabaseDetailsResponse_Grant) ProtoMessage()

func (*DatabaseDetailsResponse_Grant) Reset

func (m *DatabaseDetailsResponse_Grant) Reset()

func (*DatabaseDetailsResponse_Grant) Size

func (m *DatabaseDetailsResponse_Grant) Size() (n int)

func (*DatabaseDetailsResponse_Grant) String

func (*DatabaseDetailsResponse_Grant) Unmarshal

func (m *DatabaseDetailsResponse_Grant) Unmarshal(data []byte) error

type DatabasesRequest

type DatabasesRequest struct {
}

DatabasesRequest requests a list of databases.

func (*DatabasesRequest) Descriptor

func (*DatabasesRequest) Descriptor() ([]byte, []int)

func (*DatabasesRequest) Marshal

func (m *DatabasesRequest) Marshal() (data []byte, err error)

func (*DatabasesRequest) MarshalTo

func (m *DatabasesRequest) MarshalTo(data []byte) (int, error)

func (*DatabasesRequest) ProtoMessage

func (*DatabasesRequest) ProtoMessage()

func (*DatabasesRequest) Reset

func (m *DatabasesRequest) Reset()

func (*DatabasesRequest) Size

func (m *DatabasesRequest) Size() (n int)

func (*DatabasesRequest) String

func (m *DatabasesRequest) String() string

func (*DatabasesRequest) Unmarshal

func (m *DatabasesRequest) Unmarshal(data []byte) error

type DatabasesResponse

type DatabasesResponse struct {
	Databases []string `protobuf:"bytes,1,rep,name=databases" json:"databases,omitempty"`
}

DatabasesResponse contains a list of databases.

func (*DatabasesResponse) Descriptor

func (*DatabasesResponse) Descriptor() ([]byte, []int)

func (*DatabasesResponse) Marshal

func (m *DatabasesResponse) Marshal() (data []byte, err error)

func (*DatabasesResponse) MarshalTo

func (m *DatabasesResponse) MarshalTo(data []byte) (int, error)

func (*DatabasesResponse) ProtoMessage

func (*DatabasesResponse) ProtoMessage()

func (*DatabasesResponse) Reset

func (m *DatabasesResponse) Reset()

func (*DatabasesResponse) Size

func (m *DatabasesResponse) Size() (n int)

func (*DatabasesResponse) String

func (m *DatabasesResponse) String() string

func (*DatabasesResponse) Unmarshal

func (m *DatabasesResponse) Unmarshal(data []byte) error

type EventsRequest

type EventsRequest struct {
	Type     string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	TargetId int64  `protobuf:"varint,2,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"`
}

EventsRequest is a request for event log entries, optionally filtered by the specified event type and/or target_id.

func (*EventsRequest) Descriptor

func (*EventsRequest) Descriptor() ([]byte, []int)

func (*EventsRequest) Marshal

func (m *EventsRequest) Marshal() (data []byte, err error)

func (*EventsRequest) MarshalTo

func (m *EventsRequest) MarshalTo(data []byte) (int, error)

func (*EventsRequest) ProtoMessage

func (*EventsRequest) ProtoMessage()

func (*EventsRequest) Reset

func (m *EventsRequest) Reset()

func (*EventsRequest) Size

func (m *EventsRequest) Size() (n int)

func (*EventsRequest) String

func (m *EventsRequest) String() string

func (*EventsRequest) Unmarshal

func (m *EventsRequest) Unmarshal(data []byte) error

type EventsResponse

type EventsResponse struct {
	Events []*EventsResponse_Event `protobuf:"bytes,1,rep,name=events" json:"events,omitempty"`
}

EventsResponse contains a set of event log entries. This is always limited to the latest N entries (N is enforced in the associated endpoint).

func (*EventsResponse) Descriptor

func (*EventsResponse) Descriptor() ([]byte, []int)

func (*EventsResponse) Marshal

func (m *EventsResponse) Marshal() (data []byte, err error)

func (*EventsResponse) MarshalTo

func (m *EventsResponse) MarshalTo(data []byte) (int, error)

func (*EventsResponse) ProtoMessage

func (*EventsResponse) ProtoMessage()

func (*EventsResponse) Reset

func (m *EventsResponse) Reset()

func (*EventsResponse) Size

func (m *EventsResponse) Size() (n int)

func (*EventsResponse) String

func (m *EventsResponse) String() string

func (*EventsResponse) Unmarshal

func (m *EventsResponse) Unmarshal(data []byte) error

type EventsResponse_Event

type EventsResponse_Event struct {
	// timestamp is the time at which the event occurred.
	Timestamp *EventsResponse_Event_Timestamp `protobuf:"bytes,1,opt,name=timestamp" json:"timestamp,omitempty"`
	// event_type is the type of the event (e.g. "create_table", "drop_table".
	EventType string `protobuf:"bytes,2,opt,name=event_type,json=eventType,proto3" json:"event_type,omitempty"`
	// target_id is the target for this event.
	TargetID int64 `protobuf:"varint,3,opt,name=target_id,json=targetId,proto3" json:"target_id,omitempty"`
	// reporting_id is the reporting ID for this event.
	ReportingID int64 `protobuf:"varint,4,opt,name=reporting_id,json=reportingId,proto3" json:"reporting_id,omitempty"`
	// info has more detailed information for the event. The contents vary
	// depending on the vent.
	Info string `protobuf:"bytes,5,opt,name=info,proto3" json:"info,omitempty"`
	// unique_id is a unique identifier for this event.
	UniqueID []byte `protobuf:"bytes,6,opt,name=unique_id,json=uniqueId,proto3" json:"unique_id,omitempty"`
}

func (*EventsResponse_Event) Descriptor

func (*EventsResponse_Event) Descriptor() ([]byte, []int)

func (*EventsResponse_Event) Marshal

func (m *EventsResponse_Event) Marshal() (data []byte, err error)

func (*EventsResponse_Event) MarshalTo

func (m *EventsResponse_Event) MarshalTo(data []byte) (int, error)

func (*EventsResponse_Event) ProtoMessage

func (*EventsResponse_Event) ProtoMessage()

func (*EventsResponse_Event) Reset

func (m *EventsResponse_Event) Reset()

func (*EventsResponse_Event) Size

func (m *EventsResponse_Event) Size() (n int)

func (*EventsResponse_Event) String

func (m *EventsResponse_Event) String() string

func (*EventsResponse_Event) Unmarshal

func (m *EventsResponse_Event) Unmarshal(data []byte) error

type EventsResponse_Event_Timestamp

type EventsResponse_Event_Timestamp struct {
	// The time in seconds since, January 1, 1970 UTC (Unix time).
	Sec int64 `protobuf:"varint,1,opt,name=sec,proto3" json:"sec,omitempty"`
	// nsec specifies a non-negative nanosecond offset within sec.
	// It must be in the range [0, 999999999].
	Nsec uint32 `protobuf:"varint,2,opt,name=nsec,proto3" json:"nsec,omitempty"`
}

Timestamp is embedded in each place it's used, because proto3 defines a built-in Timestamp message that we can't use, because gogoprotobuf doesn't support all proto3 protobuf types yet. See gogoprotobuf issue #113.

func (*EventsResponse_Event_Timestamp) Descriptor

func (*EventsResponse_Event_Timestamp) Descriptor() ([]byte, []int)

func (*EventsResponse_Event_Timestamp) Marshal

func (m *EventsResponse_Event_Timestamp) Marshal() (data []byte, err error)

func (*EventsResponse_Event_Timestamp) MarshalTo

func (m *EventsResponse_Event_Timestamp) MarshalTo(data []byte) (int, error)

func (*EventsResponse_Event_Timestamp) ProtoMessage

func (*EventsResponse_Event_Timestamp) ProtoMessage()

func (*EventsResponse_Event_Timestamp) Reset

func (m *EventsResponse_Event_Timestamp) Reset()

func (*EventsResponse_Event_Timestamp) Size

func (m *EventsResponse_Event_Timestamp) Size() (n int)

func (*EventsResponse_Event_Timestamp) String

func (*EventsResponse_Event_Timestamp) Unmarshal

func (m *EventsResponse_Event_Timestamp) Unmarshal(data []byte) error

type GetUIDataRequest

type GetUIDataRequest struct {
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
}

GETUIDataRequest requests the value of the given key from the system.ui table.

func (*GetUIDataRequest) Descriptor

func (*GetUIDataRequest) Descriptor() ([]byte, []int)

func (*GetUIDataRequest) Marshal

func (m *GetUIDataRequest) Marshal() (data []byte, err error)

func (*GetUIDataRequest) MarshalTo

func (m *GetUIDataRequest) MarshalTo(data []byte) (int, error)

func (*GetUIDataRequest) ProtoMessage

func (*GetUIDataRequest) ProtoMessage()

func (*GetUIDataRequest) Reset

func (m *GetUIDataRequest) Reset()

func (*GetUIDataRequest) Size

func (m *GetUIDataRequest) Size() (n int)

func (*GetUIDataRequest) String

func (m *GetUIDataRequest) String() string

func (*GetUIDataRequest) Unmarshal

func (m *GetUIDataRequest) Unmarshal(data []byte) error

type GetUIDataResponse

type GetUIDataResponse struct {
	// value is the value of the requested key.
	Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
	// last_updated is the time at which the value was last updated.
	LastUpdated *GetUIDataResponse_Timestamp `protobuf:"bytes,2,opt,name=last_updated,json=lastUpdated" json:"last_updated,omitempty"`
}

GetUIDataResponse contains the requested value and the time at which the value was last updated.

func (*GetUIDataResponse) Descriptor

func (*GetUIDataResponse) Descriptor() ([]byte, []int)

func (*GetUIDataResponse) Marshal

func (m *GetUIDataResponse) Marshal() (data []byte, err error)

func (*GetUIDataResponse) MarshalTo

func (m *GetUIDataResponse) MarshalTo(data []byte) (int, error)

func (*GetUIDataResponse) ProtoMessage

func (*GetUIDataResponse) ProtoMessage()

func (*GetUIDataResponse) Reset

func (m *GetUIDataResponse) Reset()

func (*GetUIDataResponse) Size

func (m *GetUIDataResponse) Size() (n int)

func (*GetUIDataResponse) String

func (m *GetUIDataResponse) String() string

func (*GetUIDataResponse) Unmarshal

func (m *GetUIDataResponse) Unmarshal(data []byte) error

type GetUIDataResponse_Timestamp

type GetUIDataResponse_Timestamp struct {
	// The time in seconds since, January 1, 1970 UTC (Unix time).
	Sec int64 `protobuf:"varint,1,opt,name=sec,proto3" json:"sec,omitempty"`
	// nsec specifies a non-negative nanosecond offset within sec.
	// It must be in the range [0, 999999999].
	Nsec uint32 `protobuf:"varint,2,opt,name=nsec,proto3" json:"nsec,omitempty"`
}

Timestamp is embedded in each place it's used, because proto3 defines a built-in Timestamp message that we can't use, because gogoprotobuf doesn't support all proto3 protobuf types yet. See gogoprotobuf issue #113.

func (*GetUIDataResponse_Timestamp) Descriptor

func (*GetUIDataResponse_Timestamp) Descriptor() ([]byte, []int)

func (*GetUIDataResponse_Timestamp) Marshal

func (m *GetUIDataResponse_Timestamp) Marshal() (data []byte, err error)

func (*GetUIDataResponse_Timestamp) MarshalTo

func (m *GetUIDataResponse_Timestamp) MarshalTo(data []byte) (int, error)

func (*GetUIDataResponse_Timestamp) ProtoMessage

func (*GetUIDataResponse_Timestamp) ProtoMessage()

func (*GetUIDataResponse_Timestamp) Reset

func (m *GetUIDataResponse_Timestamp) Reset()

func (*GetUIDataResponse_Timestamp) Size

func (m *GetUIDataResponse_Timestamp) Size() (n int)

func (*GetUIDataResponse_Timestamp) String

func (m *GetUIDataResponse_Timestamp) String() string

func (*GetUIDataResponse_Timestamp) Unmarshal

func (m *GetUIDataResponse_Timestamp) Unmarshal(data []byte) error

type Node

type Node struct {
	ClusterID  uuid.UUID              // UUID for Cockroach cluster
	Descriptor roachpb.NodeDescriptor // Node ID, network/physical topology
	// contains filtered or unexported fields
}

A Node manages a map of stores (by store ID) for which it serves traffic. A node is the top-level data structure. There is one node instance per process. A node accepts incoming RPCs and services them by directing the commands contained within RPCs to local stores, which in turn direct the commands to specific ranges. Each node has access to the global, monolithic Key-Value abstraction via its kv.DB reference. Nodes use this to allocate node and store IDs for bootstrapping the node itself or new stores as they're added on subsequent instantiations.

func NewNode

func NewNode(ctx storage.StoreContext, recorder *status.MetricsRecorder, stopper *stop.Stopper, txnMetrics *kv.TxnMetrics) *Node

NewNode returns a new instance of Node.

func (*Node) Batch

Batch implements the roachpb.KVServer interface.

type Server

type Server struct {
	Tracer opentracing.Tracer
	// contains filtered or unexported fields
}

Server is the cockroach server node.

func NewServer

func NewServer(ctx *Context, stopper *stop.Stopper) (*Server, error)

NewServer creates a Server from a server.Context.

func (*Server) ServeHTTP

func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP is necessary to implement the http.Handler interface. It will snappy a response if the appropriate request headers are set.

func (*Server) Start

func (s *Server) Start() error

Start starts the server on the specified port, starts gossip and initializes the node using the engines from the server's context.

func (*Server) Stop

func (s *Server) Stop()

Stop stops the server.

type SetUIDataRequest

type SetUIDataRequest struct {
	// key identifies the key to set.
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// value identifies the value to store with the key.
	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

SetUIDataRequest stores a value in the system.ui table with the given key and value.

func (*SetUIDataRequest) Descriptor

func (*SetUIDataRequest) Descriptor() ([]byte, []int)

func (*SetUIDataRequest) Marshal

func (m *SetUIDataRequest) Marshal() (data []byte, err error)

func (*SetUIDataRequest) MarshalTo

func (m *SetUIDataRequest) MarshalTo(data []byte) (int, error)

func (*SetUIDataRequest) ProtoMessage

func (*SetUIDataRequest) ProtoMessage()

func (*SetUIDataRequest) Reset

func (m *SetUIDataRequest) Reset()

func (*SetUIDataRequest) Size

func (m *SetUIDataRequest) Size() (n int)

func (*SetUIDataRequest) String

func (m *SetUIDataRequest) String() string

func (*SetUIDataRequest) Unmarshal

func (m *SetUIDataRequest) Unmarshal(data []byte) error

type SetUIDataResponse

type SetUIDataResponse struct {
}

SetUIDataResponse is currently an empty response.

func (*SetUIDataResponse) Descriptor

func (*SetUIDataResponse) Descriptor() ([]byte, []int)

func (*SetUIDataResponse) Marshal

func (m *SetUIDataResponse) Marshal() (data []byte, err error)

func (*SetUIDataResponse) MarshalTo

func (m *SetUIDataResponse) MarshalTo(data []byte) (int, error)

func (*SetUIDataResponse) ProtoMessage

func (*SetUIDataResponse) ProtoMessage()

func (*SetUIDataResponse) Reset

func (m *SetUIDataResponse) Reset()

func (*SetUIDataResponse) Size

func (m *SetUIDataResponse) Size() (n int)

func (*SetUIDataResponse) String

func (m *SetUIDataResponse) String() string

func (*SetUIDataResponse) Unmarshal

func (m *SetUIDataResponse) Unmarshal(data []byte) error

type StoreSpec

type StoreSpec struct {
	Path        string
	SizeInBytes int64
	SizePercent float64
	InMemory    bool
	Attributes  roachpb.Attributes
}

StoreSpec contains the details that can be specified in the cli pertaining to the --store flag.

func (StoreSpec) String

func (ss StoreSpec) String() string

String returns a fully parsable version of the store spec.

type StoreSpecList

type StoreSpecList struct {
	Specs []StoreSpec
	// contains filtered or unexported fields
}

StoreSpecList contains a slice of StoreSpecs that implements pflag's value interface.

func (*StoreSpecList) Set

func (ssl *StoreSpecList) Set(value string) error

Set adds a new value to the StoreSpecValue. It is the important part of pflag's value interface.

func (StoreSpecList) String

func (ssl StoreSpecList) String() string

String returns a string representation of all the StoreSpecs. This is part of pflag's value interface.

func (*StoreSpecList) Type

func (ssl *StoreSpecList) Type() string

Type returns the underlying type in string form. This is part of pflag's value interface.

type TableDetailsRequest

type TableDetailsRequest struct {
	// database is the database that contains the table we're interested in.
	Database string `protobuf:"bytes,1,opt,name=database,proto3" json:"database,omitempty"`
	// table is the name of the table that we're querying.
	Table string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"`
}

TableDetailsRequest is a request for detailed information about a table.

func (*TableDetailsRequest) Descriptor

func (*TableDetailsRequest) Descriptor() ([]byte, []int)

func (*TableDetailsRequest) Marshal

func (m *TableDetailsRequest) Marshal() (data []byte, err error)

func (*TableDetailsRequest) MarshalTo

func (m *TableDetailsRequest) MarshalTo(data []byte) (int, error)

func (*TableDetailsRequest) ProtoMessage

func (*TableDetailsRequest) ProtoMessage()

func (*TableDetailsRequest) Reset

func (m *TableDetailsRequest) Reset()

func (*TableDetailsRequest) Size

func (m *TableDetailsRequest) Size() (n int)

func (*TableDetailsRequest) String

func (m *TableDetailsRequest) String() string

func (*TableDetailsRequest) Unmarshal

func (m *TableDetailsRequest) Unmarshal(data []byte) error

type TableDetailsResponse

type TableDetailsResponse struct {
	Grants  []*TableDetailsResponse_Grant  `protobuf:"bytes,1,rep,name=grants" json:"grants,omitempty"`
	Columns []*TableDetailsResponse_Column `protobuf:"bytes,2,rep,name=columns" json:"columns,omitempty"`
	Indexes []*TableDetailsResponse_Index  `protobuf:"bytes,3,rep,name=indexes" json:"indexes,omitempty"`
	// range_count is the size of the table in ranges. This provides a rough
	// estimate of the storage requirements for the table.
	RangeCount int64 `protobuf:"varint,4,opt,name=range_count,json=rangeCount,proto3" json:"range_count,omitempty"`
}

TableDetailsResponse contains grants, column names, and indexes for a table.

func (*TableDetailsResponse) Descriptor

func (*TableDetailsResponse) Descriptor() ([]byte, []int)

func (*TableDetailsResponse) Marshal

func (m *TableDetailsResponse) Marshal() (data []byte, err error)

func (*TableDetailsResponse) MarshalTo

func (m *TableDetailsResponse) MarshalTo(data []byte) (int, error)

func (*TableDetailsResponse) ProtoMessage

func (*TableDetailsResponse) ProtoMessage()

func (*TableDetailsResponse) Reset

func (m *TableDetailsResponse) Reset()

func (*TableDetailsResponse) Size

func (m *TableDetailsResponse) Size() (n int)

func (*TableDetailsResponse) String

func (m *TableDetailsResponse) String() string

func (*TableDetailsResponse) Unmarshal

func (m *TableDetailsResponse) Unmarshal(data []byte) error

type TableDetailsResponse_Column

type TableDetailsResponse_Column struct {
	// name is the name of the column.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// type is the SQL type (INT, STRING, etc.) of this column.
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	// nullable is whether this column can contain NULL.
	Nullable bool `protobuf:"varint,3,opt,name=nullable,proto3" json:"nullable,omitempty"`
	// default is the default value of this column.
	Default string `protobuf:"bytes,4,opt,name=default,proto3" json:"default,omitempty"`
}

func (*TableDetailsResponse_Column) Descriptor

func (*TableDetailsResponse_Column) Descriptor() ([]byte, []int)

func (*TableDetailsResponse_Column) Marshal

func (m *TableDetailsResponse_Column) Marshal() (data []byte, err error)

func (*TableDetailsResponse_Column) MarshalTo

func (m *TableDetailsResponse_Column) MarshalTo(data []byte) (int, error)

func (*TableDetailsResponse_Column) ProtoMessage

func (*TableDetailsResponse_Column) ProtoMessage()

func (*TableDetailsResponse_Column) Reset

func (m *TableDetailsResponse_Column) Reset()

func (*TableDetailsResponse_Column) Size

func (m *TableDetailsResponse_Column) Size() (n int)

func (*TableDetailsResponse_Column) String

func (m *TableDetailsResponse_Column) String() string

func (*TableDetailsResponse_Column) Unmarshal

func (m *TableDetailsResponse_Column) Unmarshal(data []byte) error

type TableDetailsResponse_Grant

type TableDetailsResponse_Grant struct {
	// user is the user that this grant applies to.
	User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
	// privileges are the abilities this grant gives to the user.
	Privileges []string `protobuf:"bytes,2,rep,name=privileges" json:"privileges,omitempty"`
}

Grant is an entry from SHOW GRANTS.

func (*TableDetailsResponse_Grant) Descriptor

func (*TableDetailsResponse_Grant) Descriptor() ([]byte, []int)

func (*TableDetailsResponse_Grant) Marshal

func (m *TableDetailsResponse_Grant) Marshal() (data []byte, err error)

func (*TableDetailsResponse_Grant) MarshalTo

func (m *TableDetailsResponse_Grant) MarshalTo(data []byte) (int, error)

func (*TableDetailsResponse_Grant) ProtoMessage

func (*TableDetailsResponse_Grant) ProtoMessage()

func (*TableDetailsResponse_Grant) Reset

func (m *TableDetailsResponse_Grant) Reset()

func (*TableDetailsResponse_Grant) Size

func (m *TableDetailsResponse_Grant) Size() (n int)

func (*TableDetailsResponse_Grant) String

func (m *TableDetailsResponse_Grant) String() string

func (*TableDetailsResponse_Grant) Unmarshal

func (m *TableDetailsResponse_Grant) Unmarshal(data []byte) error

type TableDetailsResponse_Index

type TableDetailsResponse_Index struct {
	// name is the name of this index.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// unique is whether this a unique index (i.e. CREATE UNIQUE INDEX).
	Unique bool `protobuf:"varint,2,opt,name=unique,proto3" json:"unique,omitempty"`
	// seq is an internal variable that's passed along.
	Seq int64 `protobuf:"varint,3,opt,name=seq,proto3" json:"seq,omitempty"`
	// column is the column that this index indexes.
	Column string `protobuf:"bytes,4,opt,name=column,proto3" json:"column,omitempty"`
	// direction is either "ASC" (ascending) or "DESC" (descending).
	Direction string `protobuf:"bytes,5,opt,name=direction,proto3" json:"direction,omitempty"`
	// storing is an internal variable that's passed along.
	Storing bool `protobuf:"varint,6,opt,name=storing,proto3" json:"storing,omitempty"`
}

func (*TableDetailsResponse_Index) Descriptor

func (*TableDetailsResponse_Index) Descriptor() ([]byte, []int)

func (*TableDetailsResponse_Index) Marshal

func (m *TableDetailsResponse_Index) Marshal() (data []byte, err error)

func (*TableDetailsResponse_Index) MarshalTo

func (m *TableDetailsResponse_Index) MarshalTo(data []byte) (int, error)

func (*TableDetailsResponse_Index) ProtoMessage

func (*TableDetailsResponse_Index) ProtoMessage()

func (*TableDetailsResponse_Index) Reset

func (m *TableDetailsResponse_Index) Reset()

func (*TableDetailsResponse_Index) Size

func (m *TableDetailsResponse_Index) Size() (n int)

func (*TableDetailsResponse_Index) String

func (m *TableDetailsResponse_Index) String() string

func (*TableDetailsResponse_Index) Unmarshal

func (m *TableDetailsResponse_Index) Unmarshal(data []byte) error

type TestServer

type TestServer struct {
	// Ctx is the context used by this server.
	Ctx *Context
	// server is the embedded Cockroach server struct.
	*Server
	StoresPerNode int
}

A TestServer encapsulates an in-memory instantiation of a cockroach node with a single store. Example usage of a TestServer follows:

s := server.StartTestServer(t)
defer s.Stop()

func StartInsecureTestServer

func StartInsecureTestServer(t util.Tester) *TestServer

StartInsecureTestServer starts an insecure in-memory test server.

func StartTestServer

func StartTestServer(t util.Tester) *TestServer

StartTestServer starts an in-memory test server.

func StartTestServerJoining

func StartTestServerJoining(t util.Tester, other *TestServer) *TestServer

StartTestServerJoining starts an in-memory test server that attempts to join `other`.

func StartTestServerWithContext

func StartTestServerWithContext(t util.Tester, ctx *Context) *TestServer

StartTestServerWithContext starts an in-memory test server. ctx can be nil, in which case a default context will be created.

func (*TestServer) Clock

func (ts *TestServer) Clock() *hlc.Clock

Clock returns the clock used by the TestServer.

func (*TestServer) DB

func (ts *TestServer) DB() *client.DB

DB returns the client.DB instance used by the TestServer.

func (*TestServer) Gossip

func (ts *TestServer) Gossip() *gossip.Gossip

Gossip returns the gossip instance used by the TestServer.

func (*TestServer) HTTPAddr

func (ts *TestServer) HTTPAddr() string

HTTPAddr returns the server's HTTP address. Should be used by humans.

func (*TestServer) MustGetSQLCounter

func (ts *TestServer) MustGetSQLCounter(name string) int64

MustGetSQLCounter returns the value of a counter metric from the server's SQL Executor. Runs in O(# of metrics) time, which is fine for test code.

func (*TestServer) MustGetSQLNetworkCounter

func (ts *TestServer) MustGetSQLNetworkCounter(name string) int64

MustGetSQLNetworkCounter returns the value of a counter metric from the server's SQL server. Runs in O(# of metrics) time, which is fine for test code.

func (*TestServer) RPCContext

func (ts *TestServer) RPCContext() *rpc.Context

RPCContext returns the rpc context used by the TestServer.

func (*TestServer) ServingAddr

func (ts *TestServer) ServingAddr() string

ServingAddr returns the server's address. Should be used by clients.

func (*TestServer) ServingHost

func (ts *TestServer) ServingHost() (string, error)

ServingHost returns the host portion of the rpc server's address.

func (*TestServer) ServingPort

func (ts *TestServer) ServingPort() (string, error)

ServingPort returns the port portion of the rpc server's address.

func (*TestServer) SetRangeRetryOptions

func (ts *TestServer) SetRangeRetryOptions(ro retry.Options)

SetRangeRetryOptions sets the retry options for stores in TestServer.

func (*TestServer) Start

func (ts *TestServer) Start() error

Start starts the TestServer by bootstrapping an in-memory store (defaults to maximum of 100M). The server is started, launching the node RPC server and all HTTP endpoints. Use the value of TestServer.ServingAddr() after Start() for client connections. Use Stop() to shutdown the server after the test completes.

func (*TestServer) StartWithStopper

func (ts *TestServer) StartWithStopper(stopper *stop.Stopper) error

StartWithStopper is the same as Start, but allows passing a stopper explicitly.

func (*TestServer) Stop

func (ts *TestServer) Stop()

Stop stops the TestServer.

func (*TestServer) Stopper

func (ts *TestServer) Stopper() *stop.Stopper

Stopper returns the embedded server's Stopper.

func (*TestServer) Stores

func (ts *TestServer) Stores() *storage.Stores

Stores returns the collection of stores from this TestServer's node.

func (*TestServer) TsDB

func (ts *TestServer) TsDB() *ts.DB

TsDB returns the ts.DB instance used by the TestServer.

func (*TestServer) WaitForInitialSplits

func (ts *TestServer) WaitForInitialSplits() error

WaitForInitialSplits waits for the server to complete its expected initial splits at startup. If the expected range count is not reached within a configured timeout, an error is returned.

func (*TestServer) WriteSummaries

func (ts *TestServer) WriteSummaries() error

WriteSummaries records summaries of time-series data, which is required for any tests that query server stats.

type TestingKnobs

type TestingKnobs struct {
	StoreTestingKnobs    storage.StoreTestingKnobs
	ExecutorTestingKnobs sql.ExecutorTestingKnobs
}

TestingKnobs contains facilities for controlling various parts of the system for testing.

type UsersRequest

type UsersRequest struct {
}

UsersRequest requests a list of users.

func (*UsersRequest) Descriptor

func (*UsersRequest) Descriptor() ([]byte, []int)

func (*UsersRequest) Marshal

func (m *UsersRequest) Marshal() (data []byte, err error)

func (*UsersRequest) MarshalTo

func (m *UsersRequest) MarshalTo(data []byte) (int, error)

func (*UsersRequest) ProtoMessage

func (*UsersRequest) ProtoMessage()

func (*UsersRequest) Reset

func (m *UsersRequest) Reset()

func (*UsersRequest) Size

func (m *UsersRequest) Size() (n int)

func (*UsersRequest) String

func (m *UsersRequest) String() string

func (*UsersRequest) Unmarshal

func (m *UsersRequest) Unmarshal(data []byte) error

type UsersResponse

type UsersResponse struct {
	// usernames is a list of users for the CockroachDB cluster.
	Users []*UsersResponse_User `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"`
}

UsersResponse returns a list of users.

func (*UsersResponse) Descriptor

func (*UsersResponse) Descriptor() ([]byte, []int)

func (*UsersResponse) Marshal

func (m *UsersResponse) Marshal() (data []byte, err error)

func (*UsersResponse) MarshalTo

func (m *UsersResponse) MarshalTo(data []byte) (int, error)

func (*UsersResponse) ProtoMessage

func (*UsersResponse) ProtoMessage()

func (*UsersResponse) Reset

func (m *UsersResponse) Reset()

func (*UsersResponse) Size

func (m *UsersResponse) Size() (n int)

func (*UsersResponse) String

func (m *UsersResponse) String() string

func (*UsersResponse) Unmarshal

func (m *UsersResponse) Unmarshal(data []byte) error

type UsersResponse_User

type UsersResponse_User struct {
	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
}

User is a CockroachDB user.

func (*UsersResponse_User) Descriptor

func (*UsersResponse_User) Descriptor() ([]byte, []int)

func (*UsersResponse_User) Marshal

func (m *UsersResponse_User) Marshal() (data []byte, err error)

func (*UsersResponse_User) MarshalTo

func (m *UsersResponse_User) MarshalTo(data []byte) (int, error)

func (*UsersResponse_User) ProtoMessage

func (*UsersResponse_User) ProtoMessage()

func (*UsersResponse_User) Reset

func (m *UsersResponse_User) Reset()

func (*UsersResponse_User) Size

func (m *UsersResponse_User) Size() (n int)

func (*UsersResponse_User) String

func (m *UsersResponse_User) String() string

func (*UsersResponse_User) Unmarshal

func (m *UsersResponse_User) Unmarshal(data []byte) error

Directories

Path Synopsis
Package status is a generated protocol buffer package.
Package status is a generated protocol buffer package.

Jump to

Keyboard shortcuts

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