vulcanizer

GitHub's ops focused Elasticsearch library

MIT License

Stars
658
Committers
22

Bot releases are hidden (Show)

vulcanizer - v0.6.1 Release

Published by migue almost 4 years ago

New Features

  • Function to delete an snapshot #82
  • Function to access segments for a particular index #83
vulcanizer - v0.6.0 Release

Published by nickcanz about 4 years ago

Breaking changes

  • SetClusterSetting now takes and returns a *string instead of a string to support "unsetting" a cluster setting

New Features

Misc

  • Use Go modules instead of dep
  • Update Go dependencies
  • Use GitHub Actions instead of Travis
vulcanizer - v0.5.1 Release

Published by nickcanz about 5 years ago

Bug fix

vulcanizer - v0.5.0 release

Published by nickcanz over 5 years ago

Breaking changes

  • GetIndices() renamed to GetAllIndices()
    • New function GetIndices(string) - returns a subset of indices matching the string

New features

  • Several functions to work with aliases

    • GetAliases(string) - returns a subset of indices matching the string
    • GetAllAliases() - return all the aliases on the cluster
    • ModifyAliases([]AliasAction) - add/update/delete aliases
  • Several functions to work with shards

    • GetShards([]string) - returns shards that exist on the given nodes, empty array returns all shards
    • GetShardOverlap([]string) - provide a list of node names and returns a map containing information to determine if all copies of a shard exist on those nodes
    • GetShardRecovery([]string, bool) - returns information about recovering shards
  • New functions to operate on indices

    • OpenIndex(string) - opens the index with the given index name
    • CloseIndex(string) - closes the index with the given index name
  • New client configuration options

    • user
    • password
    • protocol
    • path
    • skip TLS verification
  • Added Elasticsearch version to the Node struct as Version

Bug fixes

  • Two functions on the Snapshot struct to deal with in progress snapshots "ending" at 1970-01-01
    • func (s *Snapshot) GetDuration()
    • func (s *Snapshot) GetEndTime()

Misc

  • Added Go 1.12 to Travis testing
vulcanizer - v0.4.0 Release

Published by nickcanz over 5 years ago

This release adds some features around managing indices.

Breaking Changes

  • Renamed ClusterSettings struct to Settings - This struct is now used when listing Cluster or Index settings.
  • Renamed func (c *Client) GetSettings() method to func (c *Client) GetClusterSettings() to differentiate between Cluster or Index settings.
  • Renamed func (c *Client) SetSetting method to func (c *Client) SetClusterSetting to differentitate between Cluster or Index settings.
  • Added indexSettings map[string]interface{} to the arguments of func (c *Client) RestoreSnapshotIndices to allow setting specific index settings when restoring an index.

New APIs

  • func (c *Client) DeleteIndex(indexName string) error - Deleting an index
  • func (c *Client) GetPrettyIndexSettings(index string) (string, error) - Get a human readable JSON of the settings of an index
  • func (c *Client) GetIndexSettings(index string) ([]Setting, error) - Get the settings of an index
  • func (c *Client) SetIndexSetting(index, setting, value string) (string, string, error) - Set the settings of an index
  • func (c *Client) GetPrettyIndexMappings(index string) - Get a human readable JSON of the mappings of an index
  • func (c *Client) AnalyzeText(analyzer, text string) ([]Token, error) - Call the Elasticsearch analyze API to preview how given text will be broken down into tokens.
  • func (c *Client) AnalyzeTextWithField(index, field, text string) ([]Token, error) - Call the Elasticsearch analyze API with a specific field to preview how the text will be broken down into tokens for that field.

Changes

  • Added additional fields to the Client struct to support more connection properties
    • Secure - boolean whether to connect using HTTPS or not
    • Auth - struct containing username and password for HTTP basic auth
    • Timeout - set a time.Duration for the API calls to Elasticsearch
    • TLSConfig - set tls.Config options for things like client certificates or ignoring certificate validation
vulcanizer - v0.3.0 Release

Published by nickcanz almost 6 years ago

This release expands what you can do in regards to snapshots and repositories.

Breaking changes

  • GetHealth API return type changed from []ClusterHealth to ClusterHealth - The array was a holdover from using the _cat API and didn't make logical sense as there is only one cluster health.

New APIs

  • New struct Repository
  • New struct IndexHealth, similar to the ClusterHealth struct, but scoped to an index
  • New API func (c *Client) GetRepositories() ([]Repository, error)
    • List the snapshot repositories that are configured on the cluster
  • New API func (c *Client) SnapshotAllIndices(repository string, snapshot string) error
    • Take a snapshot of all indices on the cluster
  • New API func (c *Client) SnapshotIndices(repository string, snapshot string, indices []string) error
    • Take a snapshot of specific indices on the cluster
  • New API func (c *Client) RestoreSnapshotIndices(repository string, snapshot string, indices []string, restoredIndexPrefix string) error
    • Restore specific indices of the named snapshot to the cluster

Changes

  • Jdk added to Node struct - contains the Jdk version of the node
  • ClusterHealth has two new fields
    • UnhealthIndices []IndexHealth - contains indices that are non-green status
    • HealthyIndices []IndexHealth - contains indices that are green status
vulcanizer - Managing snapshots

Published by nickcanz almost 6 years ago

This release adds two new functions around managing snapshots and repositories.

  • func (c *Client) DeleteSnapshot(repository string, snapshot string) error

  • func (c *Client) VerifyRepository(repository string) (bool, error)

vulcanizer - Standardize vulcanizer API surface

Published by nickcanz about 6 years ago

Features:

  • Client methods all return a specific struct type and an error.
type Client
    func NewClient(host string, port int) *Client
    func (c *Client) DrainServer(serverToDrain string) (ExcludeSettings, error)
    func (c *Client) FillAll() (ExcludeSettings, error)
    func (c *Client) FillOneServer(serverToFill string) (ExcludeSettings, error)
    func (c *Client) GetClusterExcludeSettings() (ExcludeSettings, error)
    func (c *Client) GetHealth() ([]ClusterHealth, error)
    func (c *Client) GetIndices() ([]Index, error)
    func (c *Client) GetNodes() ([]Node, error)
    func (c *Client) GetSettings() (ClusterSettings, error)
    func (c *Client) GetSnapshotStatus(repository string, snapshot string) (Snapshot, error)
    func (c *Client) GetSnapshots(repository string) ([]Snapshot, error)
    func (c *Client) SetAllocation(allocation string) (string, error)
    func (c *Client) SetSetting(setting string, value string) (string, string, error)
type ClusterHealth
type ClusterSetting
type ClusterSettings
type ExcludeSettings
type Index
type Node
type Snapshot