Class: Elastomer::Client::Snapshot

Inherits:
Object
  • Object
show all
Defined in:
lib/elastomer/client/snapshot.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, repository = nil, name = nil) ⇒ Snapshot

Create a new snapshot object for making API requests that pertain to creating, restoring, deleting, and retrieving snapshots.

client - Elastomer::Client used for HTTP requests to the server repository - The name of the repository as a String. Cannot be nil if

snapshot name is not nil.

name - The name of the snapshot as a String



22
23
24
25
26
27
# File 'lib/elastomer/client/snapshot.rb', line 22

def initialize(client, repository = nil, name = nil)
  @client     = client
  # don't allow nil repository if snapshot name is not nil
  @repository = @client.assert_param_presence(repository, 'repository name') unless repository.nil? && name.nil?
  @name       = @client.assert_param_presence(name, 'snapshot name') unless name.nil?
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



29
30
31
# File 'lib/elastomer/client/snapshot.rb', line 29

def client
  @client
end

#nameObject (readonly)

Returns the value of attribute name.



29
30
31
# File 'lib/elastomer/client/snapshot.rb', line 29

def name
  @name
end

#repositoryObject (readonly)

Returns the value of attribute repository.



29
30
31
# File 'lib/elastomer/client/snapshot.rb', line 29

def repository
  @repository
end

Instance Method Details

#create(body = {}, params = {}) ⇒ Object

Create the snapshot. See www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-snapshots.html#_snapshot

body - The snapshot options as a Hash or a JSON encoded String params - Parameters Hash

Returns the response body as a Hash



56
57
58
59
# File 'lib/elastomer/client/snapshot.rb', line 56

def create(body = {}, params = {})
  response = client.put '/_snapshot/{repository}/{snapshot}', update_params(params, :body => body, :action => 'snapshot.create')
  response.body
end

#defaultsObject

Internal: Returns a Hash containing default parameters.



122
123
124
# File 'lib/elastomer/client/snapshot.rb', line 122

def defaults
  { :repository => repository, :snapshot => name }
end

#delete(params = {}) ⇒ Object

Delete the snapshot. See www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-snapshots.html#_snapshot

params - Parameters Hash

Returns the response body as a Hash



103
104
105
106
# File 'lib/elastomer/client/snapshot.rb', line 103

def delete(params = {})
  response = client.delete '/_snapshot/{repository}/{snapshot}', update_params(params, :action => 'snapshot.delete')
  response.body
end

#exists?(params = {}) ⇒ Boolean Also known as: exist?

Check for the existence of the snapshot. See www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-snapshots.html#_snapshot

params - Parameters Hash

Returns true if the snapshot exists

Returns:

  • (Boolean)


37
38
39
40
41
42
43
44
45
46
# File 'lib/elastomer/client/snapshot.rb', line 37

def exists?(params = {})
  response = client.get '/_snapshot/{repository}/{snapshot}', update_params(params, :action => 'snapshot.exists')
  response.success?
rescue Elastomer::Client::Error => exception
  if exception.message =~ /SnapshotMissingException/
    false
  else
    raise exception
  end
end

#get(params = {}) ⇒ Object

Get snapshot progress information. See www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-snapshots.html#_snapshot

params - Parameters Hash

Returns the response body as a Hash



67
68
69
70
71
72
# File 'lib/elastomer/client/snapshot.rb', line 67

def get(params = {})
  # Set snapshot name or we'll get the repository instead
  snapshot = name || '_all'
  response = client.get '/_snapshot/{repository}/{snapshot}', update_params(params, :snapshot => snapshot, :action => 'snapshot.get')
  response.body
end

#restore(body = {}, params = {}) ⇒ Object

Restore the snapshot. See www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-snapshots.html#_snapshot

body - The restore options as a Hash or a JSON encoded String params - Parameters Hash

Returns the response body as a Hash



92
93
94
95
# File 'lib/elastomer/client/snapshot.rb', line 92

def restore(body = {}, params = {})
  response = client.post '/_snapshot/{repository}/{snapshot}/_restore', update_params(params, :body => body, :action => 'snapshot.restore')
  response.body
end

#status(params = {}) ⇒ Object

Get detailed snapshot status. See www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-snapshots.html#_snapshot

params - Parameters Hash

Returns the response body as a Hash



80
81
82
83
# File 'lib/elastomer/client/snapshot.rb', line 80

def status(params = {})
  response = client.get '/_snapshot{/repository}{/snapshot}/_status', update_params(params, :action => 'snapshot.status')
  response.body
end

#update_params(params, overrides = nil) ⇒ Object

Internal: Add default parameters to the ‘params` Hash and then apply `overrides` to the params if any are given.

params - Parameters Hash overrides - Optional parameter overrides as a Hash

Returns a new params Hash.



115
116
117
118
119
# File 'lib/elastomer/client/snapshot.rb', line 115

def update_params( params, overrides = nil )
  h = defaults.update params
  h.update overrides unless overrides.nil?
  h
end