couchbase 3.7.0 → 3.8.1
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 -665
- data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
- data/ext/couchbase/CMakeLists.txt +26 -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/error_context/base_error_context.hxx +32 -0
- data/ext/couchbase/core/error_context/key_value.cxx +1 -0
- data/ext/couchbase/core/error_context/key_value.hxx +23 -0
- data/ext/couchbase/core/error_context/key_value_error_context.hxx +35 -0
- data/ext/couchbase/core/error_context/subdocument_error_context.hxx +41 -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 +239 -128
- data/ext/couchbase/core/impl/bucket_manager.cxx +87 -35
- data/ext/couchbase/core/impl/collection.cxx +914 -372
- 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 +49 -17
- 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/invoke_with_node_id.hxx +44 -0
- data/ext/couchbase/core/impl/lookup_in_replica.hxx +1 -1
- data/ext/couchbase/core/impl/node_id.cxx +110 -0
- data/ext/couchbase/core/impl/node_id.hxx +40 -0
- 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 +245 -270
- 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 +89 -29
- 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.cxx +3 -4
- 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 +50 -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.cxx +12 -12
- 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.cxx +11 -11
- data/ext/couchbase/core/operations/management/collection_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_drop.cxx +11 -11
- data/ext/couchbase/core/operations/management/collection_drop.hxx +2 -0
- data/ext/couchbase/core/operations/management/collection_update.cxx +11 -11
- 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 +13 -7
- 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.cxx +5 -4
- data/ext/couchbase/core/operations/management/query_index_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/query_index_drop.cxx +7 -6
- 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.cxx +12 -13
- data/ext/couchbase/core/operations/management/scope_create.hxx +2 -0
- data/ext/couchbase/core/operations/management/scope_drop.cxx +8 -9
- 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/topology/configuration.cxx +21 -0
- data/ext/couchbase/core/topology/configuration.hxx +28 -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/core/utils/contains_string.cxx +61 -0
- data/ext/couchbase/core/utils/contains_string.hxx +26 -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 +133 -15
- data/ext/couchbase/couchbase/error.hxx +16 -0
- 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/node_id.hxx +123 -0
- data/ext/couchbase/couchbase/node_id_for_options.hxx +61 -0
- data/ext/couchbase/couchbase/node_ids_options.hxx +62 -0
- data/ext/couchbase/couchbase/password_authenticator.hxx +1 -0
- data/ext/couchbase/couchbase/result.hxx +42 -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 +589 -294
- data/ext/rcb_hdr_histogram.cxx +219 -0
- data/ext/rcb_hdr_histogram.hxx +28 -0
- data/ext/rcb_logger.cxx +15 -17
- 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 +82 -50
- data/lib/couchbase/datastructures/couchbase_map.rb +87 -50
- data/lib/couchbase/datastructures/couchbase_queue.rb +65 -38
- data/lib/couchbase/datastructures/couchbase_set.rb +58 -41
- data/lib/couchbase/deprecations.rb +1 -1
- data/lib/couchbase/diagnostics.rb +8 -8
- data/lib/couchbase/errors.rb +7 -1
- data/lib/couchbase/json_transcoder.rb +1 -1
- 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 +71 -5
- data/lib/couchbase/protostellar/client.rb +0 -2
- data/lib/couchbase/protostellar/cluster.rb +7 -0
- data/lib/couchbase/protostellar/generated/admin/analytics/v1/analytics_pb.rb +54 -0
- data/lib/couchbase/protostellar/generated/admin/analytics/v1/analytics_services_pb.rb +51 -0
- data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_pb.rb +5 -24
- data/lib/couchbase/protostellar/generated/admin/bucket/v1/bucket_services_pb.rb +16 -0
- data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_pb.rb +5 -24
- data/lib/couchbase/protostellar/generated/admin/collection/v1/collection_services_pb.rb +16 -0
- data/lib/couchbase/protostellar/generated/admin/query/v1/query_pb.rb +5 -24
- data/lib/couchbase/protostellar/generated/admin/query/v1/query_services_pb.rb +18 -0
- data/lib/couchbase/protostellar/generated/admin/search/v1/search_pb.rb +2 -23
- data/lib/couchbase/protostellar/generated/admin/search/v1/search_services_pb.rb +23 -0
- data/lib/couchbase/protostellar/generated/analytics/v1/analytics_pb.rb +4 -25
- data/lib/couchbase/protostellar/generated/analytics/v1/analytics_services_pb.rb +10 -0
- data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_pb.rb +6 -25
- data/lib/couchbase/protostellar/generated/internal/hooks/v1/hooks_services_pb.rb +18 -0
- data/lib/couchbase/protostellar/generated/internal/xdcr/v1/xdcr_pb.rb +46 -0
- data/lib/couchbase/protostellar/generated/internal/xdcr/v1/xdcr_services_pb.rb +56 -0
- data/lib/couchbase/protostellar/generated/kv/v1/kv_pb.rb +3 -26
- data/lib/couchbase/protostellar/generated/kv/v1/kv_services_pb.rb +47 -0
- data/lib/couchbase/protostellar/generated/query/v1/query_pb.rb +4 -26
- data/lib/couchbase/protostellar/generated/query/v1/query_services_pb.rb +10 -0
- data/lib/couchbase/protostellar/generated/routing/v2/routing_pb.rb +26 -0
- data/lib/couchbase/protostellar/generated/routing/v2/routing_services_pb.rb +43 -0
- data/lib/couchbase/protostellar/generated/search/v1/search_pb.rb +5 -26
- data/lib/couchbase/protostellar/generated/search/v1/search_services_pb.rb +11 -0
- data/lib/couchbase/protostellar/generated/transactions/v1/transactions_pb.rb +2 -23
- data/lib/couchbase/protostellar/generated/transactions/v1/transactions_services_pb.rb +30 -0
- data/lib/couchbase/protostellar/generated/view/v1/view_pb.rb +2 -23
- data/lib/couchbase/protostellar/generated/view/v1/view_services_pb.rb +9 -0
- data/lib/couchbase/protostellar/request_generator/admin/collection.rb +4 -2
- data/lib/couchbase/protostellar/request_generator/admin/query.rb +2 -0
- data/lib/couchbase/protostellar/request_generator/kv.rb +1 -1
- data/lib/couchbase/protostellar/scope.rb +4 -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 +263 -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 +72 -8
- data/lib/couchbase/protostellar/generated/routing/v1/routing_pb.rb +0 -52
- data/lib/couchbase/protostellar/generated/routing/v1/routing_services_pb.rb +0 -30
|
@@ -16,12 +16,11 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
#include "error_utils.hxx"
|
|
19
|
+
#include "core/utils/contains_string.hxx"
|
|
19
20
|
#include "core/utils/json.hxx"
|
|
20
21
|
|
|
21
22
|
#include <tao/json/value.hpp>
|
|
22
23
|
|
|
23
|
-
#include <regex>
|
|
24
|
-
|
|
25
24
|
namespace couchbase::core::operations::management
|
|
26
25
|
{
|
|
27
26
|
|
|
@@ -46,6 +45,9 @@ extract_common_query_error_code(std::uint64_t code, const std::string& message)
|
|
|
46
45
|
-> std::optional<std::error_code>
|
|
47
46
|
{
|
|
48
47
|
switch (code) {
|
|
48
|
+
case 3000: /* ICode: E_PARSE_SYNTAX, IKey: "parse.syntax_error" */
|
|
49
|
+
return errc::common::parsing_failure;
|
|
50
|
+
|
|
49
51
|
case 1191: /* ICode: E_SERVICE_USER_REQUEST_EXCEEDED, IKey: "service.requests.exceeded" */
|
|
50
52
|
case 1192: /* ICode: E_SERVICE_USER_REQUEST_RATE_EXCEEDED, IKey: "service.request.rate.exceeded"
|
|
51
53
|
*/
|
|
@@ -55,7 +57,7 @@ extract_common_query_error_code(std::uint64_t code, const std::string& message)
|
|
|
55
57
|
*/
|
|
56
58
|
return errc::common::rate_limited;
|
|
57
59
|
|
|
58
|
-
case 13014: /*ICode: E_DATASTORE_INSUFFICIENT_CREDENTIALS, IKey:
|
|
60
|
+
case 13014: /* ICode: E_DATASTORE_INSUFFICIENT_CREDENTIALS, IKey:
|
|
59
61
|
"datastore.couchbase.insufficient_credentials" */
|
|
60
62
|
return errc::common::authentication_failure;
|
|
61
63
|
|
|
@@ -140,12 +142,16 @@ translate_query_error_code(std::uint64_t error, const std::string& message, std:
|
|
|
140
142
|
{
|
|
141
143
|
switch (error) {
|
|
142
144
|
case 5000: /* IKey: "Internal Error" */
|
|
143
|
-
if (
|
|
145
|
+
if (utils::contains_string(message, "index", true) &&
|
|
146
|
+
utils::contains_string(message, "already exist", true)) {
|
|
144
147
|
return errc::common::index_exists;
|
|
145
|
-
}
|
|
146
|
-
|
|
148
|
+
}
|
|
149
|
+
if (utils::contains_string(message, "Index does not exist") ||
|
|
150
|
+
(utils::contains_string(message, "index", true) &&
|
|
151
|
+
utils::contains_string(message, "not found", true))) {
|
|
147
152
|
return errc::common::index_not_found;
|
|
148
|
-
}
|
|
153
|
+
}
|
|
154
|
+
if (message.find("Bucket Not Found") != std::string::npos) {
|
|
149
155
|
return errc::common::bucket_not_found;
|
|
150
156
|
}
|
|
151
157
|
break;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/eventing_function.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
#include "eventing_problem.hxx"
|
|
27
28
|
|
|
@@ -48,6 +49,7 @@ struct eventing_deploy_function_request {
|
|
|
48
49
|
|
|
49
50
|
std::optional<std::string> client_context_id{};
|
|
50
51
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
52
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
51
53
|
|
|
52
54
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
53
55
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/eventing_function.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
#include "eventing_problem.hxx"
|
|
27
28
|
|
|
@@ -48,6 +49,7 @@ struct eventing_drop_function_request {
|
|
|
48
49
|
|
|
49
50
|
std::optional<std::string> client_context_id{};
|
|
50
51
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
52
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
51
53
|
|
|
52
54
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
53
55
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/eventing_function.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
#include "eventing_problem.hxx"
|
|
27
28
|
|
|
@@ -47,6 +48,7 @@ struct eventing_get_all_functions_request {
|
|
|
47
48
|
|
|
48
49
|
std::optional<std::string> client_context_id{};
|
|
49
50
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
51
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
50
52
|
|
|
51
53
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
52
54
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/eventing_function.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
#include "eventing_problem.hxx"
|
|
27
28
|
|
|
@@ -48,6 +49,7 @@ struct eventing_get_function_request {
|
|
|
48
49
|
|
|
49
50
|
std::optional<std::string> client_context_id{};
|
|
50
51
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
52
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
51
53
|
|
|
52
54
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
53
55
|
http_context& context) const;
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
#include "core/management/eventing_function.hxx"
|
|
24
24
|
#include "core/management/eventing_status.hxx"
|
|
25
25
|
#include "core/platform/uuid.h"
|
|
26
|
+
#include "core/public_fwd.hxx"
|
|
26
27
|
#include "core/timeout_defaults.hxx"
|
|
27
28
|
#include "eventing_problem.hxx"
|
|
28
29
|
|
|
@@ -49,6 +50,7 @@ struct eventing_get_status_request {
|
|
|
49
50
|
|
|
50
51
|
std::optional<std::string> client_context_id{};
|
|
51
52
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
53
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
52
54
|
|
|
53
55
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
54
56
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/eventing_function.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
#include "eventing_problem.hxx"
|
|
27
28
|
|
|
@@ -48,6 +49,7 @@ struct eventing_pause_function_request {
|
|
|
48
49
|
|
|
49
50
|
std::optional<std::string> client_context_id{};
|
|
50
51
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
52
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
51
53
|
|
|
52
54
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
53
55
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/eventing_function.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
#include "eventing_problem.hxx"
|
|
27
28
|
|
|
@@ -48,6 +49,7 @@ struct eventing_resume_function_request {
|
|
|
48
49
|
|
|
49
50
|
std::optional<std::string> client_context_id{};
|
|
50
51
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
52
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
51
53
|
|
|
52
54
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
53
55
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/eventing_function.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
#include "eventing_problem.hxx"
|
|
27
28
|
|
|
@@ -48,6 +49,7 @@ struct eventing_undeploy_function_request {
|
|
|
48
49
|
|
|
49
50
|
std::optional<std::string> client_context_id{};
|
|
50
51
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
52
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
51
53
|
|
|
52
54
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
53
55
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/eventing_function.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
#include "eventing_problem.hxx"
|
|
27
28
|
|
|
@@ -48,6 +49,7 @@ struct eventing_upsert_function_request {
|
|
|
48
49
|
|
|
49
50
|
std::optional<std::string> client_context_id{};
|
|
50
51
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
52
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
51
53
|
|
|
52
54
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
53
55
|
http_context& context) const;
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include "core/io/http_context.hxx"
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/platform/uuid.h"
|
|
24
|
+
#include "core/public_fwd.hxx"
|
|
24
25
|
#include "core/service_type.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
@@ -49,6 +50,7 @@ struct freeform_request {
|
|
|
49
50
|
|
|
50
51
|
std::optional<std::string> client_context_id{};
|
|
51
52
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
53
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
52
54
|
|
|
53
55
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
54
56
|
http_context& context) const;
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include "core/io/http_context.hxx"
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/platform/uuid.h"
|
|
24
|
+
#include "core/public_fwd.hxx"
|
|
24
25
|
#include "core/timeout_defaults.hxx"
|
|
25
26
|
|
|
26
27
|
namespace couchbase::core::operations::management
|
|
@@ -42,6 +43,7 @@ struct group_drop_request {
|
|
|
42
43
|
|
|
43
44
|
std::optional<std::string> client_context_id{};
|
|
44
45
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
46
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
45
47
|
|
|
46
48
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
47
49
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/rbac.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -44,6 +45,7 @@ struct group_get_request {
|
|
|
44
45
|
|
|
45
46
|
std::optional<std::string> client_context_id{};
|
|
46
47
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
48
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
47
49
|
|
|
48
50
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
49
51
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/rbac.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -42,6 +43,7 @@ struct group_get_all_request {
|
|
|
42
43
|
|
|
43
44
|
std::optional<std::string> client_context_id{};
|
|
44
45
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
46
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
45
47
|
|
|
46
48
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
47
49
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/rbac.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -44,6 +45,7 @@ struct group_upsert_request {
|
|
|
44
45
|
|
|
45
46
|
std::optional<std::string> client_context_id{};
|
|
46
47
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
48
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
47
49
|
|
|
48
50
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
49
51
|
http_context& context) const;
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include "core/io/http_context.hxx"
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/platform/uuid.h"
|
|
24
|
+
#include "core/public_fwd.hxx"
|
|
24
25
|
#include "core/query_context.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
@@ -55,6 +56,7 @@ struct query_index_build_request {
|
|
|
55
56
|
|
|
56
57
|
std::optional<std::string> client_context_id{};
|
|
57
58
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
59
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
58
60
|
|
|
59
61
|
[[nodiscard]] auto encode_to(encoded_request_type& encoded, http_context& context) const
|
|
60
62
|
-> std::error_code;
|
|
@@ -21,7 +21,9 @@
|
|
|
21
21
|
#include "core/operations/management/query_index_build.hxx"
|
|
22
22
|
#include "core/operations/management/query_index_get_all_deferred.hxx"
|
|
23
23
|
#include "core/operations/operation_traits.hxx"
|
|
24
|
+
#include "core/public_fwd.hxx"
|
|
24
25
|
#include "core/query_context.hxx"
|
|
26
|
+
#include "core/tracing/constants.hxx"
|
|
25
27
|
#include "couchbase/management/query_index.hxx"
|
|
26
28
|
|
|
27
29
|
namespace couchbase::core::operations
|
|
@@ -56,6 +58,7 @@ struct query_index_build_deferred_request {
|
|
|
56
58
|
|
|
57
59
|
std::optional<std::string> client_context_id{};
|
|
58
60
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
61
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
59
62
|
|
|
60
63
|
[[nodiscard]] response_type make_response(error_context::http&& ctx,
|
|
61
64
|
const encoded_response_type& /* encoded */) const
|
|
@@ -85,36 +88,71 @@ struct query_index_build_deferred_request {
|
|
|
85
88
|
template<typename Core, typename Handler>
|
|
86
89
|
void execute(Core core, Handler handler)
|
|
87
90
|
{
|
|
88
|
-
core->
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
91
|
+
auto get_deferred_indexes_span = core->tracer()->create_span(
|
|
92
|
+
tracing::operation::mgr_query_get_all_deferred_indexes, parent_span);
|
|
93
|
+
if (get_deferred_indexes_span->uses_tags()) {
|
|
94
|
+
get_deferred_indexes_span->add_tag(tracing::attributes::op::service, tracing::service::query);
|
|
95
|
+
get_deferred_indexes_span->add_tag(tracing::attributes::op::bucket_name, bucket_name);
|
|
96
|
+
if (scope_name.has_value()) {
|
|
97
|
+
get_deferred_indexes_span->add_tag(tracing::attributes::op::scope_name, scope_name.value());
|
|
98
|
+
}
|
|
99
|
+
if (collection_name.has_value()) {
|
|
100
|
+
get_deferred_indexes_span->add_tag(tracing::attributes::op::collection_name,
|
|
101
|
+
collection_name.value());
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
core->execute(
|
|
105
|
+
query_index_get_all_deferred_request{ bucket_name,
|
|
106
|
+
scope_name.value_or(""),
|
|
107
|
+
collection_name.value_or(""),
|
|
108
|
+
query_ctx,
|
|
109
|
+
client_context_id,
|
|
110
|
+
timeout,
|
|
111
|
+
get_deferred_indexes_span },
|
|
112
|
+
[core,
|
|
113
|
+
handler = std::move(handler),
|
|
114
|
+
bucket_name = bucket_name,
|
|
115
|
+
scope_name = scope_name.value_or(""),
|
|
116
|
+
collection_name = collection_name.value_or(""),
|
|
117
|
+
query_ctx = query_ctx,
|
|
118
|
+
client_context_id = client_context_id,
|
|
119
|
+
timeout = timeout,
|
|
120
|
+
get_deferred_indexes_span = std::move(get_deferred_indexes_span)](
|
|
121
|
+
query_index_get_all_deferred_response resp1) mutable {
|
|
122
|
+
get_deferred_indexes_span->end();
|
|
123
|
+
auto list_resp = std::move(resp1);
|
|
124
|
+
if (list_resp.ctx.ec || list_resp.index_names.empty()) {
|
|
125
|
+
return handler(convert_response(std::move(list_resp)));
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
auto build_indexes_span = core->tracer()->create_span(
|
|
129
|
+
tracing::operation::mgr_query_build_indexes, get_deferred_indexes_span);
|
|
130
|
+
if (build_indexes_span->uses_tags()) {
|
|
131
|
+
build_indexes_span->add_tag(tracing::attributes::op::service, tracing::service::query);
|
|
132
|
+
build_indexes_span->add_tag(tracing::attributes::op::bucket_name, bucket_name);
|
|
133
|
+
if (!scope_name.empty()) {
|
|
134
|
+
build_indexes_span->add_tag(tracing::attributes::op::scope_name, scope_name);
|
|
135
|
+
}
|
|
136
|
+
if (!collection_name.empty()) {
|
|
137
|
+
build_indexes_span->add_tag(tracing::attributes::op::collection_name, collection_name);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
core->execute(
|
|
142
|
+
query_index_build_request{ std::move(bucket_name),
|
|
143
|
+
scope_name,
|
|
144
|
+
collection_name,
|
|
145
|
+
query_ctx,
|
|
146
|
+
std::move(list_resp.index_names),
|
|
147
|
+
client_context_id,
|
|
148
|
+
timeout,
|
|
149
|
+
build_indexes_span },
|
|
150
|
+
[handler = std::move(handler), build_indexes_span = std::move(build_indexes_span)](
|
|
151
|
+
query_index_build_response build_resp) mutable {
|
|
152
|
+
build_indexes_span->end();
|
|
153
|
+
return handler(convert_response(std::move(build_resp)));
|
|
154
|
+
});
|
|
155
|
+
});
|
|
118
156
|
}
|
|
119
157
|
};
|
|
120
158
|
} // namespace management
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
#include "query_index_create.hxx"
|
|
19
19
|
|
|
20
|
+
#include "core/utils/contains_string.hxx"
|
|
20
21
|
#include "core/utils/json.hxx"
|
|
21
22
|
#include "core/utils/keyspace.hxx"
|
|
22
23
|
#include "error_utils.hxx"
|
|
@@ -24,8 +25,6 @@
|
|
|
24
25
|
#include <spdlog/fmt/bundled/core.h>
|
|
25
26
|
#include <tao/json/value.hpp>
|
|
26
27
|
|
|
27
|
-
#include <regex>
|
|
28
|
-
|
|
29
28
|
namespace couchbase::core::operations::management
|
|
30
29
|
{
|
|
31
30
|
auto
|
|
@@ -118,13 +117,15 @@ query_index_create_request::make_response(error_context::http&& ctx,
|
|
|
118
117
|
error.message = entry.at("msg").get_string();
|
|
119
118
|
switch (error.code) {
|
|
120
119
|
case 5000: /* IKey: "Internal Error" */
|
|
121
|
-
|
|
120
|
+
{
|
|
121
|
+
if (utils::contains_string(error.message, "index", true) &&
|
|
122
|
+
utils::contains_string(error.message, "already exist", true)) {
|
|
122
123
|
index_already_exists = true;
|
|
123
124
|
}
|
|
124
125
|
if (error.message.find("Bucket Not Found") != std::string::npos) {
|
|
125
126
|
bucket_not_found = true;
|
|
126
127
|
}
|
|
127
|
-
|
|
128
|
+
} break;
|
|
128
129
|
|
|
129
130
|
case 12003: /* IKey: "datastore.couchbase.keyspace_not_found" */
|
|
130
131
|
if (error.message.find("missing_collection") != std::string::npos) {
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include "core/io/http_context.hxx"
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/platform/uuid.h"
|
|
24
|
+
#include "core/public_fwd.hxx"
|
|
24
25
|
#include "core/query_context.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
@@ -60,6 +61,7 @@ struct query_index_create_request {
|
|
|
60
61
|
|
|
61
62
|
std::optional<std::string> client_context_id{};
|
|
62
63
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
64
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
63
65
|
|
|
64
66
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
65
67
|
http_context& context) const;
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
#include "query_index_drop.hxx"
|
|
19
19
|
|
|
20
|
+
#include "core/utils/contains_string.hxx"
|
|
20
21
|
#include "core/utils/json.hxx"
|
|
21
22
|
#include "core/utils/keyspace.hxx"
|
|
22
23
|
#include "error_utils.hxx"
|
|
@@ -24,13 +25,11 @@
|
|
|
24
25
|
#include <spdlog/fmt/bundled/core.h>
|
|
25
26
|
#include <tao/json/value.hpp>
|
|
26
27
|
|
|
27
|
-
#include <regex>
|
|
28
|
-
|
|
29
28
|
namespace couchbase::core::operations::management
|
|
30
29
|
{
|
|
31
30
|
auto
|
|
32
|
-
query_index_drop_request::encode_to(encoded_request_type& encoded,
|
|
33
|
-
|
|
31
|
+
query_index_drop_request::encode_to(encoded_request_type& encoded, http_context& /*context*/) const
|
|
32
|
+
-> std::error_code
|
|
34
33
|
{
|
|
35
34
|
if (!utils::check_query_management_request(*this)) {
|
|
36
35
|
return errc::common::invalid_argument;
|
|
@@ -87,10 +86,12 @@ query_index_drop_request::make_response(error_context::http&& ctx,
|
|
|
87
86
|
error.message = entry.at("msg").get_string();
|
|
88
87
|
switch (error.code) {
|
|
89
88
|
case 5000: /* IKey: "Internal Error" */
|
|
90
|
-
|
|
89
|
+
{
|
|
90
|
+
if (utils::contains_string(error.message, "index", true) &&
|
|
91
|
+
utils::contains_string(error.message, "not found", true)) {
|
|
91
92
|
index_not_found = true;
|
|
92
93
|
}
|
|
93
|
-
|
|
94
|
+
} break;
|
|
94
95
|
|
|
95
96
|
case 12003: /* IKey: "datastore.couchbase.keyspace_not_found" */
|
|
96
97
|
if (error.message.find("missing_collection") != std::string::npos) {
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
#include "core/io/http_context.hxx"
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/platform/uuid.h"
|
|
24
|
+
#include "core/public_fwd.hxx"
|
|
24
25
|
#include "core/query_context.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
@@ -56,6 +57,7 @@ struct query_index_drop_request {
|
|
|
56
57
|
|
|
57
58
|
std::optional<std::string> client_context_id{};
|
|
58
59
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
60
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
59
61
|
|
|
60
62
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
61
63
|
http_context& context) const;
|
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
|
|
18
18
|
#pragma once
|
|
19
19
|
|
|
20
|
+
#include <couchbase/management/query_index.hxx>
|
|
21
|
+
|
|
20
22
|
#include "core/error_context/http.hxx"
|
|
21
23
|
#include "core/io/http_context.hxx"
|
|
22
24
|
#include "core/io/http_message.hxx"
|
|
23
|
-
#include "core/
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
24
26
|
#include "core/query_context.hxx"
|
|
25
|
-
#include "core/timeout_defaults.hxx"
|
|
26
|
-
#include "couchbase/management/query_index.hxx"
|
|
27
27
|
|
|
28
28
|
namespace couchbase::core::operations::management
|
|
29
29
|
{
|
|
@@ -50,6 +50,7 @@ struct query_index_get_all_request {
|
|
|
50
50
|
query_context query_ctx;
|
|
51
51
|
std::optional<std::string> client_context_id{};
|
|
52
52
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
53
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
53
54
|
|
|
54
55
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
55
56
|
http_context& context) const;
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
#include "core/io/http_context.hxx"
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/platform/uuid.h"
|
|
24
|
+
#include "core/public_fwd.hxx"
|
|
24
25
|
#include "core/query_context.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
|
-
#include "couchbase/management/query_index.hxx"
|
|
27
27
|
|
|
28
28
|
namespace couchbase::core::operations::management
|
|
29
29
|
{
|
|
@@ -51,6 +51,7 @@ struct query_index_get_all_deferred_request {
|
|
|
51
51
|
query_context query_ctx;
|
|
52
52
|
std::optional<std::string> client_context_id{};
|
|
53
53
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
54
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
54
55
|
|
|
55
56
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
56
57
|
http_context& context) const;
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
#include "core/io/http_message.hxx"
|
|
23
23
|
#include "core/management/rbac.hxx"
|
|
24
24
|
#include "core/platform/uuid.h"
|
|
25
|
+
#include "core/public_fwd.hxx"
|
|
25
26
|
#include "core/timeout_defaults.hxx"
|
|
26
27
|
|
|
27
28
|
namespace couchbase::core::operations::management
|
|
@@ -42,6 +43,7 @@ struct role_get_all_request {
|
|
|
42
43
|
|
|
43
44
|
std::optional<std::string> client_context_id{};
|
|
44
45
|
std::optional<std::chrono::milliseconds> timeout{};
|
|
46
|
+
std::shared_ptr<couchbase::tracing::request_span> parent_span{ nullptr };
|
|
45
47
|
|
|
46
48
|
[[nodiscard]] std::error_code encode_to(encoded_request_type& encoded,
|
|
47
49
|
http_context& context) const;
|