Module: OpenSearch::API::Snapshot::Actions

Included in:
SnapshotClient
Defined in:
lib/opensearch/api/namespace/snapshot.rb,
lib/opensearch/api/actions/snapshot/get.rb,
lib/opensearch/api/actions/snapshot/clone.rb,
lib/opensearch/api/actions/snapshot/create.rb,
lib/opensearch/api/actions/snapshot/delete.rb,
lib/opensearch/api/actions/snapshot/status.rb,
lib/opensearch/api/actions/snapshot/restore.rb,
lib/opensearch/api/actions/snapshot/get_features.rb,
lib/opensearch/api/actions/snapshot/get_repository.rb,
lib/opensearch/api/actions/snapshot/params_registry.rb,
lib/opensearch/api/actions/snapshot/create_repository.rb,
lib/opensearch/api/actions/snapshot/delete_repository.rb,
lib/opensearch/api/actions/snapshot/verify_repository.rb,
lib/opensearch/api/actions/snapshot/cleanup_repository.rb,
lib/opensearch/api/actions/snapshot/repository_analyze.rb

Defined Under Namespace

Modules: ParamsRegistry

Instance Method Summary collapse

Instance Method Details

#cleanup_repository(arguments = {}) ⇒ Object

Removes stale data from repository.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :repository (String)

    A repository name

  • :master_timeout (Time) — default: DEPRECATED: use cluster_manager_timeout instead

    Explicit operation timeout for connection to master node

  • :cluster_manager_timeout (Time)

    Explicit operation timeout for connection to cluster_manager node

  • :timeout (Time)

    Explicit operation timeout

  • :headers (Hash)

    Custom HTTP headers

Raises:

  • (ArgumentError)


40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/opensearch/api/actions/snapshot/cleanup_repository.rb', line 40

def cleanup_repository(arguments = {})
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]

  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _repository = arguments.delete(:repository)

  method = OpenSearch::API::HTTP_POST
  path   = "_snapshot/#{Utils.__listify(_repository)}/_cleanup"
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = nil
  perform_request(method, path, params, body, headers).body
end

#clone(arguments = {}) ⇒ Object

Clones indices from one snapshot into another snapshot in the same repository.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :repository (String)

    A repository name

  • :snapshot (String)

    The name of the snapshot to clone from

  • :target_snapshot (String)

    The name of the cloned snapshot to create

  • :master_timeout (Time) — default: DEPRECATED: use cluster_manager_timeout instead

    Explicit operation timeout for connection to master node

  • :cluster_manager_timeout (Time)

    Explicit operation timeout for connection to cluster_manager node

  • :headers (Hash)

    Custom HTTP headers

  • :body (Hash)

    The snapshot clone definition (Required)

Raises:

  • (ArgumentError)


42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/opensearch/api/actions/snapshot/clone.rb', line 42

def clone(arguments = {})
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
  raise ArgumentError, "Required argument 'snapshot' missing" unless arguments[:snapshot]
  raise ArgumentError, "Required argument 'target_snapshot' missing" unless arguments[:target_snapshot]

  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _repository = arguments.delete(:repository)

  _snapshot = arguments.delete(:snapshot)

  _target_snapshot = arguments.delete(:target_snapshot)

  method = OpenSearch::API::HTTP_PUT
  path   = "_snapshot/#{Utils.__listify(_repository)}/#{Utils.__listify(_snapshot)}/_clone/#{Utils.__listify(_target_snapshot)}"
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = arguments[:body]
  perform_request(method, path, params, body, headers).body
end

#create(arguments = {}) ⇒ Object

Creates a snapshot in a repository.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :repository (String)

    A repository name

  • :snapshot (String)

    A snapshot name

  • :master_timeout (Time) — default: DEPRECATED: use cluster_manager_timeout instead

    Explicit operation timeout for connection to master node

  • :cluster_manager_timeout (Time)

    Explicit operation timeout for connection to cluster_manager node

  • :wait_for_completion (Boolean)

    Should this request wait until the operation has completed before returning

  • :headers (Hash)

    Custom HTTP headers

  • :body (Hash)

    The snapshot definition

Raises:

  • (ArgumentError)


42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/opensearch/api/actions/snapshot/create.rb', line 42

def create(arguments = {})
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
  raise ArgumentError, "Required argument 'snapshot' missing" unless arguments[:snapshot]

  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _repository = arguments.delete(:repository)

  _snapshot = arguments.delete(:snapshot)

  method = OpenSearch::API::HTTP_PUT
  path   = "_snapshot/#{Utils.__listify(_repository)}/#{Utils.__listify(_snapshot)}"
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = arguments[:body]
  perform_request(method, path, params, body, headers).body
end

#create_repository(arguments = {}) ⇒ Object

Creates a repository.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :repository (String)

    A repository name

  • :master_timeout (Time) — default: DEPRECATED: use cluster_manager_timeout instead

    Explicit operation timeout for connection to master node

  • :cluster_manager_timeout (Time)

    Explicit operation timeout for connection to cluster_manager node

  • :timeout (Time)

    Explicit operation timeout

  • :verify (Boolean)

    Whether to verify the repository after creation

  • :headers (Hash)

    Custom HTTP headers

  • :body (Hash)

    The repository definition (Required)

Raises:

  • (ArgumentError)


42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/opensearch/api/actions/snapshot/create_repository.rb', line 42

def create_repository(arguments = {})
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]

  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _repository = arguments.delete(:repository)

  method = OpenSearch::API::HTTP_PUT
  path   = "_snapshot/#{Utils.__listify(_repository)}"
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = arguments[:body]
  perform_request(method, path, params, body, headers).body
end

#delete(arguments = {}) ⇒ Object

Deletes a snapshot.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :repository (String)

    A repository name

  • :snapshot (String)

    A snapshot name

  • :master_timeout (Time) — default: DEPRECATED: use cluster_manager_timeout instead

    Explicit operation timeout for connection to master node

  • :cluster_manager_timeout (Time)

    Explicit operation timeout for connection to cluster_manager node

  • :headers (Hash)

    Custom HTTP headers

Raises:

  • (ArgumentError)


40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/opensearch/api/actions/snapshot/delete.rb', line 40

def delete(arguments = {})
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
  raise ArgumentError, "Required argument 'snapshot' missing" unless arguments[:snapshot]

  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _repository = arguments.delete(:repository)

  _snapshot = arguments.delete(:snapshot)

  method = OpenSearch::API::HTTP_DELETE
  path   = "_snapshot/#{Utils.__listify(_repository)}/#{Utils.__listify(_snapshot)}"
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = nil
  if Array(arguments[:ignore]).include?(404)
    Utils.__rescue_from_not_found { perform_request(method, path, params, body, headers).body }
  else
    perform_request(method, path, params, body, headers).body
  end
end

#delete_repository(arguments = {}) ⇒ Object

Deletes a repository.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :repository (List)

    Name of the snapshot repository to unregister. Wildcard (‘*`) patterns are supported.

  • :master_timeout (Time) — default: DEPRECATED: use cluster_manager_timeout instead

    Explicit operation timeout for connection to master node

  • :cluster_manager_timeout (Time)

    Explicit operation timeout for connection to cluster_manager node

  • :timeout (Time)

    Explicit operation timeout

  • :headers (Hash)

    Custom HTTP headers

Raises:

  • (ArgumentError)


40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/opensearch/api/actions/snapshot/delete_repository.rb', line 40

def delete_repository(arguments = {})
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]

  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _repository = arguments.delete(:repository)

  method = OpenSearch::API::HTTP_DELETE
  path   = "_snapshot/#{Utils.__listify(_repository)}"
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = nil
  if Array(arguments[:ignore]).include?(404)
    Utils.__rescue_from_not_found { perform_request(method, path, params, body, headers).body }
  else
    perform_request(method, path, params, body, headers).body
  end
end

#get(arguments = {}) ⇒ Object

Returns information about a snapshot.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :repository (String)

    A repository name

  • :snapshot (List)

    A comma-separated list of snapshot names

  • :master_timeout (Time) — default: DEPRECATED: use cluster_manager_timeout instead

    Explicit operation timeout for connection to master node

  • :cluster_manager_timeout (Time)

    Explicit operation timeout for connection to cluster_manager node

  • :ignore_unavailable (Boolean)

    Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown

  • :index_details (Boolean)

    Whether to include details of each index in the snapshot, if those details are available. Defaults to false.

  • :include_repository (Boolean)

    Whether to include the repository name in the snapshot info. Defaults to true.

  • :verbose (Boolean)

    Whether to show verbose snapshot info or only show the basic info found in the repository index blob

  • :headers (Hash)

    Custom HTTP headers

Raises:

  • (ArgumentError)


44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/opensearch/api/actions/snapshot/get.rb', line 44

def get(arguments = {})
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
  raise ArgumentError, "Required argument 'snapshot' missing" unless arguments[:snapshot]

  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _repository = arguments.delete(:repository)

  _snapshot = arguments.delete(:snapshot)

  method = OpenSearch::API::HTTP_GET
  path   = "_snapshot/#{Utils.__listify(_repository)}/#{Utils.__listify(_snapshot)}"
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = nil
  if Array(arguments[:ignore]).include?(404)
    Utils.__rescue_from_not_found { perform_request(method, path, params, body, headers).body }
  else
    perform_request(method, path, params, body, headers).body
  end
end

#get_features(arguments = {}) ⇒ Object

Returns a list of features which can be snapshotted in this cluster.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :master_timeout (Time) — default: DEPRECATED: use cluster_manager_timeout instead

    Explicit operation timeout for connection to master node

  • :cluster_manager_timeout (Time)

    Explicit operation timeout for connection to cluster_manager node

  • :headers (Hash)

    Custom HTTP headers



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/opensearch/api/actions/snapshot/get_features.rb', line 38

def get_features(arguments = {})
  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  method = OpenSearch::API::HTTP_GET
  path   = "_snapshottable_features"
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = nil
  perform_request(method, path, params, body, headers).body
end

#get_repository(arguments = {}) ⇒ Object

Returns information about a repository.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :repository (List)

    A comma-separated list of repository names

  • :master_timeout (Time) — default: DEPRECATED: use cluster_manager_timeout instead

    Explicit operation timeout for connection to cluster_manager node

  • :local (Boolean)

    Return local information, do not retrieve the state from cluster_manager node (default: false)

  • :headers (Hash)

    Custom HTTP headers



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/opensearch/api/actions/snapshot/get_repository.rb', line 39

def get_repository(arguments = {})
  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _repository = arguments.delete(:repository)

  method = OpenSearch::API::HTTP_GET
  path   = if _repository
             "_snapshot/#{Utils.__listify(_repository)}"
           else
             "_snapshot"
           end
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = nil
  if Array(arguments[:ignore]).include?(404)
    Utils.__rescue_from_not_found { perform_request(method, path, params, body, headers).body }
  else
    perform_request(method, path, params, body, headers).body
  end
end

#repository_analyze(arguments = {}) ⇒ Object

Analyzes a repository for correctness and performance

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :repository (String)

    A repository name

  • :blob_count (Number)

    Number of blobs to create during the test. Defaults to 100.

  • :concurrency (Number)

    Number of operations to run concurrently during the test. Defaults to 10.

  • :read_node_count (Number)

    Number of nodes on which to read a blob after writing. Defaults to 10.

  • :early_read_node_count (Number)

    Number of nodes on which to perform an early read on a blob, i.e. before writing has completed. Early reads are rare actions so the ‘rare_action_probability’ parameter is also relevant. Defaults to 2.

  • :seed (Number)

    Seed for the random number generator used to create the test workload. Defaults to a random value.

  • :rare_action_probability (Number)

    Probability of taking a rare action such as an early read or an overwrite. Defaults to 0.02.

  • :max_blob_size (String)

    Maximum size of a blob to create during the test, e.g ‘1gb’ or ‘100mb’. Defaults to ‘10mb’.

  • :max_total_data_size (String)

    Maximum total size of all blobs to create during the test, e.g ‘1tb’ or ‘100gb’. Defaults to ‘1gb’.

  • :timeout (Time)

    Explicit operation timeout. Defaults to ‘30s’.

  • :detailed (Boolean)

    Whether to return detailed results or a summary. Defaults to ‘false’ so that only the summary is returned.

  • :rarely_abort_writes (Boolean)

    Whether to rarely abort writes before they complete. Defaults to ‘true’.

  • :headers (Hash)

    Custom HTTP headers

Raises:

  • (ArgumentError)


48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/opensearch/api/actions/snapshot/repository_analyze.rb', line 48

def repository_analyze(arguments = {})
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]

  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _repository = arguments.delete(:repository)

  method = OpenSearch::API::HTTP_POST
  path   = "_snapshot/#{Utils.__listify(_repository)}/_analyze"
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = nil
  perform_request(method, path, params, body, headers).body
end

#restore(arguments = {}) ⇒ Object

Restores a snapshot.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :repository (String)

    A repository name

  • :snapshot (String)

    A snapshot name

  • :master_timeout (Time) — default: DEPRECATED: use cluster_manager_timeout instead

    Explicit operation timeout for connection to master node

  • :cluster_manager_timeout (Time)

    Explicit operation timeout for connection to cluster_manager node

  • :wait_for_completion (Boolean)

    Should this request wait until the operation has completed before returning

  • :headers (Hash)

    Custom HTTP headers

  • :body (Hash)

    Details of what to restore

Raises:

  • (ArgumentError)


42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/opensearch/api/actions/snapshot/restore.rb', line 42

def restore(arguments = {})
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]
  raise ArgumentError, "Required argument 'snapshot' missing" unless arguments[:snapshot]

  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _repository = arguments.delete(:repository)

  _snapshot = arguments.delete(:snapshot)

  method = OpenSearch::API::HTTP_POST
  path   = "_snapshot/#{Utils.__listify(_repository)}/#{Utils.__listify(_snapshot)}/_restore"
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = arguments[:body]
  perform_request(method, path, params, body, headers).body
end

#status(arguments = {}) ⇒ Object

Returns information about the status of a snapshot.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :repository (String)

    A repository name

  • :snapshot (List)

    A comma-separated list of snapshot names

  • :master_timeout (Time) — default: DEPRECATED: use cluster_manager_timeout instead

    Explicit operation timeout for connection to master node

  • :cluster_manager_timeout (Time)

    Explicit operation timeout for connection to cluster_manager node

  • :ignore_unavailable (Boolean)

    Whether to ignore unavailable snapshots, defaults to false which means a SnapshotMissingException is thrown

  • :headers (Hash)

    Custom HTTP headers



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/opensearch/api/actions/snapshot/status.rb', line 41

def status(arguments = {})
  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _repository = arguments.delete(:repository)

  _snapshot = arguments.delete(:snapshot)

  method = OpenSearch::API::HTTP_GET
  path   = if _repository && _snapshot
             "_snapshot/#{Utils.__listify(_repository)}/#{Utils.__listify(_snapshot)}/_status"
           elsif _repository
             "_snapshot/#{Utils.__listify(_repository)}/_status"
           else
             "_snapshot/_status"
           end
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = nil
  if Array(arguments[:ignore]).include?(404)
    Utils.__rescue_from_not_found { perform_request(method, path, params, body, headers).body }
  else
    perform_request(method, path, params, body, headers).body
  end
end

#verify_repository(arguments = {}) ⇒ Object

Verifies a repository.

Parameters:

  • arguments (Hash) (defaults to: {})

    a customizable set of options

Options Hash (arguments):

  • :repository (String)

    A repository name

  • :master_timeout (Time) — default: DEPRECATED: use cluster_manager_timeout instead

    Explicit operation timeout for connection to master node

  • :cluster_manager_timeout (Time)

    Explicit operation timeout for connection to cluster_manager node

  • :timeout (Time)

    Explicit operation timeout

  • :headers (Hash)

    Custom HTTP headers

Raises:

  • (ArgumentError)


40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/opensearch/api/actions/snapshot/verify_repository.rb', line 40

def verify_repository(arguments = {})
  raise ArgumentError, "Required argument 'repository' missing" unless arguments[:repository]

  headers = arguments.delete(:headers) || {}

  arguments = arguments.clone

  _repository = arguments.delete(:repository)

  method = OpenSearch::API::HTTP_POST
  path   = "_snapshot/#{Utils.__listify(_repository)}/_verify"
  params = Utils.__validate_and_extract_params arguments, ParamsRegistry.get(__method__)

  body = nil
  perform_request(method, path, params, body, headers).body
end