couchbase 3.7.0 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/ext/CMakeLists.txt +4 -1
- data/ext/cache/extconf_include.rb +4 -3
- data/ext/cache/mozilla-ca-bundle.crt +66 -93
- data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
- data/ext/couchbase/CMakeLists.txt +24 -11
- data/ext/couchbase/cmake/APKBUILD.in +17 -1
- data/ext/couchbase/cmake/Bundler.cmake +9 -1
- data/ext/couchbase/cmake/Cache.cmake +48 -19
- data/ext/couchbase/cmake/CompilerOptions.cmake +3 -1
- data/ext/couchbase/cmake/OpenSSL.cmake +10 -2
- data/ext/couchbase/cmake/Packaging.cmake +48 -8
- data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +43 -1
- data/ext/couchbase/cmake/build_config.hxx.in +2 -0
- data/ext/couchbase/cmake/couchbase-cxx-client.spec.in +18 -0
- data/ext/couchbase/cmake/tarball_glob.txt +10 -0
- data/ext/couchbase/core/app_telemetry_meter.cxx +1 -0
- data/ext/couchbase/core/app_telemetry_reporter.cxx +45 -43
- data/ext/couchbase/core/app_telemetry_reporter.hxx +4 -3
- data/ext/couchbase/core/bucket.cxx +128 -13
- data/ext/couchbase/core/bucket.hxx +12 -2
- data/ext/couchbase/core/cluster.cxx +304 -152
- data/ext/couchbase/core/cluster.hxx +32 -0
- data/ext/couchbase/core/cluster_credentials.cxx +25 -0
- data/ext/couchbase/core/cluster_credentials.hxx +5 -0
- data/ext/couchbase/core/cluster_label_listener.cxx +72 -0
- data/ext/couchbase/core/cluster_label_listener.hxx +46 -0
- data/ext/couchbase/core/cluster_options.hxx +4 -0
- data/ext/couchbase/core/deprecation_utils.hxx +26 -0
- data/ext/couchbase/core/error.hxx +27 -0
- data/ext/couchbase/core/free_form_http_request.hxx +0 -2
- data/ext/couchbase/core/http_component.cxx +12 -48
- data/ext/couchbase/core/impl/analytics.cxx +3 -2
- data/ext/couchbase/core/impl/analytics.hxx +2 -1
- data/ext/couchbase/core/impl/analytics_index_manager.cxx +249 -137
- data/ext/couchbase/core/impl/binary_collection.cxx +134 -58
- data/ext/couchbase/core/impl/bucket_manager.cxx +87 -35
- data/ext/couchbase/core/impl/collection.cxx +560 -245
- data/ext/couchbase/core/impl/collection_manager.cxx +89 -49
- data/ext/couchbase/core/impl/dns_srv_tracker.cxx +4 -4
- data/ext/couchbase/core/impl/error.cxx +20 -13
- data/ext/couchbase/core/impl/error.hxx +15 -10
- data/ext/couchbase/core/impl/get_all_replicas.hxx +1 -1
- data/ext/couchbase/core/impl/get_any_replica.hxx +2 -1
- data/ext/couchbase/core/impl/get_replica.hxx +2 -0
- data/ext/couchbase/core/impl/lookup_in_replica.hxx +1 -1
- data/ext/couchbase/core/impl/observability_recorder.cxx +161 -0
- data/ext/couchbase/core/impl/observability_recorder.hxx +77 -0
- data/ext/couchbase/core/impl/observe_seqno.hxx +2 -0
- data/ext/couchbase/core/impl/public_bucket.cxx +31 -7
- data/ext/couchbase/core/impl/public_cluster.cxx +107 -19
- data/ext/couchbase/core/impl/query.cxx +6 -3
- data/ext/couchbase/core/impl/query.hxx +3 -1
- data/ext/couchbase/core/impl/query_index_manager.cxx +267 -102
- data/ext/couchbase/core/impl/scope.cxx +53 -11
- data/ext/couchbase/core/impl/search.cxx +8 -4
- data/ext/couchbase/core/impl/search.hxx +6 -2
- data/ext/couchbase/core/impl/search_index_manager.cxx +131 -41
- data/ext/couchbase/core/impl/with_cancellation.hxx +75 -0
- data/ext/couchbase/core/io/config_tracker.cxx +9 -9
- data/ext/couchbase/core/io/config_tracker.hxx +2 -1
- data/ext/couchbase/core/io/http_command.hxx +98 -49
- data/ext/couchbase/core/io/http_context.hxx +2 -0
- data/ext/couchbase/core/io/http_session.cxx +23 -10
- data/ext/couchbase/core/io/http_session.hxx +17 -9
- data/ext/couchbase/core/io/http_session_manager.hxx +163 -228
- data/ext/couchbase/core/io/http_traits.hxx +0 -7
- data/ext/couchbase/core/io/mcbp_command.hxx +123 -44
- data/ext/couchbase/core/io/mcbp_session.cxx +251 -26
- data/ext/couchbase/core/io/mcbp_session.hxx +9 -1
- data/ext/couchbase/core/io/mcbp_traits.hxx +0 -8
- data/ext/couchbase/core/io/streams.cxx +3 -3
- data/ext/couchbase/core/io/streams.hxx +3 -2
- data/ext/couchbase/core/meta/features.hxx +15 -0
- data/ext/couchbase/core/meta/version.cxx +13 -0
- data/ext/couchbase/core/meta/version.hxx +3 -0
- data/ext/couchbase/core/metrics/constants.hxx +23 -0
- data/ext/couchbase/core/metrics/logging_meter.cxx +5 -5
- data/ext/couchbase/core/metrics/meter_wrapper.cxx +65 -63
- data/ext/couchbase/core/metrics/meter_wrapper.hxx +12 -10
- data/ext/couchbase/core/operations/document_analytics.hxx +0 -5
- data/ext/couchbase/core/operations/document_append.hxx +0 -4
- data/ext/couchbase/core/operations/document_decrement.hxx +0 -5
- data/ext/couchbase/core/operations/document_exists.hxx +0 -7
- data/ext/couchbase/core/operations/document_get.hxx +0 -7
- data/ext/couchbase/core/operations/document_get_all_replicas.hxx +77 -27
- data/ext/couchbase/core/operations/document_get_and_lock.hxx +0 -9
- data/ext/couchbase/core/operations/document_get_and_touch.hxx +0 -9
- data/ext/couchbase/core/operations/document_get_any_replica.hxx +83 -2
- data/ext/couchbase/core/operations/document_get_projected.hxx +0 -9
- data/ext/couchbase/core/operations/document_increment.hxx +0 -5
- data/ext/couchbase/core/operations/document_insert.hxx +0 -4
- data/ext/couchbase/core/operations/document_lookup_in.hxx +0 -9
- data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +46 -4
- data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +121 -43
- data/ext/couchbase/core/operations/document_mutate_in.hxx +0 -5
- data/ext/couchbase/core/operations/document_prepend.hxx +0 -4
- data/ext/couchbase/core/operations/document_query.hxx +0 -4
- data/ext/couchbase/core/operations/document_remove.hxx +0 -4
- data/ext/couchbase/core/operations/document_replace.hxx +0 -4
- data/ext/couchbase/core/operations/document_search.hxx +0 -7
- data/ext/couchbase/core/operations/document_touch.hxx +0 -7
- data/ext/couchbase/core/operations/document_unlock.hxx +0 -6
- data/ext/couchbase/core/operations/document_upsert.hxx +0 -4
- data/ext/couchbase/core/operations/document_view.cxx +2 -0
- data/ext/couchbase/core/operations/document_view.hxx +10 -13
- data/ext/couchbase/core/operations/http_noop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_describe.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_flush.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/bucket_update.hxx +2 -0
- data/ext/couchbase/core/operations/management/change_password.hxx +2 -0
- data/ext/couchbase/core/operations/management/cluster_describe.hxx +2 -0
- data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_update.hxx +2 -0
- data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/error_utils.cxx +4 -1
- data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_get_status.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +2 -0
- data/ext/couchbase/core/operations/management/freeform.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/group_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_build.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +68 -30
- data/ext/couchbase/core/operations/management/query_index_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_get_all.hxx +4 -3
- data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +2 -1
- data/ext/couchbase/core/operations/management/role_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_get_stats.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_control_query.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +2 -0
- data/ext/couchbase/core/operations/management/search_index_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/user_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_get.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_get_all.hxx +2 -0
- data/ext/couchbase/core/operations/management/view_index_upsert.hxx +2 -0
- data/ext/couchbase/core/operations/operation_traits.hxx +6 -0
- data/ext/couchbase/core/operations.hxx +0 -1
- data/ext/couchbase/core/operations_fwd.hxx +8 -0
- data/ext/couchbase/core/origin.cxx +67 -12
- data/ext/couchbase/core/origin.hxx +13 -8
- data/ext/couchbase/core/orphan_reporter.cxx +164 -0
- data/ext/couchbase/core/orphan_reporter.hxx +65 -0
- data/ext/couchbase/core/sasl/CMakeLists.txt +1 -0
- data/ext/couchbase/core/sasl/client.cc +6 -0
- data/ext/couchbase/core/sasl/mechanism.cc +2 -1
- data/ext/couchbase/core/sasl/mechanism.h +2 -1
- data/ext/couchbase/core/sasl/oauthbearer/oauthbearer.cc +41 -0
- data/ext/couchbase/core/sasl/oauthbearer/oauthbearer.h +47 -0
- data/ext/couchbase/core/tls_context_provider.cxx +44 -0
- data/ext/couchbase/core/tls_context_provider.hxx +44 -0
- data/ext/couchbase/core/tracing/attribute_helpers.hxx +45 -0
- data/ext/couchbase/core/tracing/constants.hxx +148 -68
- data/ext/couchbase/core/tracing/threshold_logging_options.hxx +0 -3
- data/ext/couchbase/core/tracing/threshold_logging_tracer.cxx +122 -170
- data/ext/couchbase/core/tracing/tracer_wrapper.cxx +17 -24
- data/ext/couchbase/core/tracing/tracer_wrapper.hxx +8 -10
- data/ext/couchbase/core/tracing/wrapper_sdk_tracer.cxx +114 -0
- data/ext/couchbase/core/tracing/wrapper_sdk_tracer.hxx +85 -0
- data/ext/couchbase/core/transactions/attempt_context_impl.cxx +16 -14
- data/ext/couchbase/core/transactions/attempt_context_impl.hxx +4 -4
- data/ext/couchbase/core/transactions/transactions.cxx +1 -1
- data/ext/couchbase/core/transactions/transactions_cleanup.cxx +1 -2
- data/ext/couchbase/core/utils/byteswap.hxx +12 -0
- data/ext/couchbase/core/utils/concurrent_fixed_priority_queue.hxx +102 -0
- data/ext/couchbase/core/utils/connection_string.cxx +2 -0
- data/ext/couchbase/couchbase/certificate_authenticator.hxx +1 -0
- data/ext/couchbase/couchbase/cluster.hxx +47 -0
- data/ext/couchbase/couchbase/cluster_options.hxx +16 -0
- data/ext/couchbase/couchbase/collection.hxx +60 -15
- data/ext/couchbase/couchbase/error_codes.hxx +48 -48
- data/ext/couchbase/couchbase/jwt_authenticator.hxx +52 -0
- data/ext/couchbase/couchbase/metrics/meter.hxx +2 -1
- data/ext/couchbase/couchbase/metrics/otel_meter.hxx +75 -80
- data/ext/couchbase/couchbase/network_options.hxx +19 -0
- data/ext/couchbase/couchbase/password_authenticator.hxx +1 -0
- data/ext/couchbase/couchbase/tracing/otel_tracer.hxx +15 -17
- data/ext/couchbase/couchbase/tracing/request_span.hxx +2 -2
- data/ext/couchbase.cxx +4 -0
- data/ext/extconf.rb +1 -0
- data/ext/rcb_analytics.cxx +157 -47
- data/ext/rcb_backend.cxx +118 -71
- data/ext/rcb_buckets.cxx +39 -16
- data/ext/rcb_collections.cxx +36 -12
- data/ext/rcb_crud.cxx +587 -294
- data/ext/rcb_hdr_histogram.cxx +219 -0
- data/ext/rcb_hdr_histogram.hxx +28 -0
- data/ext/rcb_multi.cxx +142 -59
- data/ext/rcb_observability.cxx +132 -0
- data/ext/rcb_observability.hxx +49 -0
- data/ext/rcb_query.cxx +77 -27
- data/ext/rcb_search.cxx +92 -31
- data/ext/rcb_users.cxx +69 -26
- data/ext/rcb_utils.cxx +91 -0
- data/ext/rcb_utils.hxx +141 -168
- data/ext/rcb_views.cxx +36 -12
- data/lib/active_support/cache/couchbase_store.rb +6 -6
- data/lib/couchbase/authenticator.rb +14 -0
- data/lib/couchbase/binary_collection.rb +37 -22
- data/lib/couchbase/bucket.rb +46 -31
- data/lib/couchbase/cluster.rb +146 -61
- data/lib/couchbase/collection.rb +257 -186
- data/lib/couchbase/datastructures/couchbase_list.rb +81 -50
- data/lib/couchbase/datastructures/couchbase_map.rb +86 -50
- data/lib/couchbase/datastructures/couchbase_queue.rb +64 -38
- data/lib/couchbase/datastructures/couchbase_set.rb +57 -41
- data/lib/couchbase/deprecations.rb +1 -1
- data/lib/couchbase/diagnostics.rb +8 -8
- data/lib/couchbase/errors.rb +6 -0
- data/lib/couchbase/management/analytics_index_manager.rb +90 -59
- data/lib/couchbase/management/bucket_manager.rb +73 -45
- data/lib/couchbase/management/collection_manager.rb +86 -43
- data/lib/couchbase/management/collection_query_index_manager.rb +56 -33
- data/lib/couchbase/management/query_index_manager.rb +88 -36
- data/lib/couchbase/management/scope_search_index_manager.rb +119 -52
- data/lib/couchbase/management/search_index_manager.rb +401 -178
- data/lib/couchbase/management/user_manager.rb +343 -174
- data/lib/couchbase/management/view_index_manager.rb +166 -73
- data/lib/couchbase/metrics/logging_meter.rb +108 -0
- data/lib/couchbase/metrics/logging_value_recorder.rb +50 -0
- data/lib/couchbase/metrics/meter.rb +27 -0
- data/lib/couchbase/metrics/noop_meter.rb +30 -0
- data/lib/couchbase/metrics/noop_value_recorder.rb +27 -0
- data/lib/couchbase/metrics/value_recorder.rb +25 -0
- data/lib/couchbase/options.rb +69 -3
- data/lib/couchbase/protostellar/cluster.rb +3 -0
- data/lib/couchbase/scope.rb +62 -48
- data/lib/couchbase/search_options.rb +18 -18
- data/lib/couchbase/tracing/noop_span.rb +29 -0
- data/lib/couchbase/tracing/noop_tracer.rb +29 -0
- data/lib/couchbase/tracing/request_span.rb +34 -0
- data/lib/couchbase/tracing/request_tracer.rb +28 -0
- data/lib/couchbase/tracing/threshold_logging_span.rb +112 -0
- data/lib/couchbase/tracing/threshold_logging_tracer.rb +231 -0
- data/lib/couchbase/utils/hdr_histogram.rb +55 -0
- data/lib/couchbase/utils/observability.rb +257 -0
- data/lib/couchbase/utils/observability_constants.rb +200 -0
- data/lib/couchbase/utils/stdlib_logger_adapter.rb +1 -3
- data/lib/couchbase/version.rb +1 -1
- data/lib/couchbase.rb +2 -2
- metadata +58 -6
|
@@ -198,9 +198,13 @@ module Couchbase
|
|
|
198
198
|
|
|
199
199
|
# @param [Couchbase::Backend] backend
|
|
200
200
|
# @param [String] bucket_name
|
|
201
|
-
|
|
201
|
+
# @param [Observability::Wrapper] observability wrapper
|
|
202
|
+
#
|
|
203
|
+
# @api private
|
|
204
|
+
def initialize(backend, bucket_name, observability)
|
|
202
205
|
@backend = backend
|
|
203
206
|
@bucket_name = bucket_name
|
|
207
|
+
@observability = observability
|
|
204
208
|
end
|
|
205
209
|
|
|
206
210
|
# Get all scopes
|
|
@@ -209,16 +213,18 @@ module Couchbase
|
|
|
209
213
|
#
|
|
210
214
|
# @return [Array<ScopeSpec>]
|
|
211
215
|
def get_all_scopes(options = Options::Collection::GetAllScopes.new)
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
216
|
+
@observability.record_operation(Observability::OP_CM_GET_ALL_SCOPES, options.parent_span, self, :management) do |obs_handler|
|
|
217
|
+
res = @backend.scope_get_all(@bucket_name, options.to_backend, obs_handler)
|
|
218
|
+
res[:scopes].map do |s|
|
|
219
|
+
ScopeSpec.new do |scope|
|
|
220
|
+
scope.name = s[:name]
|
|
221
|
+
scope.collections = s[:collections].map do |c|
|
|
222
|
+
CollectionSpec.new do |collection|
|
|
223
|
+
collection.name = c[:name]
|
|
224
|
+
collection.scope_name = s[:name]
|
|
225
|
+
collection.max_expiry = c[:max_expiry]
|
|
226
|
+
collection.history = c[:history]
|
|
227
|
+
end
|
|
222
228
|
end
|
|
223
229
|
end
|
|
224
230
|
end
|
|
@@ -236,8 +242,12 @@ module Couchbase
|
|
|
236
242
|
#
|
|
237
243
|
# @raise [Error::ScopeNotFound]
|
|
238
244
|
def get_scope(scope_name, options = GetScopeOptions.new)
|
|
239
|
-
|
|
240
|
-
.
|
|
245
|
+
@observability.record_operation(Observability::OP_CM_GET_SCOPE, options.parent_span, self, :management) do |obs_handler|
|
|
246
|
+
obs_handler.add_scope_name(scope_name)
|
|
247
|
+
|
|
248
|
+
get_all_scopes(Options::Collection::GetAllScopes(timeout: options.timeout, parent_span: obs_handler.op_span))
|
|
249
|
+
.find { |scope| scope.name == scope_name } or raise Error::ScopeNotFound, "unable to find scope #{scope_name}"
|
|
250
|
+
end
|
|
241
251
|
end
|
|
242
252
|
|
|
243
253
|
deprecate :get_scope, :get_all_scopes, 2021, 6
|
|
@@ -251,7 +261,11 @@ module Couchbase
|
|
|
251
261
|
#
|
|
252
262
|
# @raise [ArgumentError]
|
|
253
263
|
def create_scope(scope_name, options = Options::Collection::CreateScope.new)
|
|
254
|
-
@
|
|
264
|
+
@observability.record_operation(Observability::OP_CM_CREATE_SCOPE, options.parent_span, self, :management) do |obs_handler|
|
|
265
|
+
obs_handler.add_scope_name(scope_name)
|
|
266
|
+
|
|
267
|
+
@backend.scope_create(@bucket_name, scope_name, options.to_backend, obs_handler)
|
|
268
|
+
end
|
|
255
269
|
end
|
|
256
270
|
|
|
257
271
|
# Removes a scope
|
|
@@ -263,7 +277,11 @@ module Couchbase
|
|
|
263
277
|
#
|
|
264
278
|
# @raise [Error::ScopeNotFound]
|
|
265
279
|
def drop_scope(scope_name, options = Options::Collection::DropScope.new)
|
|
266
|
-
@
|
|
280
|
+
@observability.record_operation(Observability::OP_CM_DROP_SCOPE, options.parent_span, self, :management) do |obs_handler|
|
|
281
|
+
obs_handler.add_scope_name(scope_name)
|
|
282
|
+
|
|
283
|
+
@backend.scope_drop(@bucket_name, scope_name, options.to_backend, obs_handler)
|
|
284
|
+
end
|
|
267
285
|
end
|
|
268
286
|
|
|
269
287
|
# Creates a new collection
|
|
@@ -286,21 +304,31 @@ module Couchbase
|
|
|
286
304
|
# @raise [Error::CollectionExists]
|
|
287
305
|
# @raise [Error::ScopeNotFound]
|
|
288
306
|
def create_collection(*args)
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
307
|
+
scope_name, collection_name, settings, options =
|
|
308
|
+
if args[0].is_a?(CollectionSpec)
|
|
309
|
+
warn "Calling create_collection with a CollectionSpec object has been deprecated, supply scope name, " \
|
|
310
|
+
"collection name and optionally a CreateCollectionSettings instance"
|
|
311
|
+
collection = args[0]
|
|
312
|
+
[
|
|
313
|
+
collection.scope_name,
|
|
314
|
+
collection.name,
|
|
315
|
+
CreateCollectionSettings.new(max_expiry: collection.max_expiry, history: collection.history),
|
|
316
|
+
args[1] || Options::Collection::CreateCollection::DEFAULT,
|
|
317
|
+
]
|
|
318
|
+
else
|
|
319
|
+
[
|
|
320
|
+
args[0],
|
|
321
|
+
args[1],
|
|
322
|
+
args[2] || CreateCollectionSettings::DEFAULT,
|
|
323
|
+
args[3] || Options::Collection::CreateCollection::DEFAULT,
|
|
324
|
+
]
|
|
325
|
+
end
|
|
326
|
+
|
|
327
|
+
@observability.record_operation(Observability::OP_CM_CREATE_COLLECTION, options.parent_span, self, :management) do |obs_handler|
|
|
328
|
+
obs_handler.add_scope_name(scope_name)
|
|
329
|
+
obs_handler.add_collection_name(collection_name)
|
|
330
|
+
|
|
331
|
+
@backend.collection_create(@bucket_name, scope_name, collection_name, settings.to_backend, options.to_backend, obs_handler)
|
|
304
332
|
end
|
|
305
333
|
end
|
|
306
334
|
|
|
@@ -315,7 +343,12 @@ module Couchbase
|
|
|
315
343
|
# @raise [Error::ScopeNotFound]
|
|
316
344
|
def update_collection(scope_name, collection_name, settings = UpdateCollectionSettings::DEFAULT,
|
|
317
345
|
options = Options::Collection::UpdateCollection::DEFAULT)
|
|
318
|
-
@
|
|
346
|
+
@observability.record_operation(Observability::OP_CM_UPDATE_COLLECTION, options.parent_span, self, :management) do |obs_handler|
|
|
347
|
+
obs_handler.add_scope_name(scope_name)
|
|
348
|
+
obs_handler.add_collection_name(collection_name)
|
|
349
|
+
|
|
350
|
+
@backend.collection_update(@bucket_name, scope_name, collection_name, settings.to_backend, options.to_backend, obs_handler)
|
|
351
|
+
end
|
|
319
352
|
end
|
|
320
353
|
|
|
321
354
|
# Removes a collection
|
|
@@ -336,18 +369,28 @@ module Couchbase
|
|
|
336
369
|
# @raise [Error::CollectionNotFound]
|
|
337
370
|
# @raise [Error::ScopeNotFound]
|
|
338
371
|
def drop_collection(*args)
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
372
|
+
scope_name, collection_name, options =
|
|
373
|
+
if args[0].is_a?(CollectionSpec)
|
|
374
|
+
warn "Calling drop_collection with a CollectionSpec object has been deprecated, supply scope name and collection name"
|
|
375
|
+
collection = args[0]
|
|
376
|
+
[
|
|
377
|
+
collection.scope_name,
|
|
378
|
+
collection.name,
|
|
379
|
+
args[1] || Options::Collection::CreateCollection::DEFAULT,
|
|
380
|
+
]
|
|
381
|
+
else
|
|
382
|
+
[
|
|
383
|
+
args[0],
|
|
384
|
+
args[1],
|
|
385
|
+
args[2] || Options::Collection::CreateCollection::DEFAULT,
|
|
386
|
+
]
|
|
387
|
+
end
|
|
388
|
+
|
|
389
|
+
@observability.record_operation(Observability::OP_CM_DROP_COLLECTION, options.parent_span, self, :management) do |obs_handler|
|
|
390
|
+
obs_handler.add_scope_name(scope_name)
|
|
391
|
+
obs_handler.add_collection_name(collection_name)
|
|
392
|
+
|
|
393
|
+
@backend.collection_drop(@bucket_name, scope_name, collection_name, options.to_backend, obs_handler)
|
|
351
394
|
end
|
|
352
395
|
end
|
|
353
396
|
|
|
@@ -27,11 +27,15 @@ module Couchbase
|
|
|
27
27
|
# @param [String] bucket_name name of the bucket
|
|
28
28
|
# @param [String] scope_name name of the scope
|
|
29
29
|
# @param [String] collection_name name of the collection
|
|
30
|
-
|
|
30
|
+
# @param [Observability::Wrapper] observability wrapper
|
|
31
|
+
#
|
|
32
|
+
# @api private
|
|
33
|
+
def initialize(backend, bucket_name, scope_name, collection_name, observability)
|
|
31
34
|
@backend = backend
|
|
32
35
|
@bucket_name = bucket_name
|
|
33
36
|
@scope_name = scope_name
|
|
34
37
|
@collection_name = collection_name
|
|
38
|
+
@observability = observability
|
|
35
39
|
end
|
|
36
40
|
|
|
37
41
|
# Fetches all indexes from the server
|
|
@@ -52,19 +56,21 @@ module Couchbase
|
|
|
52
56
|
"Collection name cannot be set in the options when using the Query Index manager at the collection level"
|
|
53
57
|
end
|
|
54
58
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
@observability.record_operation(Observability::OP_QM_GET_ALL_INDEXES, options.parent_span, self, :query) do |obs_handler|
|
|
60
|
+
res = @backend.collection_query_index_get_all(@bucket_name, @scope_name, @collection_name, options.to_backend, obs_handler)
|
|
61
|
+
res[:indexes].map do |idx|
|
|
62
|
+
QueryIndex.new do |index|
|
|
63
|
+
index.name = idx[:name]
|
|
64
|
+
index.is_primary = idx[:is_primary]
|
|
65
|
+
index.type = idx[:type]
|
|
66
|
+
index.state = idx[:state]
|
|
67
|
+
index.bucket = idx[:bucket_name]
|
|
68
|
+
index.scope = idx[:scope_name]
|
|
69
|
+
index.collection = idx[:collection_name]
|
|
70
|
+
index.index_key = idx[:index_key]
|
|
71
|
+
index.condition = idx[:condition]
|
|
72
|
+
index.partition = idx[:partition]
|
|
73
|
+
end
|
|
68
74
|
end
|
|
69
75
|
end
|
|
70
76
|
end
|
|
@@ -90,7 +96,10 @@ module Couchbase
|
|
|
90
96
|
"Collection name cannot be set in the options when using the Query Index manager at the collection level"
|
|
91
97
|
end
|
|
92
98
|
|
|
93
|
-
@
|
|
99
|
+
@observability.record_operation(Observability::OP_QM_CREATE_INDEX, options.parent_span, self, :query) do |obs_handler|
|
|
100
|
+
@backend.collection_query_index_create(@bucket_name, @scope_name, @collection_name, index_name, fields, options.to_backend,
|
|
101
|
+
obs_handler)
|
|
102
|
+
end
|
|
94
103
|
end
|
|
95
104
|
|
|
96
105
|
# Creates new primary index
|
|
@@ -112,7 +121,9 @@ module Couchbase
|
|
|
112
121
|
"Collection name cannot be set in the options when using the Query Index manager at the collection level"
|
|
113
122
|
end
|
|
114
123
|
|
|
115
|
-
@
|
|
124
|
+
@observability.record_operation(Observability::OP_QM_CREATE_PRIMARY_INDEX, options.parent_span, self, :query) do |obs_handler|
|
|
125
|
+
@backend.collection_query_index_create_primary(@bucket_name, @scope_name, @collection_name, options.to_backend, obs_handler)
|
|
126
|
+
end
|
|
116
127
|
end
|
|
117
128
|
|
|
118
129
|
# Drops the index
|
|
@@ -135,7 +146,9 @@ module Couchbase
|
|
|
135
146
|
"Collection name cannot be set in the options when using the Query Index manager at the collection level"
|
|
136
147
|
end
|
|
137
148
|
|
|
138
|
-
@
|
|
149
|
+
@observability.record_operation(Observability::OP_QM_DROP_INDEX, options.parent_span, self, :query) do |obs_handler|
|
|
150
|
+
@backend.collection_query_index_drop(@bucket_name, @scope_name, @collection_name, index_name, options.to_backend, obs_handler)
|
|
151
|
+
end
|
|
139
152
|
end
|
|
140
153
|
|
|
141
154
|
# Drops the primary index
|
|
@@ -157,7 +170,9 @@ module Couchbase
|
|
|
157
170
|
"Collection name cannot be set in the options when using the Query Index manager at the collection level"
|
|
158
171
|
end
|
|
159
172
|
|
|
160
|
-
@
|
|
173
|
+
@observability.record_operation(Observability::OP_QM_DROP_PRIMARY_INDEX, options.parent_span, self, :query) do |obs_handler|
|
|
174
|
+
@backend.collection_query_index_drop_primary(@bucket_name, @scope_name, @collection_name, options.to_backend, obs_handler)
|
|
175
|
+
end
|
|
161
176
|
end
|
|
162
177
|
|
|
163
178
|
# Build all indexes which are currently in deferred state
|
|
@@ -178,7 +193,9 @@ module Couchbase
|
|
|
178
193
|
"Collection name cannot be set in the options when using the Query Index manager at the collection level"
|
|
179
194
|
end
|
|
180
195
|
|
|
181
|
-
@
|
|
196
|
+
@observability.record_operation(Observability::OP_QM_BUILD_DEFERRED_INDEXES, options.parent_span, self, :query) do |obs_handler|
|
|
197
|
+
@backend.collection_query_index_build_deferred(@bucket_name, @scope_name, @collection_name, options.to_backend, obs_handler)
|
|
198
|
+
end
|
|
182
199
|
end
|
|
183
200
|
|
|
184
201
|
# Polls indexes until they are online
|
|
@@ -200,24 +217,30 @@ module Couchbase
|
|
|
200
217
|
"Collection name cannot be set in the options when using the Query Index manager at the collection level"
|
|
201
218
|
end
|
|
202
219
|
|
|
203
|
-
|
|
220
|
+
@observability.record_operation(Observability::OP_QM_WATCH_INDEXES, options.parent_span, self, :query) do |obs_handler|
|
|
221
|
+
index_names.append("#primary") if options.watch_primary
|
|
204
222
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
223
|
+
interval_millis = 50
|
|
224
|
+
deadline = Time.now + (Utils::Time.extract_duration(timeout) * 0.001)
|
|
225
|
+
all_online = false
|
|
226
|
+
while Time.now <= deadline
|
|
227
|
+
get_all_opts = Options::Query::GetAllIndexes.new(
|
|
228
|
+
timeout: ((deadline - Time.now) * 1000).round,
|
|
229
|
+
parent_span: obs_handler.op_span,
|
|
230
|
+
)
|
|
231
|
+
indexes = get_all_indexes(get_all_opts).select { |idx| index_names.include? idx.name }
|
|
232
|
+
indexes_not_found = index_names - indexes.map(&:name)
|
|
233
|
+
raise Error::IndexNotFound, "Failed to find the indexes: #{indexes_not_found.join(', ')}" unless indexes_not_found.empty?
|
|
212
234
|
|
|
213
|
-
|
|
214
|
-
|
|
235
|
+
all_online = indexes.all? { |idx| idx.state == :online }
|
|
236
|
+
break if all_online
|
|
215
237
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
238
|
+
sleep(interval_millis / 1000)
|
|
239
|
+
interval_millis += 500
|
|
240
|
+
interval_millis = 1000 if interval_millis > 1000
|
|
241
|
+
end
|
|
242
|
+
raise Error::UnambiguousTimeout, "Failed to find all indexes online within the allotted time" unless all_online
|
|
219
243
|
end
|
|
220
|
-
raise Error::UnambiguousTimeout, "Failed to find all indexes online within the allotted time"
|
|
221
244
|
end
|
|
222
245
|
end
|
|
223
246
|
end
|
|
@@ -385,8 +385,12 @@ module Couchbase
|
|
|
385
385
|
alias inspect to_s
|
|
386
386
|
|
|
387
387
|
# @param [Couchbase::Backend] backend
|
|
388
|
-
|
|
388
|
+
# @param [Couchbase::Observability::Wrapper] observability wrapper
|
|
389
|
+
#
|
|
390
|
+
# @api private
|
|
391
|
+
def initialize(backend, observability)
|
|
389
392
|
@backend = backend
|
|
393
|
+
@observability = observability
|
|
390
394
|
end
|
|
391
395
|
|
|
392
396
|
# Fetches all indexes from the server
|
|
@@ -402,19 +406,25 @@ module Couchbase
|
|
|
402
406
|
warn "The attributes 'scope_name' and 'collection_name' have been deprecated. Use 'collection.query_indexes' instead"
|
|
403
407
|
end
|
|
404
408
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
409
|
+
@observability.record_operation(Observability::OP_QM_GET_ALL_INDEXES, options.parent_span, self, :query) do |obs_handler|
|
|
410
|
+
obs_handler.add_bucket_name(bucket_name)
|
|
411
|
+
obs_handler.add_scope_name(options.scope_name) unless options.scope_name.nil?
|
|
412
|
+
obs_handler.add_collection_name(options.collection_name) unless options.collection_name.nil?
|
|
413
|
+
|
|
414
|
+
res = @backend.query_index_get_all(bucket_name, options.to_backend, obs_handler)
|
|
415
|
+
res[:indexes].map do |idx|
|
|
416
|
+
QueryIndex.new do |index|
|
|
417
|
+
index.name = idx[:name]
|
|
418
|
+
index.is_primary = idx[:is_primary]
|
|
419
|
+
index.type = idx[:type]
|
|
420
|
+
index.state = idx[:state]
|
|
421
|
+
index.bucket = idx[:bucket_name]
|
|
422
|
+
index.scope = idx[:scope_name]
|
|
423
|
+
index.collection = idx[:collection_name]
|
|
424
|
+
index.index_key = idx[:index_key]
|
|
425
|
+
index.condition = idx[:condition]
|
|
426
|
+
index.partition = idx[:partition]
|
|
427
|
+
end
|
|
418
428
|
end
|
|
419
429
|
end
|
|
420
430
|
end
|
|
@@ -435,7 +445,13 @@ module Couchbase
|
|
|
435
445
|
warn "The attributes 'scope_name' and 'collection_name' have been deprecated. Use 'collection.query_indexes' instead"
|
|
436
446
|
end
|
|
437
447
|
|
|
438
|
-
@
|
|
448
|
+
@observability.record_operation(Observability::OP_QM_CREATE_INDEX, options.parent_span, self, :query) do |obs_handler|
|
|
449
|
+
obs_handler.add_bucket_name(bucket_name)
|
|
450
|
+
obs_handler.add_scope_name(options.scope_name) unless options.scope_name.nil?
|
|
451
|
+
obs_handler.add_collection_name(options.collection_name) unless options.collection_name.nil?
|
|
452
|
+
|
|
453
|
+
@backend.query_index_create(bucket_name, index_name, fields, options.to_backend, obs_handler)
|
|
454
|
+
end
|
|
439
455
|
end
|
|
440
456
|
|
|
441
457
|
# Creates new primary index
|
|
@@ -452,7 +468,13 @@ module Couchbase
|
|
|
452
468
|
warn "The attributes 'scope_name' and 'collection_name' have been deprecated. Use 'collection.query_indexes' instead"
|
|
453
469
|
end
|
|
454
470
|
|
|
455
|
-
@
|
|
471
|
+
@observability.record_operation(Observability::OP_QM_CREATE_PRIMARY_INDEX, options.parent_span, self, :query) do |obs_handler|
|
|
472
|
+
obs_handler.add_bucket_name(bucket_name)
|
|
473
|
+
obs_handler.add_scope_name(options.scope_name) unless options.scope_name.nil?
|
|
474
|
+
obs_handler.add_collection_name(options.collection_name) unless options.collection_name.nil?
|
|
475
|
+
|
|
476
|
+
@backend.query_index_create_primary(bucket_name, options.to_backend, obs_handler)
|
|
477
|
+
end
|
|
456
478
|
end
|
|
457
479
|
|
|
458
480
|
# Drops the index
|
|
@@ -470,7 +492,13 @@ module Couchbase
|
|
|
470
492
|
warn "The attributes 'scope_name' and 'collection_name' have been deprecated. Use 'collection.query_indexes' instead"
|
|
471
493
|
end
|
|
472
494
|
|
|
473
|
-
@
|
|
495
|
+
@observability.record_operation(Observability::OP_QM_DROP_INDEX, options.parent_span, self, :query) do |obs_handler|
|
|
496
|
+
obs_handler.add_bucket_name(bucket_name)
|
|
497
|
+
obs_handler.add_scope_name(options.scope_name) unless options.scope_name.nil?
|
|
498
|
+
obs_handler.add_collection_name(options.collection_name) unless options.collection_name.nil?
|
|
499
|
+
|
|
500
|
+
@backend.query_index_drop(bucket_name, index_name, options.to_backend, obs_handler)
|
|
501
|
+
end
|
|
474
502
|
end
|
|
475
503
|
|
|
476
504
|
# Drops the primary index
|
|
@@ -487,7 +515,13 @@ module Couchbase
|
|
|
487
515
|
warn "The attributes 'scope_name' and 'collection_name' have been deprecated. Use 'collection.query_indexes' instead"
|
|
488
516
|
end
|
|
489
517
|
|
|
490
|
-
@
|
|
518
|
+
@observability.record_operation(Observability::OP_QM_DROP_PRIMARY_INDEX, options.parent_span, self, :query) do |obs_handler|
|
|
519
|
+
obs_handler.add_bucket_name(bucket_name)
|
|
520
|
+
obs_handler.add_scope_name(options.scope_name) unless options.scope_name.nil?
|
|
521
|
+
obs_handler.add_collection_name(options.collection_name) unless options.collection_name.nil?
|
|
522
|
+
|
|
523
|
+
@backend.query_index_drop_primary(bucket_name, options.to_backend, obs_handler)
|
|
524
|
+
end
|
|
491
525
|
end
|
|
492
526
|
|
|
493
527
|
# Build all indexes which are currently in deferred state
|
|
@@ -503,7 +537,13 @@ module Couchbase
|
|
|
503
537
|
warn "The attributes 'scope_name' and 'collection_name' have been deprecated. Use 'collection.query_indexes' instead"
|
|
504
538
|
end
|
|
505
539
|
|
|
506
|
-
@
|
|
540
|
+
@observability.record_operation(Observability::OP_QM_BUILD_DEFERRED_INDEXES, options.parent_span, self, :query) do |obs_handler|
|
|
541
|
+
obs_handler.add_bucket_name(bucket_name)
|
|
542
|
+
obs_handler.add_scope_name(options.scope_name) unless options.scope_name.nil?
|
|
543
|
+
obs_handler.add_collection_name(options.collection_name) unless options.collection_name.nil?
|
|
544
|
+
|
|
545
|
+
@backend.query_index_build_deferred(bucket_name, options.to_backend, obs_handler)
|
|
546
|
+
end
|
|
507
547
|
end
|
|
508
548
|
|
|
509
549
|
# Polls indexes until they are online
|
|
@@ -520,24 +560,36 @@ module Couchbase
|
|
|
520
560
|
warn "The attributes 'scope_name' and 'collection_name' have been deprecated. Use 'collection.query_indexes' instead"
|
|
521
561
|
end
|
|
522
562
|
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
563
|
+
@observability.record_operation(Observability::OP_QM_WATCH_INDEXES, options.parent_span, self, :query) do |obs_handler|
|
|
564
|
+
obs_handler.add_bucket_name(bucket_name)
|
|
565
|
+
obs_handler.add_scope_name(options.scope_name) unless options.scope_name.nil?
|
|
566
|
+
obs_handler.add_collection_name(options.collection_name) unless options.collection_name.nil?
|
|
567
|
+
|
|
568
|
+
index_names.append("#primary") if options.watch_primary
|
|
569
|
+
|
|
570
|
+
interval_millis = 50
|
|
571
|
+
deadline = Time.now + (Utils::Time.extract_duration(timeout) * 0.001)
|
|
572
|
+
all_online = false
|
|
573
|
+
while Time.now <= deadline
|
|
574
|
+
get_all_opts = Options::Query::GetAllIndexes.new(
|
|
575
|
+
timeout: ((deadline - Time.now) * 1000).round,
|
|
576
|
+
scope_name: options.scope_name,
|
|
577
|
+
collection_name: options.collection_name,
|
|
578
|
+
parent_span: obs_handler.op_span,
|
|
579
|
+
)
|
|
580
|
+
indexes = get_all_indexes(bucket_name, get_all_opts).select { |idx| index_names.include? idx.name }
|
|
581
|
+
indexes_not_found = index_names - indexes.map(&:name)
|
|
582
|
+
raise Error::IndexNotFound, "Failed to find the indexes: #{indexes_not_found.join(', ')}" unless indexes_not_found.empty?
|
|
583
|
+
|
|
584
|
+
all_online = indexes.all? { |idx| idx.state == :online }
|
|
585
|
+
break if all_online
|
|
586
|
+
|
|
587
|
+
sleep(interval_millis / 1000)
|
|
588
|
+
interval_millis += 500
|
|
589
|
+
interval_millis = 1000 if interval_millis > 1000
|
|
590
|
+
end
|
|
591
|
+
raise Error::UnambiguousTimeout, "Failed to find all indexes online within the allotted time" unless all_online
|
|
539
592
|
end
|
|
540
|
-
raise Error::UnambiguousTimeout, "Failed to find all indexes online within the allotted time"
|
|
541
593
|
end
|
|
542
594
|
|
|
543
595
|
# @api private
|