couchbase 3.3.0 → 3.4.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 +37 -13
- data/ext/couchbase/CMakeLists.txt +367 -86
- data/ext/couchbase/cmake/CompilerWarnings.cmake +11 -4
- data/ext/couchbase/cmake/Documentation.cmake +35 -0
- data/ext/couchbase/cmake/OpenSSL.cmake +23 -0
- data/ext/couchbase/cmake/Testing.cmake +61 -0
- data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +1 -0
- data/ext/couchbase/cmake/VersionInfo.cmake +13 -1
- data/ext/couchbase/cmake/build_version.hxx.in +3 -0
- data/ext/couchbase/core/CMakeLists.txt +0 -0
- data/ext/couchbase/core/agent.cxx +556 -0
- data/ext/couchbase/core/agent.hxx +165 -0
- data/ext/couchbase/core/agent_config.cxx +36 -0
- data/ext/couchbase/core/agent_config.hxx +44 -0
- data/ext/couchbase/core/agent_group.cxx +219 -0
- data/ext/couchbase/core/agent_group.hxx +79 -0
- data/ext/couchbase/core/agent_group_config.cxx +35 -0
- data/ext/couchbase/core/agent_group_config.hxx +45 -0
- data/ext/couchbase/core/agent_unit_test_api.hxx +37 -0
- data/ext/couchbase/core/analytics_query_options.cxx +72 -0
- data/ext/couchbase/core/analytics_query_options.hxx +74 -0
- data/ext/couchbase/core/analytics_scan_consistency.hxx +26 -0
- data/ext/couchbase/core/bucket.cxx +891 -0
- data/ext/couchbase/core/bucket.hxx +172 -0
- data/ext/couchbase/core/capella_ca.hxx +43 -0
- data/ext/couchbase/core/cluster.cxx +181 -0
- data/ext/couchbase/core/cluster.hxx +496 -0
- data/ext/couchbase/core/cluster_agent.cxx +36 -0
- data/ext/couchbase/core/cluster_agent.hxx +34 -0
- data/ext/couchbase/core/cluster_agent_config.cxx +35 -0
- data/ext/couchbase/core/cluster_agent_config.hxx +43 -0
- data/ext/couchbase/core/cluster_options.cxx +50 -0
- data/ext/couchbase/core/cluster_options.hxx +93 -0
- data/ext/couchbase/core/cluster_state.hxx +25 -0
- data/ext/couchbase/core/collection_id_cache_entry.hxx +37 -0
- data/ext/couchbase/core/collections_component.cxx +439 -0
- data/ext/couchbase/core/collections_component.hxx +81 -0
- data/ext/couchbase/core/collections_component_unit_test_api.hxx +36 -0
- data/ext/couchbase/core/collections_options.hxx +87 -0
- data/ext/couchbase/core/config_listener.hxx +31 -0
- data/ext/couchbase/core/config_profile.cxx +25 -0
- data/ext/couchbase/core/config_profile.hxx +92 -0
- data/ext/couchbase/core/core_sdk_shim.cxx +28 -0
- data/ext/couchbase/core/core_sdk_shim.hxx +30 -0
- data/ext/couchbase/core/crud_component.cxx +367 -0
- data/ext/couchbase/core/crud_component.hxx +60 -0
- data/ext/couchbase/core/crud_options.hxx +574 -0
- data/ext/couchbase/core/crypto/CMakeLists.txt +12 -0
- data/ext/couchbase/core/crypto/cbcrypto.cc +897 -0
- data/ext/couchbase/core/crypto/cbcrypto.h +88 -0
- data/ext/couchbase/core/design_document_namespace.hxx +26 -0
- data/ext/couchbase/core/design_document_namespace_fmt.hxx +47 -0
- data/ext/couchbase/core/diagnostics.hxx +97 -0
- data/ext/couchbase/core/diagnostics_fmt.hxx +113 -0
- data/ext/couchbase/core/diagnostics_json.hxx +100 -0
- data/ext/couchbase/core/diagntostics_options.hxx +55 -0
- data/ext/couchbase/core/dispatcher.cxx +37 -0
- data/ext/couchbase/core/dispatcher.hxx +43 -0
- data/ext/couchbase/core/document_id.cxx +102 -0
- data/ext/couchbase/core/document_id.hxx +119 -0
- data/ext/couchbase/core/document_id_fmt.hxx +37 -0
- data/ext/couchbase/core/durability_options.hxx +110 -0
- data/ext/couchbase/core/error_context/analytics.hxx +52 -0
- data/ext/couchbase/core/error_context/http.hxx +48 -0
- data/ext/couchbase/core/error_context/key_value.cxx +58 -0
- data/ext/couchbase/core/error_context/key_value.hxx +83 -0
- data/ext/couchbase/core/error_context/query.hxx +52 -0
- data/ext/couchbase/core/error_context/search.hxx +51 -0
- data/ext/couchbase/core/error_context/view.hxx +52 -0
- data/ext/couchbase/core/free_form_http_request.cxx +81 -0
- data/ext/couchbase/core/free_form_http_request.hxx +90 -0
- data/ext/couchbase/core/impl/analytics_error_category.cxx +62 -0
- data/ext/couchbase/core/impl/append.cxx +87 -0
- data/ext/couchbase/core/impl/best_effort_retry_strategy.cxx +109 -0
- data/ext/couchbase/core/impl/bootstrap_state_listener.hxx +39 -0
- data/ext/couchbase/core/impl/build_deferred_query_indexes.cxx +92 -0
- data/ext/couchbase/core/impl/cluster.cxx +185 -0
- data/ext/couchbase/core/impl/collection_query_index_manager.cxx +93 -0
- data/ext/couchbase/core/impl/common_error_category.cxx +88 -0
- data/ext/couchbase/core/impl/configuration_profiles_registry.cxx +73 -0
- data/ext/couchbase/core/impl/create_query_index.cxx +119 -0
- data/ext/couchbase/core/impl/decrement.cxx +96 -0
- data/ext/couchbase/core/impl/dns_srv_tracker.cxx +147 -0
- data/ext/couchbase/core/impl/dns_srv_tracker.hxx +68 -0
- data/ext/couchbase/core/impl/drop_query_index.cxx +108 -0
- data/ext/couchbase/core/impl/exists.cxx +47 -0
- data/ext/couchbase/core/impl/expiry.cxx +99 -0
- data/ext/couchbase/core/impl/fail_fast_retry_strategy.cxx +41 -0
- data/ext/couchbase/core/impl/field_level_encryption_error_category.cxx +63 -0
- data/ext/couchbase/core/impl/get.cxx +68 -0
- data/ext/couchbase/core/impl/get_all_query_indexes.cxx +76 -0
- data/ext/couchbase/core/impl/get_all_replicas.cxx +145 -0
- data/ext/couchbase/core/impl/get_all_replicas.hxx +79 -0
- data/ext/couchbase/core/impl/get_and_lock.cxx +49 -0
- data/ext/couchbase/core/impl/get_and_touch.cxx +49 -0
- data/ext/couchbase/core/impl/get_any_replica.cxx +134 -0
- data/ext/couchbase/core/impl/get_any_replica.hxx +76 -0
- data/ext/couchbase/core/impl/get_replica.cxx +44 -0
- data/ext/couchbase/core/impl/get_replica.hxx +52 -0
- data/ext/couchbase/core/impl/increment.cxx +96 -0
- data/ext/couchbase/core/impl/insert.cxx +90 -0
- data/ext/couchbase/core/impl/key_value_error_category.cxx +105 -0
- data/ext/couchbase/core/impl/lookup_in.cxx +68 -0
- data/ext/couchbase/core/impl/management_error_category.cxx +75 -0
- data/ext/couchbase/core/impl/mutate_in.cxx +125 -0
- data/ext/couchbase/core/impl/network_error_category.cxx +73 -0
- data/ext/couchbase/core/impl/observe_poll.cxx +355 -0
- data/ext/couchbase/core/impl/observe_poll.hxx +49 -0
- data/ext/couchbase/core/impl/observe_seqno.cxx +47 -0
- data/ext/couchbase/core/impl/observe_seqno.hxx +63 -0
- data/ext/couchbase/core/impl/prepend.cxx +87 -0
- data/ext/couchbase/core/impl/query.cxx +245 -0
- data/ext/couchbase/core/impl/query_error_category.cxx +55 -0
- data/ext/couchbase/core/impl/remove.cxx +86 -0
- data/ext/couchbase/core/impl/replace.cxx +102 -0
- data/ext/couchbase/core/impl/retry_action.cxx +39 -0
- data/ext/couchbase/core/impl/retry_reason.cxx +85 -0
- data/ext/couchbase/core/impl/search_error_category.cxx +51 -0
- data/ext/couchbase/core/impl/streaming_json_lexter_error_category.cxx +102 -0
- data/ext/couchbase/core/impl/subdoc/array_add_unique.cxx +36 -0
- data/ext/couchbase/core/impl/subdoc/array_append.cxx +37 -0
- data/ext/couchbase/core/impl/subdoc/array_insert.cxx +37 -0
- data/ext/couchbase/core/impl/subdoc/array_prepend.cxx +37 -0
- data/ext/couchbase/core/impl/subdoc/command.hxx +41 -0
- data/ext/couchbase/core/impl/subdoc/command_bundle.hxx +42 -0
- data/ext/couchbase/core/impl/subdoc/count.cxx +36 -0
- data/ext/couchbase/core/impl/subdoc/counter.cxx +37 -0
- data/ext/couchbase/core/impl/subdoc/exists.cxx +36 -0
- data/ext/couchbase/core/impl/subdoc/get.cxx +36 -0
- data/ext/couchbase/core/impl/subdoc/insert.cxx +36 -0
- data/ext/couchbase/core/impl/subdoc/join_values.cxx +56 -0
- data/ext/couchbase/core/impl/subdoc/join_values.hxx +27 -0
- data/ext/couchbase/core/impl/subdoc/lookup_in_macro.cxx +117 -0
- data/ext/couchbase/core/impl/subdoc/lookup_in_specs.cxx +42 -0
- data/ext/couchbase/core/impl/subdoc/mutate_in_macro.cxx +77 -0
- data/ext/couchbase/core/impl/subdoc/mutate_in_specs.cxx +42 -0
- data/ext/couchbase/core/impl/subdoc/opcode.hxx +47 -0
- data/ext/couchbase/core/impl/subdoc/path_flags.hxx +77 -0
- data/ext/couchbase/core/impl/subdoc/remove.cxx +36 -0
- data/ext/couchbase/core/impl/subdoc/replace.cxx +36 -0
- data/ext/couchbase/core/impl/subdoc/upsert.cxx +36 -0
- data/ext/couchbase/core/impl/touch.cxx +49 -0
- data/ext/couchbase/core/impl/transaction_error_category.cxx +54 -0
- data/ext/couchbase/core/impl/transaction_op_error_category.cxx +90 -0
- data/ext/couchbase/core/impl/unlock.cxx +47 -0
- data/ext/couchbase/core/impl/upsert.cxx +100 -0
- data/ext/couchbase/core/impl/view_error_category.cxx +50 -0
- data/ext/couchbase/core/impl/watch_query_indexes.cxx +168 -0
- data/ext/couchbase/core/impl/with_legacy_durability.hxx +65 -0
- data/ext/couchbase/core/io/dns_client.hxx +224 -0
- data/ext/couchbase/core/io/dns_codec.hxx +207 -0
- data/ext/couchbase/core/io/dns_config.cxx +157 -0
- data/ext/couchbase/core/io/dns_config.hxx +68 -0
- data/ext/couchbase/core/io/dns_message.hxx +555 -0
- data/ext/couchbase/core/io/http_command.hxx +182 -0
- data/ext/couchbase/core/io/http_context.hxx +40 -0
- data/ext/couchbase/core/io/http_message.hxx +116 -0
- data/ext/couchbase/core/io/http_parser.cxx +141 -0
- data/ext/couchbase/core/io/http_parser.hxx +55 -0
- data/ext/couchbase/core/io/http_session.hxx +552 -0
- data/ext/couchbase/core/io/http_session_manager.hxx +388 -0
- data/ext/couchbase/core/io/http_traits.hxx +38 -0
- data/ext/couchbase/core/io/ip_protocol.hxx +28 -0
- data/ext/couchbase/core/io/mcbp_command.hxx +317 -0
- data/ext/couchbase/core/io/mcbp_context.hxx +40 -0
- data/ext/couchbase/core/io/mcbp_message.cxx +39 -0
- data/ext/couchbase/core/io/mcbp_message.hxx +60 -0
- data/ext/couchbase/core/io/mcbp_parser.cxx +88 -0
- data/ext/couchbase/core/io/mcbp_parser.hxx +45 -0
- data/ext/couchbase/core/io/mcbp_session.cxx +1690 -0
- data/ext/couchbase/core/io/mcbp_session.hxx +130 -0
- data/ext/couchbase/core/io/mcbp_traits.hxx +38 -0
- data/ext/couchbase/core/io/query_cache.hxx +71 -0
- data/ext/couchbase/core/io/retry_context.hxx +89 -0
- data/ext/couchbase/core/io/retry_orchestrator.hxx +97 -0
- data/ext/couchbase/core/io/streams.hxx +258 -0
- data/ext/couchbase/core/json_string.hxx +82 -0
- data/ext/couchbase/core/key_value_config.cxx +35 -0
- data/ext/couchbase/core/key_value_config.hxx +40 -0
- data/ext/couchbase/core/logger/CMakeLists.txt +9 -0
- data/ext/couchbase/core/logger/configuration.hxx +60 -0
- data/ext/couchbase/core/logger/custom_rotating_file_sink.cxx +157 -0
- data/ext/couchbase/{couchbase → core}/logger/custom_rotating_file_sink.hxx +0 -0
- data/ext/couchbase/core/logger/level.hxx +21 -0
- data/ext/couchbase/core/logger/logger.cxx +340 -0
- data/ext/couchbase/core/logger/logger.hxx +240 -0
- data/ext/couchbase/core/management/analytics_dataset.hxx +30 -0
- data/ext/couchbase/core/management/analytics_index.hxx +30 -0
- data/ext/couchbase/core/management/analytics_link.hxx +22 -0
- data/ext/couchbase/core/management/analytics_link_azure_blob_external.cxx +68 -0
- data/ext/couchbase/core/management/analytics_link_azure_blob_external.hxx +76 -0
- data/ext/couchbase/core/management/analytics_link_azure_blob_external_json.hxx +52 -0
- data/ext/couchbase/core/management/analytics_link_couchbase_remote.cxx +105 -0
- data/ext/couchbase/core/management/analytics_link_couchbase_remote.hxx +107 -0
- data/ext/couchbase/core/management/analytics_link_couchbase_remote_json.hxx +63 -0
- data/ext/couchbase/core/management/analytics_link_s3_external.cxx +58 -0
- data/ext/couchbase/core/management/analytics_link_s3_external.hxx +69 -0
- data/ext/couchbase/core/management/analytics_link_s3_external_json.hxx +47 -0
- data/ext/couchbase/core/management/bucket_settings.hxx +134 -0
- data/ext/couchbase/core/management/bucket_settings_json.hxx +123 -0
- data/ext/couchbase/core/management/design_document.hxx +41 -0
- data/ext/couchbase/core/management/eventing_function.hxx +188 -0
- data/ext/couchbase/core/management/eventing_function_json.hxx +212 -0
- data/ext/couchbase/core/management/eventing_status.hxx +84 -0
- data/ext/couchbase/core/management/eventing_status_json.hxx +77 -0
- data/ext/couchbase/core/management/rbac.hxx +77 -0
- data/ext/couchbase/core/management/rbac_fmt.hxx +49 -0
- data/ext/couchbase/core/management/rbac_json.hxx +179 -0
- data/ext/couchbase/core/management/search_index.hxx +38 -0
- data/ext/couchbase/core/management/search_index_json.hxx +58 -0
- data/ext/couchbase/core/mcbp/barrier_frame.hxx +27 -0
- data/ext/couchbase/core/mcbp/big_endian.cxx +73 -0
- data/ext/couchbase/core/mcbp/big_endian.hxx +46 -0
- data/ext/couchbase/core/mcbp/buffer_writer.cxx +78 -0
- data/ext/couchbase/core/mcbp/buffer_writer.hxx +38 -0
- data/ext/couchbase/core/mcbp/codec.cxx +501 -0
- data/ext/couchbase/core/mcbp/codec.hxx +52 -0
- data/ext/couchbase/core/mcbp/command_code.cxx +77 -0
- data/ext/couchbase/core/mcbp/command_code.hxx +33 -0
- data/ext/couchbase/core/mcbp/completion_token.hxx +69 -0
- data/ext/couchbase/core/mcbp/datatype.hxx +40 -0
- data/ext/couchbase/core/mcbp/durability_level.hxx +35 -0
- data/ext/couchbase/core/mcbp/durability_level_frame.hxx +28 -0
- data/ext/couchbase/core/mcbp/durability_timeout_frame.hxx +29 -0
- data/ext/couchbase/core/mcbp/frame_type.hxx +41 -0
- data/ext/couchbase/core/mcbp/open_tracing_frame.hxx +29 -0
- data/ext/couchbase/core/mcbp/operation_consumer.cxx +47 -0
- data/ext/couchbase/core/mcbp/operation_consumer.hxx +42 -0
- data/ext/couchbase/core/mcbp/operation_queue.cxx +158 -0
- data/ext/couchbase/core/mcbp/operation_queue.hxx +57 -0
- data/ext/couchbase/core/mcbp/packet.cxx +92 -0
- data/ext/couchbase/core/mcbp/packet.hxx +71 -0
- data/ext/couchbase/core/mcbp/preserve_expiry_frame.hxx +26 -0
- data/ext/couchbase/core/mcbp/queue_callback.hxx +34 -0
- data/ext/couchbase/core/mcbp/queue_request.cxx +174 -0
- data/ext/couchbase/core/mcbp/queue_request.hxx +120 -0
- data/ext/couchbase/core/mcbp/queue_request_connection_info.hxx +29 -0
- data/ext/couchbase/core/mcbp/queue_response.hxx +37 -0
- data/ext/couchbase/core/mcbp/read_units_frame.hxx +28 -0
- data/ext/couchbase/core/mcbp/server_duration.cxx +40 -0
- data/ext/couchbase/core/mcbp/server_duration.hxx +32 -0
- data/ext/couchbase/core/mcbp/server_duration_frame.hxx +28 -0
- data/ext/couchbase/core/mcbp/stream_id_frame.hxx +28 -0
- data/ext/couchbase/core/mcbp/unsupported_frame.hxx +32 -0
- data/ext/couchbase/core/mcbp/user_impersonation_frame.hxx +30 -0
- data/ext/couchbase/core/mcbp/write_units_frame.hxx +29 -0
- data/ext/couchbase/core/meta/CMakeLists.txt +17 -0
- data/ext/couchbase/core/meta/features.hxx +31 -0
- data/ext/couchbase/core/meta/version.cxx +264 -0
- data/ext/couchbase/core/meta/version.hxx +56 -0
- data/ext/couchbase/core/metrics/CMakeLists.txt +13 -0
- data/ext/couchbase/core/metrics/logging_meter.cxx +235 -0
- data/ext/couchbase/core/metrics/logging_meter.hxx +60 -0
- data/ext/couchbase/core/metrics/logging_meter_options.hxx +28 -0
- data/ext/couchbase/core/metrics/noop_meter.hxx +47 -0
- data/ext/couchbase/core/n1ql_query_options.cxx +94 -0
- data/ext/couchbase/core/n1ql_query_options.hxx +78 -0
- data/ext/couchbase/core/operation_map.hxx +36 -0
- data/ext/couchbase/core/operations/document_analytics.cxx +221 -0
- data/ext/couchbase/core/operations/document_analytics.hxx +113 -0
- data/ext/couchbase/core/operations/document_append.cxx +45 -0
- data/ext/couchbase/core/operations/document_append.hxx +78 -0
- data/ext/couchbase/core/operations/document_decrement.cxx +53 -0
- data/ext/couchbase/core/operations/document_decrement.hxx +81 -0
- data/ext/couchbase/core/operations/document_exists.cxx +50 -0
- data/ext/couchbase/core/operations/document_exists.hxx +72 -0
- data/ext/couchbase/core/operations/document_get.cxx +44 -0
- data/ext/couchbase/core/operations/document_get.hxx +62 -0
- data/ext/couchbase/core/operations/document_get_all_replicas.hxx +143 -0
- data/ext/couchbase/core/operations/document_get_and_lock.cxx +45 -0
- data/ext/couchbase/core/operations/document_get_and_lock.hxx +64 -0
- data/ext/couchbase/core/operations/document_get_and_touch.cxx +45 -0
- data/ext/couchbase/core/operations/document_get_and_touch.hxx +65 -0
- data/ext/couchbase/core/operations/document_get_any_replica.hxx +133 -0
- data/ext/couchbase/core/operations/document_get_projected.cxx +238 -0
- data/ext/couchbase/core/operations/document_get_projected.hxx +68 -0
- data/ext/couchbase/core/operations/document_increment.cxx +53 -0
- data/ext/couchbase/core/operations/document_increment.hxx +81 -0
- data/ext/couchbase/core/operations/document_insert.cxx +51 -0
- data/ext/couchbase/core/operations/document_insert.hxx +80 -0
- data/ext/couchbase/core/operations/document_lookup_in.cxx +97 -0
- data/ext/couchbase/core/operations/document_lookup_in.hxx +77 -0
- data/ext/couchbase/core/operations/document_mutate_in.cxx +118 -0
- data/ext/couchbase/core/operations/document_mutate_in.hxx +95 -0
- data/ext/couchbase/core/operations/document_prepend.cxx +45 -0
- data/ext/couchbase/core/operations/document_prepend.hxx +78 -0
- data/ext/couchbase/core/operations/document_query.cxx +386 -0
- data/ext/couchbase/core/operations/document_query.hxx +128 -0
- data/ext/couchbase/core/operations/document_remove.cxx +45 -0
- data/ext/couchbase/core/operations/document_remove.hxx +78 -0
- data/ext/couchbase/core/operations/document_replace.cxx +55 -0
- data/ext/couchbase/core/operations/document_replace.hxx +82 -0
- data/ext/couchbase/core/operations/document_search.cxx +312 -0
- data/ext/couchbase/core/operations/document_search.hxx +163 -0
- data/ext/couchbase/core/operations/document_touch.cxx +43 -0
- data/ext/couchbase/core/operations/document_touch.hxx +61 -0
- data/ext/couchbase/core/operations/document_unlock.cxx +43 -0
- data/ext/couchbase/core/operations/document_unlock.hxx +61 -0
- data/ext/couchbase/core/operations/document_upsert.cxx +54 -0
- data/ext/couchbase/core/operations/document_upsert.hxx +81 -0
- data/ext/couchbase/core/operations/document_view.cxx +197 -0
- data/ext/couchbase/core/operations/document_view.hxx +109 -0
- data/ext/couchbase/core/operations/http_noop.cxx +64 -0
- data/ext/couchbase/core/operations/http_noop.hxx +48 -0
- data/ext/couchbase/core/operations/management/CMakeLists.txt +80 -0
- data/ext/couchbase/core/operations/management/analytics.hxx +34 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_create.cxx +93 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +57 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_drop.cxx +82 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +54 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_get_all.cxx +78 -0
- data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +52 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_create.cxx +81 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +53 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_drop.cxx +81 -0
- data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +53 -0
- data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.cxx +69 -0
- data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +52 -0
- data/ext/couchbase/core/operations/management/analytics_index_create.cxx +105 -0
- data/ext/couchbase/core/operations/management/analytics_index_create.hxx +56 -0
- data/ext/couchbase/core/operations/management/analytics_index_drop.cxx +89 -0
- data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +55 -0
- data/ext/couchbase/core/operations/management/analytics_index_get_all.cxx +79 -0
- data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +52 -0
- data/ext/couchbase/core/operations/management/analytics_link_connect.cxx +81 -0
- data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +57 -0
- data/ext/couchbase/core/operations/management/analytics_link_create.cxx +86 -0
- data/ext/couchbase/core/operations/management/analytics_link_create.hxx +77 -0
- data/ext/couchbase/core/operations/management/analytics_link_disconnect.cxx +79 -0
- data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +56 -0
- data/ext/couchbase/core/operations/management/analytics_link_drop.cxx +102 -0
- data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +56 -0
- data/ext/couchbase/core/operations/management/analytics_link_get_all.cxx +128 -0
- data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +63 -0
- data/ext/couchbase/core/operations/management/analytics_link_replace.cxx +86 -0
- data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +78 -0
- data/ext/couchbase/core/operations/management/analytics_link_utils.hxx +37 -0
- data/ext/couchbase/core/operations/management/analytics_problem.hxx +31 -0
- data/ext/couchbase/core/operations/management/bucket.hxx +25 -0
- data/ext/couchbase/core/operations/management/bucket_create.cxx +171 -0
- data/ext/couchbase/core/operations/management/bucket_create.hxx +52 -0
- data/ext/couchbase/core/operations/management/bucket_describe.cxx +98 -0
- data/ext/couchbase/core/operations/management/bucket_describe.hxx +64 -0
- data/ext/couchbase/core/operations/management/bucket_drop.cxx +51 -0
- data/ext/couchbase/core/operations/management/bucket_drop.hxx +49 -0
- data/ext/couchbase/core/operations/management/bucket_flush.cxx +58 -0
- data/ext/couchbase/core/operations/management/bucket_flush.hxx +49 -0
- data/ext/couchbase/core/operations/management/bucket_get.cxx +58 -0
- data/ext/couchbase/core/operations/management/bucket_get.hxx +51 -0
- data/ext/couchbase/core/operations/management/bucket_get_all.cxx +58 -0
- data/ext/couchbase/core/operations/management/bucket_get_all.hxx +49 -0
- data/ext/couchbase/core/operations/management/bucket_update.cxx +130 -0
- data/ext/couchbase/core/operations/management/bucket_update.hxx +52 -0
- data/ext/couchbase/core/operations/management/change_password.cxx +55 -0
- data/ext/couchbase/core/operations/management/change_password.hxx +50 -0
- data/ext/couchbase/core/operations/management/cluster_describe.cxx +89 -0
- data/ext/couchbase/core/operations/management/cluster_describe.hxx +72 -0
- data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.cxx +43 -0
- data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +48 -0
- data/ext/couchbase/core/operations/management/collection_create.cxx +82 -0
- data/ext/couchbase/core/operations/management/collection_create.hxx +53 -0
- data/ext/couchbase/core/operations/management/collection_drop.cxx +72 -0
- data/ext/couchbase/core/operations/management/collection_drop.hxx +52 -0
- data/ext/couchbase/core/operations/management/collections.hxx +25 -0
- data/ext/couchbase/core/operations/management/collections_manifest_get.cxx +40 -0
- data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +53 -0
- data/ext/couchbase/core/operations/management/error_utils.cxx +267 -0
- data/ext/couchbase/core/operations/management/error_utils.hxx +49 -0
- data/ext/couchbase/core/operations/management/eventing.hxx +28 -0
- data/ext/couchbase/core/operations/management/eventing_deploy_function.cxx +55 -0
- data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +52 -0
- data/ext/couchbase/core/operations/management/eventing_drop_function.cxx +56 -0
- data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +52 -0
- data/ext/couchbase/core/operations/management/eventing_get_all_functions.cxx +63 -0
- data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +51 -0
- data/ext/couchbase/core/operations/management/eventing_get_function.cxx +55 -0
- data/ext/couchbase/core/operations/management/eventing_get_function.hxx +53 -0
- data/ext/couchbase/core/operations/management/eventing_get_status.cxx +55 -0
- data/ext/couchbase/core/operations/management/eventing_get_status.hxx +53 -0
- data/ext/couchbase/core/operations/management/eventing_pause_function.cxx +55 -0
- data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +52 -0
- data/ext/couchbase/core/operations/management/eventing_problem.hxx +32 -0
- data/ext/couchbase/core/operations/management/eventing_resume_function.cxx +55 -0
- data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +52 -0
- data/ext/couchbase/core/operations/management/eventing_undeploy_function.cxx +55 -0
- data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +52 -0
- data/ext/couchbase/core/operations/management/eventing_upsert_function.cxx +340 -0
- data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +52 -0
- data/ext/couchbase/core/operations/management/freeform.cxx +54 -0
- data/ext/couchbase/core/operations/management/freeform.hxx +55 -0
- data/ext/couchbase/core/operations/management/group_drop.cxx +50 -0
- data/ext/couchbase/core/operations/management/group_drop.hxx +49 -0
- data/ext/couchbase/core/operations/management/group_get.cxx +59 -0
- data/ext/couchbase/core/operations/management/group_get.hxx +50 -0
- data/ext/couchbase/core/operations/management/group_get_all.cxx +57 -0
- data/ext/couchbase/core/operations/management/group_get_all.hxx +49 -0
- data/ext/couchbase/core/operations/management/group_upsert.cxx +95 -0
- data/ext/couchbase/core/operations/management/group_upsert.hxx +51 -0
- data/ext/couchbase/core/operations/management/query.hxx +25 -0
- data/ext/couchbase/core/operations/management/query_index_build.cxx +92 -0
- data/ext/couchbase/core/operations/management/query_index_build.hxx +62 -0
- data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +116 -0
- data/ext/couchbase/core/operations/management/query_index_create.cxx +146 -0
- data/ext/couchbase/core/operations/management/query_index_create.hxx +67 -0
- data/ext/couchbase/core/operations/management/query_index_drop.cxx +127 -0
- data/ext/couchbase/core/operations/management/query_index_drop.hxx +63 -0
- data/ext/couchbase/core/operations/management/query_index_get_all.cxx +129 -0
- data/ext/couchbase/core/operations/management/query_index_get_all.hxx +56 -0
- data/ext/couchbase/core/operations/management/query_index_get_all_deferred.cxx +96 -0
- data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +57 -0
- data/ext/couchbase/core/operations/management/role_get_all.cxx +57 -0
- data/ext/couchbase/core/operations/management/role_get_all.hxx +49 -0
- data/ext/couchbase/core/operations/management/scope_create.cxx +74 -0
- data/ext/couchbase/core/operations/management/scope_create.hxx +51 -0
- data/ext/couchbase/core/operations/management/scope_drop.cxx +69 -0
- data/ext/couchbase/core/operations/management/scope_drop.hxx +51 -0
- data/ext/couchbase/core/operations/management/scope_get_all.cxx +61 -0
- data/ext/couchbase/core/operations/management/scope_get_all.hxx +51 -0
- data/ext/couchbase/core/operations/management/search.hxx +30 -0
- data/ext/couchbase/core/operations/management/search_get_stats.cxx +41 -0
- data/ext/couchbase/core/operations/management/search_get_stats.hxx +48 -0
- data/ext/couchbase/core/operations/management/search_index_analyze_document.cxx +84 -0
- data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +54 -0
- data/ext/couchbase/core/operations/management/search_index_control_ingest.cxx +72 -0
- data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +52 -0
- data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.cxx +72 -0
- data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +57 -0
- data/ext/couchbase/core/operations/management/search_index_control_query.cxx +72 -0
- data/ext/couchbase/core/operations/management/search_index_control_query.hxx +52 -0
- data/ext/couchbase/core/operations/management/search_index_drop.cxx +71 -0
- data/ext/couchbase/core/operations/management/search_index_drop.hxx +51 -0
- data/ext/couchbase/core/operations/management/search_index_get.cxx +74 -0
- data/ext/couchbase/core/operations/management/search_index_get.hxx +54 -0
- data/ext/couchbase/core/operations/management/search_index_get_all.cxx +66 -0
- data/ext/couchbase/core/operations/management/search_index_get_all.hxx +51 -0
- data/ext/couchbase/core/operations/management/search_index_get_documents_count.cxx +78 -0
- data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +53 -0
- data/ext/couchbase/core/operations/management/search_index_get_stats.cxx +70 -0
- data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +52 -0
- data/ext/couchbase/core/operations/management/search_index_upsert.cxx +114 -0
- data/ext/couchbase/core/operations/management/search_index_upsert.hxx +54 -0
- data/ext/couchbase/core/operations/management/user.hxx +29 -0
- data/ext/couchbase/core/operations/management/user_drop.cxx +51 -0
- data/ext/couchbase/core/operations/management/user_drop.hxx +51 -0
- data/ext/couchbase/core/operations/management/user_get.cxx +60 -0
- data/ext/couchbase/core/operations/management/user_get.hxx +52 -0
- data/ext/couchbase/core/operations/management/user_get_all.cxx +58 -0
- data/ext/couchbase/core/operations/management/user_get_all.hxx +51 -0
- data/ext/couchbase/core/operations/management/user_upsert.cxx +100 -0
- data/ext/couchbase/core/operations/management/user_upsert.hxx +52 -0
- data/ext/couchbase/core/operations/management/view.hxx +23 -0
- data/ext/couchbase/core/operations/management/view_index_drop.cxx +45 -0
- data/ext/couchbase/core/operations/management/view_index_drop.hxx +52 -0
- data/ext/couchbase/core/operations/management/view_index_get.cxx +73 -0
- data/ext/couchbase/core/operations/management/view_index_get.hxx +53 -0
- data/ext/couchbase/core/operations/management/view_index_get_all.cxx +107 -0
- data/ext/couchbase/core/operations/management/view_index_get_all.hxx +52 -0
- data/ext/couchbase/core/operations/management/view_index_upsert.cxx +70 -0
- data/ext/couchbase/core/operations/management/view_index_upsert.hxx +51 -0
- data/ext/couchbase/core/operations/mcbp_noop.cxx +38 -0
- data/ext/couchbase/core/operations/mcbp_noop.hxx +49 -0
- data/ext/couchbase/core/operations/operation_traits.hxx +31 -0
- data/ext/couchbase/core/operations.hxx +44 -0
- data/ext/couchbase/core/origin.hxx +195 -0
- data/ext/couchbase/core/pending_operation.hxx +26 -0
- data/ext/couchbase/core/ping_collector.hxx +32 -0
- data/ext/couchbase/core/ping_options.hxx +86 -0
- data/ext/couchbase/core/ping_reporter.hxx +30 -0
- data/ext/couchbase/core/platform/CMakeLists.txt +16 -0
- data/ext/couchbase/core/platform/backtrace.c +189 -0
- data/ext/couchbase/{couchbase → core}/platform/backtrace.h +0 -0
- data/ext/couchbase/core/platform/base64.cc +253 -0
- data/ext/couchbase/core/platform/base64.h +52 -0
- data/ext/couchbase/core/platform/dirutils.cc +123 -0
- data/ext/couchbase/core/platform/dirutils.h +43 -0
- data/ext/couchbase/core/platform/random.cc +120 -0
- data/ext/couchbase/core/platform/random.h +39 -0
- data/ext/couchbase/core/platform/string_hex.cc +101 -0
- data/ext/couchbase/core/platform/string_hex.h +50 -0
- data/ext/couchbase/core/platform/terminate_handler.cc +125 -0
- data/ext/couchbase/core/platform/terminate_handler.h +36 -0
- data/ext/couchbase/core/platform/uuid.cc +102 -0
- data/ext/couchbase/core/platform/uuid.h +56 -0
- data/ext/couchbase/core/protocol/client_opcode.hxx +369 -0
- data/ext/couchbase/core/protocol/client_opcode_fmt.hxx +325 -0
- data/ext/couchbase/core/protocol/client_request.cxx +38 -0
- data/ext/couchbase/core/protocol/client_request.hxx +167 -0
- data/ext/couchbase/core/protocol/client_response.cxx +75 -0
- data/ext/couchbase/core/protocol/client_response.hxx +210 -0
- data/ext/couchbase/core/protocol/cmd_append.cxx +74 -0
- data/ext/couchbase/core/protocol/cmd_append.hxx +107 -0
- data/ext/couchbase/core/protocol/cmd_cluster_map_change_notification.cxx +53 -0
- data/ext/couchbase/core/protocol/cmd_cluster_map_change_notification.hxx +57 -0
- data/ext/couchbase/core/protocol/cmd_decrement.cxx +96 -0
- data/ext/couchbase/core/protocol/cmd_decrement.hxx +130 -0
- data/ext/couchbase/core/protocol/cmd_get.cxx +59 -0
- data/ext/couchbase/core/protocol/cmd_get.hxx +96 -0
- data/ext/couchbase/core/protocol/cmd_get_and_lock.cxx +66 -0
- data/ext/couchbase/core/protocol/cmd_get_and_lock.hxx +112 -0
- data/ext/couchbase/core/protocol/cmd_get_and_touch.cxx +66 -0
- data/ext/couchbase/core/protocol/cmd_get_and_touch.hxx +112 -0
- data/ext/couchbase/core/protocol/cmd_get_cluster_config.cxx +85 -0
- data/ext/couchbase/core/protocol/cmd_get_cluster_config.hxx +89 -0
- data/ext/couchbase/core/protocol/cmd_get_collection_id.cxx +60 -0
- data/ext/couchbase/core/protocol/cmd_get_collection_id.hxx +95 -0
- data/ext/couchbase/core/protocol/cmd_get_collections_manifest.cxx +51 -0
- data/ext/couchbase/core/protocol/cmd_get_collections_manifest.hxx +84 -0
- data/ext/couchbase/core/protocol/cmd_get_error_map.cxx +61 -0
- data/ext/couchbase/core/protocol/cmd_get_error_map.hxx +103 -0
- data/ext/couchbase/core/protocol/cmd_get_meta.cxx +70 -0
- data/ext/couchbase/core/protocol/cmd_get_meta.hxx +117 -0
- data/ext/couchbase/core/protocol/cmd_get_replica.cxx +71 -0
- data/ext/couchbase/core/protocol/cmd_get_replica.hxx +88 -0
- data/ext/couchbase/core/protocol/cmd_hello.cxx +76 -0
- data/ext/couchbase/core/protocol/cmd_hello.hxx +140 -0
- data/ext/couchbase/core/protocol/cmd_increment.cxx +98 -0
- data/ext/couchbase/core/protocol/cmd_increment.hxx +130 -0
- data/ext/couchbase/core/protocol/cmd_info.hxx +30 -0
- data/ext/couchbase/core/protocol/cmd_insert.cxx +83 -0
- data/ext/couchbase/core/protocol/cmd_insert.hxx +124 -0
- data/ext/couchbase/core/protocol/cmd_lookup_in.cxx +108 -0
- data/ext/couchbase/core/protocol/cmd_lookup_in.hxx +139 -0
- data/ext/couchbase/core/protocol/cmd_mutate_in.cxx +163 -0
- data/ext/couchbase/core/protocol/cmd_mutate_in.hxx +216 -0
- data/ext/couchbase/core/protocol/cmd_noop.cxx +36 -0
- data/ext/couchbase/core/protocol/cmd_noop.hxx +75 -0
- data/ext/couchbase/core/protocol/cmd_observe_seqno.cxx +92 -0
- data/ext/couchbase/core/protocol/cmd_observe_seqno.hxx +132 -0
- data/ext/couchbase/core/protocol/cmd_prepend.cxx +73 -0
- data/ext/couchbase/core/protocol/cmd_prepend.hxx +103 -0
- data/ext/couchbase/core/protocol/cmd_remove.cxx +74 -0
- data/ext/couchbase/core/protocol/cmd_remove.hxx +94 -0
- data/ext/couchbase/core/protocol/cmd_replace.cxx +92 -0
- data/ext/couchbase/core/protocol/cmd_replace.hxx +131 -0
- data/ext/couchbase/core/protocol/cmd_sasl_auth.cxx +61 -0
- data/ext/couchbase/core/protocol/cmd_sasl_auth.hxx +91 -0
- data/ext/couchbase/core/protocol/cmd_sasl_list_mechs.cxx +53 -0
- data/ext/couchbase/core/protocol/cmd_sasl_list_mechs.hxx +82 -0
- data/ext/couchbase/core/protocol/cmd_sasl_step.cxx +61 -0
- data/ext/couchbase/core/protocol/cmd_sasl_step.hxx +91 -0
- data/ext/couchbase/core/protocol/cmd_select_bucket.cxx +45 -0
- data/ext/couchbase/core/protocol/cmd_select_bucket.hxx +79 -0
- data/ext/couchbase/core/protocol/cmd_touch.cxx +53 -0
- data/ext/couchbase/core/protocol/cmd_touch.hxx +84 -0
- data/ext/couchbase/core/protocol/cmd_unlock.cxx +44 -0
- data/ext/couchbase/core/protocol/cmd_unlock.hxx +81 -0
- data/ext/couchbase/core/protocol/cmd_upsert.cxx +92 -0
- data/ext/couchbase/core/protocol/cmd_upsert.hxx +126 -0
- data/ext/couchbase/core/protocol/datatype.hxx +48 -0
- data/ext/couchbase/core/protocol/enhanced_error_info.hxx +23 -0
- data/ext/couchbase/core/protocol/frame_info_id.hxx +142 -0
- data/ext/couchbase/core/protocol/frame_info_id_fmt.hxx +79 -0
- data/ext/couchbase/core/protocol/frame_info_utils.cxx +59 -0
- data/ext/couchbase/core/protocol/frame_info_utils.hxx +52 -0
- data/ext/couchbase/core/protocol/hello_feature.hxx +193 -0
- data/ext/couchbase/core/protocol/hello_feature_fmt.hxx +112 -0
- data/ext/couchbase/core/protocol/magic.hxx +53 -0
- data/ext/couchbase/core/protocol/magic_fmt.hxx +58 -0
- data/ext/couchbase/core/protocol/server_opcode.hxx +39 -0
- data/ext/couchbase/core/protocol/server_opcode_fmt.hxx +46 -0
- data/ext/couchbase/core/protocol/server_request.hxx +121 -0
- data/ext/couchbase/core/protocol/status.cxx +202 -0
- data/ext/couchbase/core/protocol/status.hxx +118 -0
- data/ext/couchbase/core/query_context.hxx +79 -0
- data/ext/couchbase/core/range_scan_options.cxx +57 -0
- data/ext/couchbase/core/range_scan_options.hxx +139 -0
- data/ext/couchbase/core/range_scan_orchestrator.cxx +495 -0
- data/ext/couchbase/core/range_scan_orchestrator.hxx +54 -0
- data/ext/couchbase/core/range_scan_orchestrator_options.hxx +54 -0
- data/ext/couchbase/core/resource_units.hxx +26 -0
- data/ext/couchbase/core/response_handler.hxx +49 -0
- data/ext/couchbase/core/retry_orchestrator.cxx +52 -0
- data/ext/couchbase/core/retry_orchestrator.hxx +35 -0
- data/ext/couchbase/core/sasl/CMakeLists.txt +16 -0
- data/ext/couchbase/core/sasl/client.cc +50 -0
- data/ext/couchbase/core/sasl/client.h +127 -0
- data/ext/couchbase/core/sasl/context.cc +34 -0
- data/ext/couchbase/core/sasl/context.h +52 -0
- data/ext/couchbase/core/sasl/error.h +28 -0
- data/ext/couchbase/core/sasl/error_fmt.h +70 -0
- data/ext/couchbase/core/sasl/mechanism.cc +45 -0
- data/ext/couchbase/core/sasl/mechanism.h +52 -0
- data/ext/couchbase/core/sasl/plain/plain.cc +39 -0
- data/ext/couchbase/core/sasl/plain/plain.h +54 -0
- data/ext/couchbase/core/sasl/scram-sha/scram-sha.cc +372 -0
- data/ext/couchbase/core/sasl/scram-sha/scram-sha.h +184 -0
- data/ext/couchbase/core/sasl/scram-sha/stringutils.cc +82 -0
- data/ext/couchbase/core/sasl/scram-sha/stringutils.h +48 -0
- data/ext/couchbase/core/scan_options.hxx +63 -0
- data/ext/couchbase/core/scan_result.cxx +71 -0
- data/ext/couchbase/core/scan_result.hxx +59 -0
- data/ext/couchbase/core/search_highlight_style.hxx +23 -0
- data/ext/couchbase/core/search_query_options.cxx +72 -0
- data/ext/couchbase/core/search_query_options.hxx +74 -0
- data/ext/couchbase/core/search_scan_consistency.hxx +23 -0
- data/ext/couchbase/core/seed_config.cxx +39 -0
- data/ext/couchbase/core/seed_config.hxx +39 -0
- data/ext/couchbase/core/service_type.hxx +31 -0
- data/ext/couchbase/core/service_type_fmt.hxx +61 -0
- data/ext/couchbase/core/stats_options.hxx +61 -0
- data/ext/couchbase/core/subdoc_options.hxx +124 -0
- data/ext/couchbase/core/timeout_defaults.hxx +45 -0
- data/ext/couchbase/core/topology/capabilities.hxx +43 -0
- data/ext/couchbase/core/topology/capabilities_fmt.hxx +106 -0
- data/ext/couchbase/core/topology/collections_manifest.hxx +43 -0
- data/ext/couchbase/core/topology/collections_manifest_fmt.hxx +52 -0
- data/ext/couchbase/core/topology/collections_manifest_json.hxx +53 -0
- data/ext/couchbase/core/topology/configuration.cxx +256 -0
- data/ext/couchbase/core/topology/configuration.hxx +144 -0
- data/ext/couchbase/core/topology/configuration_fmt.hxx +166 -0
- data/ext/couchbase/core/topology/configuration_json.hxx +259 -0
- data/ext/couchbase/core/topology/error_map.hxx +35 -0
- data/ext/couchbase/core/topology/error_map_fmt.hxx +94 -0
- data/ext/couchbase/core/topology/error_map_json.hxx +89 -0
- data/ext/couchbase/core/tracing/CMakeLists.txt +11 -0
- data/ext/couchbase/core/tracing/constants.hxx +286 -0
- data/ext/couchbase/core/tracing/noop_tracer.hxx +56 -0
- data/ext/couchbase/core/tracing/threshold_logging_options.hxx +68 -0
- data/ext/couchbase/core/tracing/threshold_logging_tracer.cxx +438 -0
- data/ext/couchbase/core/tracing/threshold_logging_tracer.hxx +52 -0
- data/ext/couchbase/core/transactions/active_transaction_record.hxx +180 -0
- data/ext/couchbase/core/transactions/async_attempt_context.hxx +175 -0
- data/ext/couchbase/core/transactions/atr_cleanup_entry.cxx +460 -0
- data/ext/couchbase/core/transactions/atr_ids.cxx +225 -0
- data/ext/couchbase/core/transactions/atr_ids.hxx +32 -0
- data/ext/couchbase/core/transactions/attempt_context.hxx +195 -0
- data/ext/couchbase/core/transactions/attempt_context_impl.cxx +2382 -0
- data/ext/couchbase/core/transactions/attempt_context_impl.hxx +608 -0
- data/ext/couchbase/core/transactions/attempt_context_testing_hooks.hxx +145 -0
- data/ext/couchbase/core/transactions/attempt_state.hxx +112 -0
- data/ext/couchbase/core/transactions/binary.cxx +26 -0
- data/ext/couchbase/core/transactions/cleanup_testing_hooks.hxx +69 -0
- data/ext/couchbase/core/transactions/document_metadata.hxx +106 -0
- data/ext/couchbase/core/transactions/durability_level.hxx +91 -0
- data/ext/couchbase/core/transactions/error_class.hxx +35 -0
- data/ext/couchbase/core/transactions/error_list.hxx +54 -0
- data/ext/couchbase/core/transactions/exceptions.cxx +160 -0
- data/ext/couchbase/core/transactions/exceptions.hxx +209 -0
- data/ext/couchbase/core/transactions/forward_compat.hxx +250 -0
- data/ext/couchbase/core/transactions/internal/atr_cleanup_entry.hxx +164 -0
- data/ext/couchbase/core/transactions/internal/atr_entry.hxx +178 -0
- data/ext/couchbase/core/transactions/internal/binary.hxx +26 -0
- data/ext/couchbase/core/transactions/internal/client_record.hxx +85 -0
- data/ext/couchbase/core/transactions/internal/doc_record.hxx +99 -0
- data/ext/couchbase/core/transactions/internal/exceptions_internal.hxx +393 -0
- data/ext/couchbase/core/transactions/internal/logging.hxx +62 -0
- data/ext/couchbase/core/transactions/internal/transaction_attempt.hxx +30 -0
- data/ext/couchbase/core/transactions/internal/transaction_context.hxx +197 -0
- data/ext/couchbase/core/transactions/internal/transaction_fields.hxx +71 -0
- data/ext/couchbase/core/transactions/internal/transactions_cleanup.hxx +159 -0
- data/ext/couchbase/core/transactions/internal/utils.hxx +311 -0
- data/ext/couchbase/core/transactions/result.cxx +79 -0
- data/ext/couchbase/core/transactions/result.hxx +296 -0
- data/ext/couchbase/core/transactions/staged_mutation.cxx +416 -0
- data/ext/couchbase/core/transactions/staged_mutation.hxx +126 -0
- data/ext/couchbase/core/transactions/transaction_attempt.cxx +29 -0
- data/ext/couchbase/core/transactions/transaction_context.cxx +307 -0
- data/ext/couchbase/core/transactions/transaction_get_result.cxx +218 -0
- data/ext/couchbase/core/transactions/transaction_get_result.hxx +289 -0
- data/ext/couchbase/core/transactions/transaction_links.cxx +27 -0
- data/ext/couchbase/core/transactions/transaction_links.hxx +252 -0
- data/ext/couchbase/core/transactions/transaction_options.cxx +38 -0
- data/ext/couchbase/core/transactions/transactions.cxx +184 -0
- data/ext/couchbase/core/transactions/transactions_cleanup.cxx +592 -0
- data/ext/couchbase/core/transactions/transactions_config.cxx +81 -0
- data/ext/couchbase/core/transactions/uid_generator.cxx +27 -0
- data/ext/couchbase/core/transactions/uid_generator.hxx +29 -0
- data/ext/couchbase/core/transactions/utils.cxx +123 -0
- data/ext/couchbase/core/transactions/waitable_op_list.hxx +189 -0
- data/ext/couchbase/core/transactions.hxx +255 -0
- data/ext/couchbase/core/utils/binary.cxx +27 -0
- data/ext/couchbase/core/utils/binary.hxx +57 -0
- data/ext/couchbase/core/utils/byteswap.hxx +49 -0
- data/ext/couchbase/core/utils/connection_string.cxx +430 -0
- data/ext/couchbase/core/utils/connection_string.hxx +76 -0
- data/ext/couchbase/core/utils/crc32.hxx +56 -0
- data/ext/couchbase/core/utils/duration_parser.cxx +193 -0
- data/ext/couchbase/core/utils/duration_parser.hxx +45 -0
- data/ext/couchbase/core/utils/join_strings.hxx +65 -0
- data/ext/couchbase/core/utils/json.cxx +291 -0
- data/ext/couchbase/core/utils/json.hxx +43 -0
- data/ext/couchbase/core/utils/json_stream_control.hxx +32 -0
- data/ext/couchbase/core/utils/json_streaming_lexer.cxx +398 -0
- data/ext/couchbase/core/utils/json_streaming_lexer.hxx +60 -0
- data/ext/couchbase/core/utils/keyspace.hxx +55 -0
- data/ext/couchbase/core/utils/movable_function.hxx +121 -0
- data/ext/couchbase/core/utils/mutation_token.cxx +33 -0
- data/ext/couchbase/core/utils/mutation_token.hxx +29 -0
- data/ext/couchbase/core/utils/name_codec.hxx +41 -0
- data/ext/couchbase/core/utils/split_string.cxx +35 -0
- data/ext/couchbase/core/utils/split_string.hxx +27 -0
- data/ext/couchbase/core/utils/unsigned_leb128.hxx +183 -0
- data/ext/couchbase/core/utils/url_codec.cxx +405 -0
- data/ext/couchbase/core/utils/url_codec.hxx +72 -0
- data/ext/couchbase/core/view_on_error.hxx +27 -0
- data/ext/couchbase/core/view_query_options.cxx +72 -0
- data/ext/couchbase/core/view_query_options.hxx +78 -0
- data/ext/couchbase/core/view_scan_consistency.hxx +27 -0
- data/ext/couchbase/core/view_sort_order.hxx +23 -0
- data/ext/couchbase/core/wait_until_ready_options.hxx +52 -0
- data/ext/couchbase/couchbase/append_options.hxx +123 -0
- data/ext/couchbase/couchbase/behavior_options.hxx +79 -0
- data/ext/couchbase/couchbase/best_effort_retry_strategy.hxx +64 -0
- data/ext/couchbase/couchbase/binary_collection.hxx +327 -0
- data/ext/couchbase/couchbase/bucket.hxx +55 -494
- data/ext/couchbase/couchbase/build_query_index_options.hxx +99 -0
- data/ext/couchbase/couchbase/cas.hxx +74 -8
- data/ext/couchbase/couchbase/certificate_authenticator.hxx +39 -0
- data/ext/couchbase/couchbase/cluster.hxx +156 -370
- data/ext/couchbase/couchbase/cluster_options.hxx +315 -51
- data/ext/couchbase/couchbase/codec/binary_noop_serializer.hxx +47 -0
- data/ext/couchbase/couchbase/codec/codec_flags.hxx +145 -0
- data/ext/couchbase/couchbase/codec/default_json_transcoder.hxx +36 -0
- data/ext/couchbase/couchbase/codec/encoded_value.hxx +31 -0
- data/ext/couchbase/couchbase/codec/json_transcoder.hxx +49 -0
- data/ext/couchbase/couchbase/codec/raw_binary_transcoder.hxx +54 -0
- data/ext/couchbase/couchbase/codec/serializer_traits.hxx +31 -0
- data/ext/couchbase/couchbase/codec/tao_json_serializer.hxx +81 -0
- data/ext/couchbase/couchbase/codec/transcoder_traits.hxx +31 -0
- data/ext/couchbase/couchbase/collection.hxx +1031 -0
- data/ext/couchbase/couchbase/collection_query_index_manager.hxx +218 -0
- data/ext/couchbase/couchbase/common_durability_options.hxx +108 -0
- data/ext/couchbase/couchbase/common_options.hxx +112 -0
- data/ext/couchbase/couchbase/compression_options.hxx +65 -0
- data/ext/couchbase/couchbase/configuration_profile.hxx +44 -0
- data/ext/couchbase/couchbase/configuration_profiles_registry.hxx +61 -0
- data/ext/couchbase/couchbase/counter_result.hxx +73 -0
- data/ext/couchbase/couchbase/create_primary_query_index_options.hxx +166 -0
- data/ext/couchbase/couchbase/create_query_index_options.hxx +172 -0
- data/ext/couchbase/couchbase/decrement_options.hxx +166 -0
- data/ext/couchbase/couchbase/dns_options.hxx +65 -0
- data/ext/couchbase/couchbase/drop_primary_query_index_options.hxx +129 -0
- data/ext/couchbase/couchbase/drop_query_index_options.hxx +116 -0
- data/ext/couchbase/couchbase/durability_level.hxx +64 -0
- data/ext/couchbase/couchbase/error_codes.hxx +1223 -0
- data/ext/couchbase/couchbase/error_context.hxx +173 -0
- data/ext/couchbase/couchbase/exists_options.hxx +97 -0
- data/ext/couchbase/couchbase/exists_result.hxx +72 -0
- data/ext/couchbase/couchbase/expiry.hxx +55 -0
- data/ext/couchbase/couchbase/fail_fast_retry_strategy.hxx +37 -0
- data/ext/couchbase/couchbase/fmt/cas.hxx +37 -0
- data/ext/couchbase/couchbase/fmt/durability_level.hxx +52 -0
- data/ext/couchbase/couchbase/fmt/key_value_extended_error_info.hxx +46 -0
- data/ext/couchbase/couchbase/fmt/key_value_status_code.hxx +258 -0
- data/ext/couchbase/couchbase/fmt/mutation_token.hxx +38 -0
- data/ext/couchbase/couchbase/fmt/query_scan_consistency.hxx +46 -0
- data/ext/couchbase/couchbase/fmt/query_status.hxx +70 -0
- data/ext/couchbase/couchbase/fmt/retry_reason.hxx +103 -0
- data/ext/couchbase/couchbase/fmt/tls_verify_mode.hxx +46 -0
- data/ext/couchbase/couchbase/get_all_query_indexes_options.hxx +100 -0
- data/ext/couchbase/couchbase/get_all_replicas_options.hxx +102 -0
- data/ext/couchbase/couchbase/get_and_lock_options.hxx +94 -0
- data/ext/couchbase/couchbase/get_and_touch_options.hxx +94 -0
- data/ext/couchbase/couchbase/get_any_replica_options.hxx +93 -0
- data/ext/couchbase/couchbase/get_options.hxx +137 -0
- data/ext/couchbase/couchbase/get_replica_result.hxx +117 -0
- data/ext/couchbase/couchbase/get_result.hxx +126 -0
- data/ext/couchbase/couchbase/increment_options.hxx +166 -0
- data/ext/couchbase/couchbase/insert_options.hxx +136 -0
- data/ext/couchbase/couchbase/ip_protocol.hxx +27 -0
- data/ext/couchbase/couchbase/key_value_error_context.hxx +224 -0
- data/ext/couchbase/couchbase/key_value_error_map_attribute.hxx +124 -0
- data/ext/couchbase/couchbase/key_value_error_map_info.hxx +138 -0
- data/ext/couchbase/couchbase/key_value_extended_error_info.hxx +86 -0
- data/ext/couchbase/couchbase/key_value_status_code.hxx +107 -0
- data/ext/couchbase/couchbase/lookup_in_options.hxx +119 -0
- data/ext/couchbase/couchbase/lookup_in_result.hxx +255 -0
- data/ext/couchbase/couchbase/lookup_in_specs.hxx +147 -0
- data/ext/couchbase/couchbase/manager_error_context.hxx +136 -0
- data/ext/couchbase/couchbase/metrics/meter.hxx +16 -0
- data/ext/couchbase/couchbase/metrics/otel_meter.hxx +131 -0
- data/ext/couchbase/couchbase/metrics_options.hxx +71 -0
- data/ext/couchbase/couchbase/mutate_in_options.hxx +233 -0
- data/ext/couchbase/couchbase/mutate_in_result.hxx +173 -0
- data/ext/couchbase/couchbase/mutate_in_specs.hxx +528 -0
- data/ext/couchbase/couchbase/mutation_result.hxx +73 -0
- data/ext/couchbase/couchbase/mutation_state.hxx +73 -0
- data/ext/couchbase/couchbase/mutation_token.hxx +93 -6
- data/ext/couchbase/couchbase/network_options.hxx +114 -0
- data/ext/couchbase/couchbase/password_authenticator.hxx +47 -0
- data/ext/couchbase/couchbase/persist_to.hxx +73 -0
- data/ext/couchbase/couchbase/prepend_options.hxx +124 -0
- data/ext/couchbase/couchbase/query_error_context.hxx +143 -0
- data/ext/couchbase/couchbase/query_index_manager.hxx +254 -0
- data/ext/couchbase/couchbase/query_meta_data.hxx +171 -0
- data/ext/couchbase/couchbase/query_metrics.hxx +179 -0
- data/ext/couchbase/couchbase/query_options.hxx +575 -0
- data/ext/couchbase/couchbase/query_profile.hxx +52 -0
- data/ext/couchbase/couchbase/query_result.hxx +102 -0
- data/ext/couchbase/couchbase/query_scan_consistency.hxx +25 -2
- data/ext/couchbase/couchbase/query_status.hxx +42 -0
- data/ext/couchbase/couchbase/query_warning.hxx +115 -0
- data/ext/couchbase/couchbase/remove_options.hxx +123 -0
- data/ext/couchbase/couchbase/replace_options.hxx +184 -0
- data/ext/couchbase/couchbase/replicate_to.hxx +55 -0
- data/ext/couchbase/couchbase/result.hxx +66 -0
- data/ext/couchbase/couchbase/retry_action.hxx +41 -0
- data/ext/couchbase/couchbase/retry_reason.hxx +107 -0
- data/ext/couchbase/couchbase/retry_request.hxx +39 -0
- data/ext/couchbase/couchbase/retry_strategy.hxx +35 -0
- data/ext/couchbase/couchbase/scope.hxx +149 -0
- data/ext/couchbase/couchbase/security_options.hxx +68 -0
- data/ext/couchbase/couchbase/store_semantics.hxx +63 -0
- data/ext/couchbase/couchbase/subdoc/array_add_unique.hxx +105 -0
- data/ext/couchbase/couchbase/subdoc/array_append.hxx +89 -0
- data/ext/couchbase/couchbase/subdoc/array_insert.hxx +90 -0
- data/ext/couchbase/couchbase/subdoc/array_prepend.hxx +90 -0
- data/ext/couchbase/couchbase/subdoc/count.hxx +70 -0
- data/ext/couchbase/couchbase/subdoc/counter.hxx +88 -0
- data/ext/couchbase/couchbase/subdoc/exists.hxx +70 -0
- data/ext/couchbase/couchbase/subdoc/fwd/command.hxx +25 -0
- data/ext/couchbase/couchbase/subdoc/fwd/command_bundle.hxx +25 -0
- data/ext/couchbase/couchbase/subdoc/get.hxx +78 -0
- data/ext/couchbase/couchbase/subdoc/insert.hxx +105 -0
- data/ext/couchbase/couchbase/subdoc/lookup_in_macro.hxx +66 -0
- data/ext/couchbase/couchbase/subdoc/mutate_in_macro.hxx +54 -0
- data/ext/couchbase/couchbase/subdoc/remove.hxx +70 -0
- data/ext/couchbase/couchbase/subdoc/replace.hxx +89 -0
- data/ext/couchbase/couchbase/subdoc/upsert.hxx +105 -0
- data/ext/couchbase/couchbase/subdocument_error_context.hxx +144 -0
- data/ext/couchbase/couchbase/timeout_options.hxx +141 -0
- data/ext/couchbase/couchbase/tls_verify_mode.hxx +26 -0
- data/ext/couchbase/couchbase/touch_options.hxx +94 -0
- data/ext/couchbase/couchbase/tracing/otel_tracer.hxx +85 -0
- data/ext/couchbase/couchbase/tracing/request_tracer.hxx +17 -2
- data/ext/couchbase/couchbase/tracing_options.hxx +174 -0
- data/ext/couchbase/couchbase/transaction_error_context.hxx +49 -0
- data/ext/couchbase/couchbase/transaction_op_error_context.hxx +76 -0
- data/ext/couchbase/couchbase/transactions/async_attempt_context.hxx +78 -0
- data/ext/couchbase/couchbase/transactions/attempt_context.hxx +79 -0
- data/ext/couchbase/couchbase/transactions/transaction_get_result.hxx +133 -0
- data/ext/couchbase/couchbase/transactions/transaction_keyspace.hxx +101 -0
- data/ext/couchbase/couchbase/transactions/transaction_options.hxx +115 -0
- data/ext/couchbase/couchbase/transactions/transaction_query_options.hxx +159 -0
- data/ext/couchbase/couchbase/transactions/transaction_query_result.hxx +36 -0
- data/ext/couchbase/couchbase/transactions/transaction_result.hxx +34 -0
- data/ext/couchbase/couchbase/transactions/transactions_cleanup_config.hxx +140 -0
- data/ext/couchbase/couchbase/transactions/transactions_config.hxx +255 -0
- data/ext/couchbase/couchbase/transactions/transactions_query_config.hxx +61 -0
- data/ext/couchbase/couchbase/transactions.hxx +43 -0
- data/ext/couchbase/couchbase/unlock_options.hxx +97 -0
- data/ext/couchbase/couchbase/upsert_options.hxx +158 -0
- data/ext/couchbase/couchbase/wan_development_configuration_profile.hxx +44 -0
- data/ext/couchbase/couchbase/watch_query_indexes_options.hxx +115 -0
- data/ext/couchbase/test/CMakeLists.txt +19 -0
- data/ext/couchbase/test/another_simple_object.hxx +50 -0
- data/ext/couchbase/test/benchmark_integration_get.cxx +5 -6
- data/ext/couchbase/test/profile.hxx +62 -0
- data/ext/couchbase/test/simple_object.hxx +53 -0
- data/ext/couchbase/test/test_helper.hxx +8 -0
- data/ext/couchbase/test/test_helper_integration.hxx +1 -1
- data/ext/couchbase/test/test_integration_analytics.cxx +261 -0
- data/ext/couchbase/test/test_integration_arithmetic.cxx +119 -20
- data/ext/couchbase/test/test_integration_binary_operations.cxx +26 -39
- data/ext/couchbase/test/test_integration_collections.cxx +43 -45
- data/ext/couchbase/test/test_integration_connect.cxx +35 -25
- data/ext/couchbase/test/test_integration_crud.cxx +403 -187
- data/ext/couchbase/test/test_integration_diagnostics.cxx +119 -48
- data/ext/couchbase/test/test_integration_durability.cxx +171 -26
- data/ext/couchbase/test/test_integration_management.cxx +1474 -849
- data/ext/couchbase/test/test_integration_meter.cxx +182 -0
- data/ext/couchbase/test/test_integration_query.cxx +266 -86
- data/ext/couchbase/test/test_integration_range_scan.cxx +1067 -0
- data/ext/couchbase/test/test_integration_read_replica.cxx +232 -0
- data/ext/couchbase/test/test_integration_subdoc.cxx +337 -306
- data/ext/couchbase/test/test_integration_tracer.cxx +306 -0
- data/ext/couchbase/test/test_integration_transcoders.cxx +588 -0
- data/ext/couchbase/test/test_transaction_transaction_context.cxx +550 -0
- data/ext/couchbase/test/test_transaction_transaction_public_async_api.cxx +393 -0
- data/ext/couchbase/test/test_transaction_transaction_public_blocking_api.cxx +653 -0
- data/ext/couchbase/test/test_transaction_transaction_simple.cxx +899 -0
- data/ext/couchbase/test/test_transaction_transaction_simple_async.cxx +972 -0
- data/ext/couchbase/test/test_unit_config_profiles.cxx +132 -0
- data/ext/couchbase/test/test_unit_connection_string.cxx +170 -165
- data/ext/couchbase/test/test_unit_json_streaming_lexer.cxx +129 -9
- data/ext/couchbase/test/test_unit_json_transcoder.cxx +212 -0
- data/ext/couchbase/test/test_unit_jsonsl.cxx +1 -1
- data/ext/couchbase/test/test_unit_options.cxx +57 -0
- data/ext/couchbase/test/test_unit_transaction_logging.cxx +130 -0
- data/ext/couchbase/test/test_unit_transaction_utils.cxx +261 -0
- data/ext/couchbase/test/test_unit_utils.cxx +166 -29
- data/ext/couchbase/test/test_unit_waitable_op_list.cxx +132 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/any_io_executor.hpp +4 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/append.hpp +78 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/as_tuple.hpp +139 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/associated_allocator.hpp +4 -4
- data/ext/couchbase/third_party/asio/asio/include/asio/associated_cancellation_slot.hpp +4 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/associated_executor.hpp +4 -4
- data/ext/couchbase/third_party/asio/asio/include/asio/associator.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/async_result.hpp +357 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/awaitable.hpp +10 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_datagram_socket.hpp +208 -115
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_deadline_timer.hpp +28 -16
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_file.hpp +2 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_io_object.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_random_access_file.hpp +51 -27
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_raw_socket.hpp +210 -117
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_readable_pipe.hpp +127 -15
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_seq_packet_socket.hpp +84 -47
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_serial_port.hpp +120 -27
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_signal_set.hpp +36 -14
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket.hpp +50 -26
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket_acceptor.hpp +295 -150
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket_iostream.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_socket_streambuf.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_stream_file.hpp +51 -27
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_stream_socket.hpp +153 -84
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_streambuf.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_streambuf_fwd.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_waitable_timer.hpp +28 -16
- data/ext/couchbase/third_party/asio/asio/include/asio/basic_writable_pipe.hpp +127 -15
- data/ext/couchbase/third_party/asio/asio/include/asio/bind_allocator.hpp +722 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/bind_cancellation_slot.hpp +11 -8
- data/ext/couchbase/third_party/asio/asio/include/asio/bind_executor.hpp +36 -20
- data/ext/couchbase/third_party/asio/asio/include/asio/buffer.hpp +222 -42
- data/ext/couchbase/third_party/asio/asio/include/asio/buffer_registration.hpp +2 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/buffered_read_stream.hpp +38 -6
- data/ext/couchbase/third_party/asio/asio/include/asio/buffered_read_stream_fwd.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/buffered_stream.hpp +34 -5
- data/ext/couchbase/third_party/asio/asio/include/asio/buffered_stream_fwd.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/buffered_write_stream.hpp +38 -6
- data/ext/couchbase/third_party/asio/asio/include/asio/buffered_write_stream_fwd.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/buffers_iterator.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/cancellation_signal.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/cancellation_state.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/cancellation_type.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/co_spawn.hpp +33 -9
- data/ext/couchbase/third_party/asio/asio/include/asio/completion_condition.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/compose.hpp +682 -12
- data/ext/couchbase/third_party/asio/asio/include/asio/connect.hpp +132 -61
- data/ext/couchbase/third_party/asio/asio/include/asio/connect_pipe.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/coroutine.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/deadline_timer.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/defer.hpp +128 -42
- data/ext/couchbase/third_party/asio/asio/include/asio/deferred.hpp +675 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/detached.hpp +6 -5
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/array.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/array_fwd.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/assert.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/atomic_count.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/base_from_cancellation_state.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/base_from_completion_cond.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/bind_handler.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/blocking_executor_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/buffer_resize_guard.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/buffer_sequence_adapter.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/buffered_stream_storage.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/bulk_executor_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/call_stack.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/chrono.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/chrono_time_traits.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/completion_handler.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/concurrency_hint.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/conditionally_enabled_event.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/conditionally_enabled_mutex.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/config.hpp +201 -11
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/consuming_buffers.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/cstddef.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/cstdint.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/date_time_fwd.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/deadline_timer_service.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/dependent_type.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/descriptor_ops.hpp +2 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/descriptor_read_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/descriptor_write_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/dev_poll_reactor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/epoll_reactor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/event.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/eventfd_select_interrupter.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/exception.hpp +40 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/executor_function.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/executor_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/fd_set_adapter.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/fenced_block.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/functional.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/future.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_arm_fenced_block.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_sync_fenced_block.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/gcc_x86_fenced_block.hpp +2 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/global.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_alloc_helpers.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_cont_helpers.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_invoke_helpers.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_tracking.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_type_requirements.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/handler_work.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/hash_map.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/descriptor_ops.ipp +9 -9
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/dev_poll_reactor.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/epoll_reactor.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/handler_tracking.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_descriptor_service.ipp +4 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_file_service.ipp +10 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_service.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_service.ipp +8 -7
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/io_uring_socket_service_base.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/kqueue_reactor.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/null_event.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_event.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_mutex.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_serial_port_service.ipp +21 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_thread.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/posix_tss_ptr.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +6 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +3 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/resolver_service_base.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/scheduler.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/select_reactor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/select_reactor.ipp +36 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/service_registry.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/service_registry.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/signal_set_service.ipp +28 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/socket_ops.ipp +126 -121
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/socket_select_interrupter.ipp +4 -4
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_executor_service.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_service.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/strand_service.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/thread_context.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/throw_error.ipp +13 -9
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/timer_queue_ptime.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/timer_queue_set.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_event.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_file_service.ipp +21 -7
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +94 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_io_context.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +9 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +11 -11
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_mutex.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_object_handle_service.ipp +5 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_static_mutex.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_thread.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/win_tss_ptr.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +4 -4
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/impl/winsock_init.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_control.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_object_impl.hpp +11 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_read_at_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_read_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_service.hpp +26 -8
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_write_at_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_descriptor_write_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_file_service.hpp +12 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_null_buffers_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_operation.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_service.hpp +2 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_accept_op.hpp +5 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_connect_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_recv_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_recvfrom_op.hpp +4 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_recvmsg_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_send_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_sendto_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_service.hpp +31 -13
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_socket_service_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/io_uring_wait_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/is_buffer_sequence.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/is_executor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/keyword_tss_ptr.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/kqueue_reactor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/local_free_on_block_exit.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/macos_fenced_block.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/memory.hpp +17 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/mutex.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/non_const_lvalue.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/noncopyable.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_event.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_fenced_block.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_global.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_mutex.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_reactor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_signal_blocker.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_socket_service.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_static_mutex.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_thread.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/null_tss_ptr.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/object_pool.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/old_win_sdk_compat.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/op_queue.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/operation.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/pipe_select_interrupter.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/pop_options.hpp +5 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_event.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_fd_set_adapter.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_global.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_mutex.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_serial_port_service.hpp +2 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_signal_blocker.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_static_mutex.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_thread.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/posix_tss_ptr.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/push_options.hpp +11 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_descriptor_service.hpp +26 -7
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_null_buffers_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_accept_op.hpp +5 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_connect_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_recv_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_send_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_sendto_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_service.hpp +38 -12
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_socket_service_base.hpp +2 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactive_wait_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactor_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/reactor_op_queue.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/recycling_allocator.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/regex_fwd.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolve_endpoint_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolve_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolve_query_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolver_service.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/resolver_service_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler_operation.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler_task.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/scheduler_thread_info.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/scoped_lock.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/scoped_ptr.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/select_interrupter.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/select_reactor.hpp +23 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/service_registry.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_blocker.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_handler.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_init.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_op.hpp +5 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/signal_set_service.hpp +43 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_holder.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_ops.hpp +37 -45
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_option.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_select_interrupter.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/socket_types.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/solaris_fenced_block.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/source_location.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/static_mutex.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_event.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_fenced_block.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_global.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_mutex.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_static_mutex.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/std_thread.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/strand_executor_service.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/strand_service.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/string_view.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread_context.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread_group.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/thread_info_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/throw_error.hpp +18 -9
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/throw_exception.hpp +7 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue_ptime.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_queue_set.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_scheduler.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/timer_scheduler_fwd.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/tss_ptr.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/type_traits.hpp +9 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/utility.hpp +84 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/variadic_templates.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/wait_handler.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/wait_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_event.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_fd_set_adapter.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_fenced_block.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_global.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_file_service.hpp +8 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_handle_read_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_handle_service.hpp +29 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_handle_write_op.hpp +6 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_io_context.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_operation.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_op.hpp +6 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_serial_port_service.hpp +2 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +5 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_send_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_service.hpp +32 -8
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_socket_service_base.hpp +6 -8
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_thread_info.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_iocp_wait_op.hpp +3 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_mutex.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_object_handle_service.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_static_mutex.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_thread.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/win_tss_ptr.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winapp_thread.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/wince_thread.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_async_manager.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_async_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_resolve_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_resolver_service.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_socket_connect_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_socket_recv_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_socket_send_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_ssocket_service.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_ssocket_service_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_timer_scheduler.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winrt_utils.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/winsock_init.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/work_dispatcher.hpp +4 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/detail/wrapped_handler.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/dispatch.hpp +126 -42
- data/ext/couchbase/third_party/asio/asio/include/asio/error.hpp +36 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/error_code.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/allocator.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/any_executor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/bad_executor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/blocking.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/blocking_adaptation.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/bulk_execute.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/bulk_guarantee.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/connect.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/context.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/context_as.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/as_invocable.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/as_operation.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/as_receiver.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/bulk_sender.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/submit_receiver.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/detail/void_receiver.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/execute.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/executor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/impl/bad_executor.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/impl/receiver_invocation_error.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/invocable_archetype.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/mapping.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/occupancy.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/operation_state.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/outstanding_work.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/prefer_only.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/receiver.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/receiver_invocation_error.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/relationship.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/schedule.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/scheduler.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/sender.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/set_done.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/set_error.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/set_value.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/start.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution/submit.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/execution_context.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/executor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/executor_work_guard.hpp +100 -32
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/append.hpp +6 -41
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/as_single.hpp +6 -5
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/as_tuple.hpp +6 -101
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/awaitable_operators.hpp +14 -14
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/basic_channel.hpp +78 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/basic_concurrent_channel.hpp +69 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/cancellation_condition.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/channel.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/channel_error.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/channel_traits.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/co_spawn.hpp +12 -16
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/concurrent_channel.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/coro.hpp +4 -4
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/coro_traits.hpp +2 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/deferred.hpp +6 -575
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_handler.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_message.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_operation.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_payload.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_receive_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_send_functions.hpp +2 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_send_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/channel_service.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/completion_handler_erasure.hpp +82 -46
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/coro_promise_allocator.hpp +2 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/has_signature.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/impl/channel_service.hpp +6 -8
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/detail/partial_promise.hpp +2 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/as_single.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/channel_error.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/coro.hpp +47 -56
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/parallel_group.hpp +14 -28
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/promise.hpp +2 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/use_coro.hpp +3 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/parallel_group.hpp +27 -37
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/prepend.hpp +6 -41
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/promise.hpp +23 -405
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/use_coro.hpp +5 -5
- data/ext/couchbase/third_party/asio/asio/include/asio/file_base.hpp +9 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/generic/basic_endpoint.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/generic/datagram_protocol.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/generic/detail/endpoint.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/generic/detail/impl/endpoint.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/generic/raw_protocol.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/generic/seq_packet_protocol.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/generic/stream_protocol.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/handler_alloc_hook.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/handler_continuation_hook.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/handler_invoke_hook.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/high_resolution_timer.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/any_io_executor.ipp +6 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/append.hpp +216 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/as_tuple.hpp +244 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/awaitable.hpp +400 -5
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/buffered_read_stream.hpp +13 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/buffered_write_stream.hpp +13 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/cancellation_signal.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/co_spawn.hpp +71 -7
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/connect.hpp +63 -31
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/connect_pipe.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/connect_pipe.ipp +2 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/defer.hpp +23 -13
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/deferred.hpp +95 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/detached.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/dispatch.hpp +23 -13
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/error.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/error_code.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/execution_context.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/execution_context.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/executor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/executor.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/handler_alloc_hook.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/io_context.hpp +9 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/io_context.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/multiple_exceptions.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/post.hpp +23 -13
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/prepend.hpp +216 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/read.hpp +97 -51
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/read_at.hpp +51 -31
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/read_until.hpp +119 -59
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/redirect_error.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/serial_port_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/serial_port_base.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/spawn.hpp +1321 -277
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/src.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/system_context.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/system_context.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/system_executor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/thread_pool.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/thread_pool.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/use_awaitable.hpp +18 -8
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/use_future.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/write.hpp +95 -50
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/write_at.hpp +53 -31
- data/ext/couchbase/third_party/asio/asio/include/asio/io_context.hpp +25 -38
- data/ext/couchbase/third_party/asio/asio/include/asio/io_context_strand.hpp +15 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/io_service.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/io_service_strand.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/address.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v4.hpp +75 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v4_iterator.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v4_range.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v6.hpp +35 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v6_iterator.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/address_v6_range.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/bad_address_cast.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_endpoint.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver.hpp +130 -64
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_entry.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_iterator.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_query.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/basic_resolver_results.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/detail/endpoint.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/detail/impl/endpoint.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/detail/socket_option.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/host_name.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/icmp.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v4.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v4.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v6.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/address_v6.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/basic_endpoint.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/host_name.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v4.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v4.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v6.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/impl/network_v6.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/multicast.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/network_v4.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/network_v6.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/resolver_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/resolver_query_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/tcp.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/udp.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/unicast.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ip/v6_only.hpp +2 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/is_applicable_property.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/is_contiguous_iterator.hpp +45 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/is_executor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/is_read_buffered.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/is_write_buffered.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/local/basic_endpoint.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/local/connect_pair.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/local/datagram_protocol.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/local/detail/endpoint.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/local/detail/impl/endpoint.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/local/stream_protocol.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/multiple_exceptions.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/packaged_task.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/placeholders.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/posix/basic_descriptor.hpp +74 -13
- data/ext/couchbase/third_party/asio/asio/include/asio/posix/basic_stream_descriptor.hpp +95 -27
- data/ext/couchbase/third_party/asio/asio/include/asio/posix/descriptor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/posix/descriptor_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/posix/stream_descriptor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/post.hpp +128 -42
- data/ext/couchbase/third_party/asio/asio/include/asio/prefer.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/prepend.hpp +78 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/query.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/random_access_file.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/read.hpp +245 -153
- data/ext/couchbase/third_party/asio/asio/include/asio/read_at.hpp +110 -53
- data/ext/couchbase/third_party/asio/asio/include/asio/read_until.hpp +301 -166
- data/ext/couchbase/third_party/asio/asio/include/asio/readable_pipe.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/recycling_allocator.hpp +138 -0
- data/ext/couchbase/third_party/asio/asio/include/asio/redirect_error.hpp +3 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/registered_buffer.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/require.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/require_concept.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/serial_port.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/serial_port_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/signal_set.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/socket_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/spawn.hpp +647 -87
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/context.hpp +4 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/context_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/engine.hpp +4 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/handshake_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/impl/engine.ipp +19 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/impl/openssl_init.ipp +7 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/io.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/openssl_init.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/openssl_types.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/password_callback.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/read_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/shutdown_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/stream_core.hpp +16 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/verify_callback.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/detail/write_op.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/error.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/host_name_verification.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/context.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/context.ipp +140 -64
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/error.ipp +25 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/host_name_verification.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/rfc2818_verification.ipp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/impl/src.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/rfc2818_verification.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/stream.hpp +154 -53
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/stream_base.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/verify_context.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl/verify_mode.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ssl.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/static_thread_pool.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/steady_timer.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/strand.hpp +12 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/stream_file.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/streambuf.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/system_context.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/system_error.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/system_executor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/system_timer.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/this_coro.hpp +4 -4
- data/ext/couchbase/third_party/asio/asio/include/asio/thread.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/thread_pool.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/time_traits.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/bulk_execute_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/bulk_execute_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/connect_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/connect_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/equality_comparable.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/execute_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/execute_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/prefer_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/prefer_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/query_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/query_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/query_static_constexpr_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_concept_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_concept_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/require_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/schedule_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/schedule_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_done_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_done_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_error_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_error_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_value_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/set_value_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/start_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/start_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/static_query.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/static_require.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/static_require_concept.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/submit_free.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/traits/submit_member.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ts/buffer.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ts/executor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ts/internet.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ts/io_context.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ts/net.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ts/netfwd.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ts/socket.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/ts/timer.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/unyield.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/use_awaitable.hpp +4 -3
- data/ext/couchbase/third_party/asio/asio/include/asio/use_future.hpp +10 -7
- data/ext/couchbase/third_party/asio/asio/include/asio/uses_executor.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/version.hpp +2 -2
- data/ext/couchbase/third_party/asio/asio/include/asio/wait_traits.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_object_handle.hpp +70 -12
- data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_overlapped_handle.hpp +100 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_random_access_handle.hpp +98 -29
- data/ext/couchbase/third_party/asio/asio/include/asio/windows/basic_stream_handle.hpp +95 -28
- data/ext/couchbase/third_party/asio/asio/include/asio/windows/object_handle.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/windows/overlapped_handle.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/windows/overlapped_ptr.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/windows/random_access_handle.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/windows/stream_handle.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/writable_pipe.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio/write.hpp +242 -150
- data/ext/couchbase/third_party/asio/asio/include/asio/write_at.hpp +112 -53
- data/ext/couchbase/third_party/asio/asio/include/asio/yield.hpp +1 -1
- data/ext/couchbase/third_party/asio/asio/include/asio.hpp +8 -1
- data/ext/couchbase/third_party/expected/COPYING +121 -0
- data/ext/couchbase/third_party/expected/include/tl/expected.hpp +2571 -0
- data/ext/couchbase/third_party/json/CMakeLists.txt +3 -0
- data/ext/couchbase/third_party/json/external/PEGTL/LICENSE +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/apply_mode.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/argv_input.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/ascii.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/buffer_input.hpp +2 -2
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_action.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_action_and_state.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_action_and_states.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_control.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_state.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/change_states.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/config.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/abnf.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/add_state.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/alphabet.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/analyze.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/analyze_traits.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/check_bytes.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/control_action.hpp +13 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/coverage.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/forward.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/function.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/http.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/internal.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/utf16.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/utf32.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/icu/utf8.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/if_then.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/instantiate.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/integer.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/endian.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/endian_gcc.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/endian_win.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_mask_uint.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_mask_uint8.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_uint.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_uint8.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_utf16.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/peek_utf32.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/read_uint.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/set_stack_guard.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/internal/vector_stack_guard.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/iri.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/json.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/json_pointer.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/limit_bytes.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/limit_depth.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/parse_tree.hpp +17 -8
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/parse_tree_to_dot.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/peg.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/predicates.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/print.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/print_coverage.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/proto3.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/raw_string.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/remove_first_state.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/remove_last_states.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/rep_one_min_max.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/rep_string.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/separated_seq.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/shuffle_states.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/state_control.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/to_string.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/trace.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint16.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint32.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint64.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uint8.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/unescape.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/uri.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/utf16.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/contrib/utf32.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/cstream_input.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/demangle.hpp +19 -11
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/disable_action.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/discard_input.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/discard_input_on_failure.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/discard_input_on_success.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/enable_action.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/eol.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/eol_pair.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/file_input.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/action.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/action_input.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/any.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply0.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply0_single.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/apply_single.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/at.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bof.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bol.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bump.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bump_help.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/bytes.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/control.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cr_crlf_eol.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cr_eol.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/crlf_eol.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cstream_reader.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/cstring_reader.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/dependent_false.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/disable.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/discard.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/enable.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/enable_control.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/eof.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/eol.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/eolf.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/failure.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/file_mapper_posix.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/file_mapper_win32.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/file_reader.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/filesystem.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_apply.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_apply0.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_match.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/has_unwind.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/identifier.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_apply.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_must.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_must_else.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/if_then_else.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/input_pair.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/istream_reader.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/istring.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/iterator.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/lf_crlf_eol.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/lf_eol.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list_must.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list_tail.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/list_tail_pad.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/marker.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/minus.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/missing_apply.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/missing_apply0.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/must.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/not_at.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/one.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/opt.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/pad.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/pad_opt.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/path_to_string.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/peek_char.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/peek_utf8.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/pegtl_string.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/plus.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/raise.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/range.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/ranges.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rematch.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep_min.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep_min_max.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rep_opt.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/require.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/result_on_found.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/rules.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/seq.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/sor.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/star.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/star_must.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/state.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/string.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/success.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/try_catch_type.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/until.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/istream_input.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/match.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/memory_input.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/mmap_input.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/must_if.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/normal.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/nothing.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/parse.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/parse_error.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/position.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/read_input.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/require_apply.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/require_apply0.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/rewind_mode.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/rules.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/string_input.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/tracking_mode.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/type_list.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/utf8.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/version.hpp +2 -2
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/visit.hpp +1 -1
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl.hpp +1 -1
- data/ext/couchbase/third_party/json/include/tao/json/binary_view.hpp +14 -0
- data/ext/couchbase/third_party/json/include/tao/json/contrib/from_nlohmann.hpp +67 -0
- data/ext/couchbase/third_party/json/include/tao/json/contrib/to_nlohmann.hpp +122 -0
- data/ext/couchbase/third_party/json/include/tao/json/events/capture.hpp +482 -0
- data/ext/couchbase/third_party/json/include/tao/json/events/from_value.hpp +3 -3
- data/ext/couchbase/third_party/json/include/tao/json/events/produce.hpp +3 -95
- data/ext/couchbase/third_party/json/include/tao/json/events/set_value.hpp +142 -0
- data/ext/couchbase/third_party/json/include/tao/json/events/to_value.hpp +5 -112
- data/ext/couchbase/third_party/json/include/tao/json/events/virtualize.hpp +27 -0
- data/ext/couchbase/third_party/json/include/tao/json/events.hpp +3 -0
- data/ext/couchbase/third_party/json/include/tao/json/traits.hpp +1 -1
- data/ext/couchbase.cxx +2391 -1597
- data/ext/extconf.rb +2 -0
- data/ext/revisions.rb +2 -2
- data/lib/couchbase/bucket.rb +2 -2
- data/lib/couchbase/cluster.rb +12 -6
- data/lib/couchbase/cluster_registry.rb +44 -0
- data/lib/couchbase/collection.rb +61 -35
- data/lib/couchbase/collection_options.rb +51 -95
- data/lib/couchbase/config_profiles.rb +55 -0
- data/lib/couchbase/logger.rb +44 -1
- data/lib/couchbase/management/analytics_index_manager.rb +12 -12
- data/lib/couchbase/management/query_index_manager.rb +5 -7
- data/lib/couchbase/management/user_manager.rb +19 -0
- data/lib/couchbase/options.rb +404 -56
- data/lib/couchbase/query_options.rb +4 -4
- data/lib/couchbase/scope.rb +3 -3
- data/lib/couchbase/search_options.rb +7 -8
- data/lib/couchbase/utils/generic_logger_adapter.rb +38 -0
- data/lib/couchbase/utils/stdlib_logger_adapter.rb +65 -0
- data/lib/couchbase/utils/time.rb +6 -6
- data/lib/couchbase/version.rb +4 -18
- metadata +880 -464
- data/ext/couchbase/couchbase/analytics_scan_consistency.hxx +0 -26
- data/ext/couchbase/couchbase/capella_ca.hxx +0 -43
- data/ext/couchbase/couchbase/cas_fmt.hxx +0 -37
- data/ext/couchbase/couchbase/cluster.cxx +0 -111
- data/ext/couchbase/couchbase/cluster_options.cxx +0 -45
- data/ext/couchbase/couchbase/crypto/CMakeLists.txt +0 -12
- data/ext/couchbase/couchbase/crypto/cbcrypto.cc +0 -887
- data/ext/couchbase/couchbase/crypto/cbcrypto.h +0 -88
- data/ext/couchbase/couchbase/design_document_namespace.hxx +0 -26
- data/ext/couchbase/couchbase/design_document_namespace_fmt.hxx +0 -47
- data/ext/couchbase/couchbase/diagnostics.hxx +0 -97
- data/ext/couchbase/couchbase/diagnostics_fmt.hxx +0 -113
- data/ext/couchbase/couchbase/diagnostics_json.hxx +0 -100
- data/ext/couchbase/couchbase/document_id.cxx +0 -89
- data/ext/couchbase/couchbase/document_id.hxx +0 -102
- data/ext/couchbase/couchbase/document_id_fmt.hxx +0 -37
- data/ext/couchbase/couchbase/error_context/analytics.hxx +0 -51
- data/ext/couchbase/couchbase/error_context/http.hxx +0 -47
- data/ext/couchbase/couchbase/error_context/key_value.hxx +0 -50
- data/ext/couchbase/couchbase/error_context/query.hxx +0 -51
- data/ext/couchbase/couchbase/error_context/search.hxx +0 -50
- data/ext/couchbase/couchbase/error_context/view.hxx +0 -51
- data/ext/couchbase/couchbase/errors.hxx +0 -1038
- data/ext/couchbase/couchbase/io/CMakeLists.txt +0 -12
- data/ext/couchbase/couchbase/io/dns_client.hxx +0 -217
- data/ext/couchbase/couchbase/io/dns_codec.hxx +0 -206
- data/ext/couchbase/couchbase/io/dns_config.hxx +0 -115
- data/ext/couchbase/couchbase/io/dns_message.hxx +0 -555
- data/ext/couchbase/couchbase/io/http_command.hxx +0 -174
- data/ext/couchbase/couchbase/io/http_context.hxx +0 -40
- data/ext/couchbase/couchbase/io/http_message.hxx +0 -116
- data/ext/couchbase/couchbase/io/http_parser.cxx +0 -141
- data/ext/couchbase/couchbase/io/http_parser.hxx +0 -55
- data/ext/couchbase/couchbase/io/http_session.hxx +0 -544
- data/ext/couchbase/couchbase/io/http_session_manager.hxx +0 -377
- data/ext/couchbase/couchbase/io/http_traits.hxx +0 -30
- data/ext/couchbase/couchbase/io/ip_protocol.hxx +0 -28
- data/ext/couchbase/couchbase/io/mcbp_command.hxx +0 -300
- data/ext/couchbase/couchbase/io/mcbp_context.hxx +0 -39
- data/ext/couchbase/couchbase/io/mcbp_message.cxx +0 -39
- data/ext/couchbase/couchbase/io/mcbp_message.hxx +0 -55
- data/ext/couchbase/couchbase/io/mcbp_parser.cxx +0 -86
- data/ext/couchbase/couchbase/io/mcbp_parser.hxx +0 -45
- data/ext/couchbase/couchbase/io/mcbp_session.hxx +0 -1317
- data/ext/couchbase/couchbase/io/mcbp_traits.hxx +0 -30
- data/ext/couchbase/couchbase/io/query_cache.hxx +0 -61
- data/ext/couchbase/couchbase/io/retry_action.hxx +0 -30
- data/ext/couchbase/couchbase/io/retry_context.hxx +0 -38
- data/ext/couchbase/couchbase/io/retry_orchestrator.hxx +0 -112
- data/ext/couchbase/couchbase/io/retry_reason.hxx +0 -158
- data/ext/couchbase/couchbase/io/retry_reason_fmt.hxx +0 -103
- data/ext/couchbase/couchbase/io/retry_strategy.hxx +0 -152
- data/ext/couchbase/couchbase/io/streams.hxx +0 -253
- data/ext/couchbase/couchbase/json_string.hxx +0 -48
- data/ext/couchbase/couchbase/logger/CMakeLists.txt +0 -9
- data/ext/couchbase/couchbase/logger/configuration.hxx +0 -52
- data/ext/couchbase/couchbase/logger/custom_rotating_file_sink.cxx +0 -157
- data/ext/couchbase/couchbase/logger/logger.cxx +0 -337
- data/ext/couchbase/couchbase/logger/logger.hxx +0 -235
- data/ext/couchbase/couchbase/management/CMakeLists.txt +0 -13
- data/ext/couchbase/couchbase/management/analytics_dataset.hxx +0 -30
- data/ext/couchbase/couchbase/management/analytics_index.hxx +0 -30
- data/ext/couchbase/couchbase/management/analytics_link.hxx +0 -22
- data/ext/couchbase/couchbase/management/analytics_link_azure_blob_external.cxx +0 -67
- data/ext/couchbase/couchbase/management/analytics_link_azure_blob_external.hxx +0 -76
- data/ext/couchbase/couchbase/management/analytics_link_azure_blob_external_json.hxx +0 -52
- data/ext/couchbase/couchbase/management/analytics_link_couchbase_remote.cxx +0 -104
- data/ext/couchbase/couchbase/management/analytics_link_couchbase_remote.hxx +0 -107
- data/ext/couchbase/couchbase/management/analytics_link_couchbase_remote_json.hxx +0 -63
- data/ext/couchbase/couchbase/management/analytics_link_s3_external.cxx +0 -57
- data/ext/couchbase/couchbase/management/analytics_link_s3_external.hxx +0 -69
- data/ext/couchbase/couchbase/management/analytics_link_s3_external_json.hxx +0 -47
- data/ext/couchbase/couchbase/management/bucket_settings.hxx +0 -134
- data/ext/couchbase/couchbase/management/bucket_settings_json.hxx +0 -123
- data/ext/couchbase/couchbase/management/design_document.hxx +0 -41
- data/ext/couchbase/couchbase/management/eventing_function.hxx +0 -188
- data/ext/couchbase/couchbase/management/eventing_function_json.hxx +0 -212
- data/ext/couchbase/couchbase/management/eventing_status.hxx +0 -84
- data/ext/couchbase/couchbase/management/eventing_status_json.hxx +0 -77
- data/ext/couchbase/couchbase/management/rbac.hxx +0 -77
- data/ext/couchbase/couchbase/management/rbac_fmt.hxx +0 -49
- data/ext/couchbase/couchbase/management/rbac_json.hxx +0 -179
- data/ext/couchbase/couchbase/management/search_index.hxx +0 -38
- data/ext/couchbase/couchbase/management/search_index_json.hxx +0 -58
- data/ext/couchbase/couchbase/meta/CMakeLists.txt +0 -15
- data/ext/couchbase/couchbase/meta/version.cxx +0 -181
- data/ext/couchbase/couchbase/meta/version.hxx +0 -45
- data/ext/couchbase/couchbase/metrics/CMakeLists.txt +0 -11
- data/ext/couchbase/couchbase/metrics/logging_meter.cxx +0 -194
- data/ext/couchbase/couchbase/metrics/logging_meter.hxx +0 -74
- data/ext/couchbase/couchbase/metrics/logging_meter_options.hxx +0 -28
- data/ext/couchbase/couchbase/metrics/noop_meter.hxx +0 -47
- data/ext/couchbase/couchbase/mutation_token_fmt.hxx +0 -37
- data/ext/couchbase/couchbase/operations/CMakeLists.txt +0 -35
- data/ext/couchbase/couchbase/operations/document_analytics.cxx +0 -195
- data/ext/couchbase/couchbase/operations/document_analytics.hxx +0 -92
- data/ext/couchbase/couchbase/operations/document_append.cxx +0 -46
- data/ext/couchbase/couchbase/operations/document_append.hxx +0 -63
- data/ext/couchbase/couchbase/operations/document_decrement.cxx +0 -57
- data/ext/couchbase/couchbase/operations/document_decrement.hxx +0 -67
- data/ext/couchbase/couchbase/operations/document_exists.cxx +0 -49
- data/ext/couchbase/couchbase/operations/document_exists.hxx +0 -61
- data/ext/couchbase/couchbase/operations/document_get.cxx +0 -44
- data/ext/couchbase/couchbase/operations/document_get.hxx +0 -53
- data/ext/couchbase/couchbase/operations/document_get_and_lock.cxx +0 -45
- data/ext/couchbase/couchbase/operations/document_get_and_lock.hxx +0 -54
- data/ext/couchbase/couchbase/operations/document_get_and_touch.cxx +0 -45
- data/ext/couchbase/couchbase/operations/document_get_and_touch.hxx +0 -54
- data/ext/couchbase/couchbase/operations/document_get_projected.cxx +0 -227
- data/ext/couchbase/couchbase/operations/document_get_projected.hxx +0 -58
- data/ext/couchbase/couchbase/operations/document_increment.cxx +0 -57
- data/ext/couchbase/couchbase/operations/document_increment.hxx +0 -67
- data/ext/couchbase/couchbase/operations/document_insert.cxx +0 -48
- data/ext/couchbase/couchbase/operations/document_insert.hxx +0 -65
- data/ext/couchbase/couchbase/operations/document_lookup_in.cxx +0 -81
- data/ext/couchbase/couchbase/operations/document_lookup_in.hxx +0 -64
- data/ext/couchbase/couchbase/operations/document_mutate_in.cxx +0 -104
- data/ext/couchbase/couchbase/operations/document_mutate_in.hxx +0 -82
- data/ext/couchbase/couchbase/operations/document_prepend.cxx +0 -46
- data/ext/couchbase/couchbase/operations/document_prepend.hxx +0 -63
- data/ext/couchbase/couchbase/operations/document_query.cxx +0 -370
- data/ext/couchbase/couchbase/operations/document_query.hxx +0 -123
- data/ext/couchbase/couchbase/operations/document_remove.cxx +0 -46
- data/ext/couchbase/couchbase/operations/document_remove.hxx +0 -63
- data/ext/couchbase/couchbase/operations/document_replace.cxx +0 -52
- data/ext/couchbase/couchbase/operations/document_replace.hxx +0 -67
- data/ext/couchbase/couchbase/operations/document_search.cxx +0 -311
- data/ext/couchbase/couchbase/operations/document_search.hxx +0 -153
- data/ext/couchbase/couchbase/operations/document_touch.cxx +0 -43
- data/ext/couchbase/couchbase/operations/document_touch.hxx +0 -52
- data/ext/couchbase/couchbase/operations/document_unlock.cxx +0 -43
- data/ext/couchbase/couchbase/operations/document_unlock.hxx +0 -52
- data/ext/couchbase/couchbase/operations/document_upsert.cxx +0 -52
- data/ext/couchbase/couchbase/operations/document_upsert.hxx +0 -66
- data/ext/couchbase/couchbase/operations/document_view.cxx +0 -183
- data/ext/couchbase/couchbase/operations/document_view.hxx +0 -97
- data/ext/couchbase/couchbase/operations/http_noop.cxx +0 -60
- data/ext/couchbase/couchbase/operations/http_noop.hxx +0 -48
- data/ext/couchbase/couchbase/operations/management/CMakeLists.txt +0 -79
- data/ext/couchbase/couchbase/operations/management/analytics.hxx +0 -34
- data/ext/couchbase/couchbase/operations/management/analytics_dataset_create.cxx +0 -94
- data/ext/couchbase/couchbase/operations/management/analytics_dataset_create.hxx +0 -57
- data/ext/couchbase/couchbase/operations/management/analytics_dataset_drop.cxx +0 -83
- data/ext/couchbase/couchbase/operations/management/analytics_dataset_drop.hxx +0 -54
- data/ext/couchbase/couchbase/operations/management/analytics_dataset_get_all.cxx +0 -80
- data/ext/couchbase/couchbase/operations/management/analytics_dataset_get_all.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/analytics_dataverse_create.cxx +0 -82
- data/ext/couchbase/couchbase/operations/management/analytics_dataverse_create.hxx +0 -53
- data/ext/couchbase/couchbase/operations/management/analytics_dataverse_drop.cxx +0 -82
- data/ext/couchbase/couchbase/operations/management/analytics_dataverse_drop.hxx +0 -53
- data/ext/couchbase/couchbase/operations/management/analytics_get_pending_mutations.cxx +0 -70
- data/ext/couchbase/couchbase/operations/management/analytics_get_pending_mutations.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/analytics_index_create.cxx +0 -106
- data/ext/couchbase/couchbase/operations/management/analytics_index_create.hxx +0 -56
- data/ext/couchbase/couchbase/operations/management/analytics_index_drop.cxx +0 -90
- data/ext/couchbase/couchbase/operations/management/analytics_index_drop.hxx +0 -55
- data/ext/couchbase/couchbase/operations/management/analytics_index_get_all.cxx +0 -80
- data/ext/couchbase/couchbase/operations/management/analytics_index_get_all.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/analytics_link_connect.cxx +0 -82
- data/ext/couchbase/couchbase/operations/management/analytics_link_connect.hxx +0 -57
- data/ext/couchbase/couchbase/operations/management/analytics_link_create.cxx +0 -87
- data/ext/couchbase/couchbase/operations/management/analytics_link_create.hxx +0 -77
- data/ext/couchbase/couchbase/operations/management/analytics_link_disconnect.cxx +0 -80
- data/ext/couchbase/couchbase/operations/management/analytics_link_disconnect.hxx +0 -56
- data/ext/couchbase/couchbase/operations/management/analytics_link_drop.cxx +0 -103
- data/ext/couchbase/couchbase/operations/management/analytics_link_drop.hxx +0 -56
- data/ext/couchbase/couchbase/operations/management/analytics_link_get_all.cxx +0 -130
- data/ext/couchbase/couchbase/operations/management/analytics_link_get_all.hxx +0 -63
- data/ext/couchbase/couchbase/operations/management/analytics_link_replace.cxx +0 -87
- data/ext/couchbase/couchbase/operations/management/analytics_link_replace.hxx +0 -78
- data/ext/couchbase/couchbase/operations/management/analytics_link_utils.hxx +0 -37
- data/ext/couchbase/couchbase/operations/management/analytics_problem.hxx +0 -30
- data/ext/couchbase/couchbase/operations/management/bucket.hxx +0 -25
- data/ext/couchbase/couchbase/operations/management/bucket_create.cxx +0 -171
- data/ext/couchbase/couchbase/operations/management/bucket_create.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/bucket_describe.cxx +0 -67
- data/ext/couchbase/couchbase/operations/management/bucket_describe.hxx +0 -61
- data/ext/couchbase/couchbase/operations/management/bucket_drop.cxx +0 -52
- data/ext/couchbase/couchbase/operations/management/bucket_drop.hxx +0 -49
- data/ext/couchbase/couchbase/operations/management/bucket_flush.cxx +0 -59
- data/ext/couchbase/couchbase/operations/management/bucket_flush.hxx +0 -49
- data/ext/couchbase/couchbase/operations/management/bucket_get.cxx +0 -59
- data/ext/couchbase/couchbase/operations/management/bucket_get.hxx +0 -51
- data/ext/couchbase/couchbase/operations/management/bucket_get_all.cxx +0 -59
- data/ext/couchbase/couchbase/operations/management/bucket_get_all.hxx +0 -49
- data/ext/couchbase/couchbase/operations/management/bucket_update.cxx +0 -130
- data/ext/couchbase/couchbase/operations/management/bucket_update.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/cluster_describe.cxx +0 -90
- data/ext/couchbase/couchbase/operations/management/cluster_describe.hxx +0 -72
- data/ext/couchbase/couchbase/operations/management/cluster_developer_preview_enable.cxx +0 -44
- data/ext/couchbase/couchbase/operations/management/cluster_developer_preview_enable.hxx +0 -48
- data/ext/couchbase/couchbase/operations/management/collection_create.cxx +0 -83
- data/ext/couchbase/couchbase/operations/management/collection_create.hxx +0 -53
- data/ext/couchbase/couchbase/operations/management/collection_drop.cxx +0 -73
- data/ext/couchbase/couchbase/operations/management/collection_drop.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/collections.hxx +0 -25
- data/ext/couchbase/couchbase/operations/management/collections_manifest_get.cxx +0 -40
- data/ext/couchbase/couchbase/operations/management/collections_manifest_get.hxx +0 -53
- data/ext/couchbase/couchbase/operations/management/error_utils.cxx +0 -265
- data/ext/couchbase/couchbase/operations/management/error_utils.hxx +0 -48
- data/ext/couchbase/couchbase/operations/management/eventing.hxx +0 -28
- data/ext/couchbase/couchbase/operations/management/eventing_deploy_function.cxx +0 -56
- data/ext/couchbase/couchbase/operations/management/eventing_deploy_function.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/eventing_drop_function.cxx +0 -57
- data/ext/couchbase/couchbase/operations/management/eventing_drop_function.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/eventing_get_all_functions.cxx +0 -64
- data/ext/couchbase/couchbase/operations/management/eventing_get_all_functions.hxx +0 -51
- data/ext/couchbase/couchbase/operations/management/eventing_get_function.cxx +0 -56
- data/ext/couchbase/couchbase/operations/management/eventing_get_function.hxx +0 -53
- data/ext/couchbase/couchbase/operations/management/eventing_get_status.cxx +0 -56
- data/ext/couchbase/couchbase/operations/management/eventing_get_status.hxx +0 -53
- data/ext/couchbase/couchbase/operations/management/eventing_pause_function.cxx +0 -56
- data/ext/couchbase/couchbase/operations/management/eventing_pause_function.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/eventing_problem.hxx +0 -31
- data/ext/couchbase/couchbase/operations/management/eventing_resume_function.cxx +0 -56
- data/ext/couchbase/couchbase/operations/management/eventing_resume_function.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/eventing_undeploy_function.cxx +0 -56
- data/ext/couchbase/couchbase/operations/management/eventing_undeploy_function.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/eventing_upsert_function.cxx +0 -341
- data/ext/couchbase/couchbase/operations/management/eventing_upsert_function.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/freeform.cxx +0 -55
- data/ext/couchbase/couchbase/operations/management/freeform.hxx +0 -55
- data/ext/couchbase/couchbase/operations/management/group_drop.cxx +0 -51
- data/ext/couchbase/couchbase/operations/management/group_drop.hxx +0 -49
- data/ext/couchbase/couchbase/operations/management/group_get.cxx +0 -60
- data/ext/couchbase/couchbase/operations/management/group_get.hxx +0 -50
- data/ext/couchbase/couchbase/operations/management/group_get_all.cxx +0 -58
- data/ext/couchbase/couchbase/operations/management/group_get_all.hxx +0 -49
- data/ext/couchbase/couchbase/operations/management/group_upsert.cxx +0 -96
- data/ext/couchbase/couchbase/operations/management/group_upsert.hxx +0 -51
- data/ext/couchbase/couchbase/operations/management/query.hxx +0 -23
- data/ext/couchbase/couchbase/operations/management/query_index_build_deferred.cxx +0 -88
- data/ext/couchbase/couchbase/operations/management/query_index_build_deferred.hxx +0 -61
- data/ext/couchbase/couchbase/operations/management/query_index_create.cxx +0 -149
- data/ext/couchbase/couchbase/operations/management/query_index_create.hxx +0 -65
- data/ext/couchbase/couchbase/operations/management/query_index_drop.cxx +0 -128
- data/ext/couchbase/couchbase/operations/management/query_index_drop.hxx +0 -61
- data/ext/couchbase/couchbase/operations/management/query_index_get_all.cxx +0 -126
- data/ext/couchbase/couchbase/operations/management/query_index_get_all.hxx +0 -54
- data/ext/couchbase/couchbase/operations/management/role_get_all.cxx +0 -58
- data/ext/couchbase/couchbase/operations/management/role_get_all.hxx +0 -49
- data/ext/couchbase/couchbase/operations/management/scope_create.cxx +0 -75
- data/ext/couchbase/couchbase/operations/management/scope_create.hxx +0 -51
- data/ext/couchbase/couchbase/operations/management/scope_drop.cxx +0 -70
- data/ext/couchbase/couchbase/operations/management/scope_drop.hxx +0 -51
- data/ext/couchbase/couchbase/operations/management/scope_get_all.cxx +0 -62
- data/ext/couchbase/couchbase/operations/management/scope_get_all.hxx +0 -51
- data/ext/couchbase/couchbase/operations/management/search.hxx +0 -30
- data/ext/couchbase/couchbase/operations/management/search_get_stats.cxx +0 -41
- data/ext/couchbase/couchbase/operations/management/search_get_stats.hxx +0 -48
- data/ext/couchbase/couchbase/operations/management/search_index_analyze_document.cxx +0 -85
- data/ext/couchbase/couchbase/operations/management/search_index_analyze_document.hxx +0 -54
- data/ext/couchbase/couchbase/operations/management/search_index_control_ingest.cxx +0 -73
- data/ext/couchbase/couchbase/operations/management/search_index_control_ingest.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/search_index_control_plan_freeze.cxx +0 -73
- data/ext/couchbase/couchbase/operations/management/search_index_control_plan_freeze.hxx +0 -57
- data/ext/couchbase/couchbase/operations/management/search_index_control_query.cxx +0 -73
- data/ext/couchbase/couchbase/operations/management/search_index_control_query.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/search_index_drop.cxx +0 -72
- data/ext/couchbase/couchbase/operations/management/search_index_drop.hxx +0 -51
- data/ext/couchbase/couchbase/operations/management/search_index_get.cxx +0 -75
- data/ext/couchbase/couchbase/operations/management/search_index_get.hxx +0 -54
- data/ext/couchbase/couchbase/operations/management/search_index_get_all.cxx +0 -67
- data/ext/couchbase/couchbase/operations/management/search_index_get_all.hxx +0 -51
- data/ext/couchbase/couchbase/operations/management/search_index_get_documents_count.cxx +0 -79
- data/ext/couchbase/couchbase/operations/management/search_index_get_documents_count.hxx +0 -53
- data/ext/couchbase/couchbase/operations/management/search_index_get_stats.cxx +0 -71
- data/ext/couchbase/couchbase/operations/management/search_index_get_stats.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/search_index_upsert.cxx +0 -108
- data/ext/couchbase/couchbase/operations/management/search_index_upsert.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/user.hxx +0 -28
- data/ext/couchbase/couchbase/operations/management/user_drop.cxx +0 -52
- data/ext/couchbase/couchbase/operations/management/user_drop.hxx +0 -51
- data/ext/couchbase/couchbase/operations/management/user_get.cxx +0 -61
- data/ext/couchbase/couchbase/operations/management/user_get.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/user_get_all.cxx +0 -59
- data/ext/couchbase/couchbase/operations/management/user_get_all.hxx +0 -51
- data/ext/couchbase/couchbase/operations/management/user_upsert.cxx +0 -101
- data/ext/couchbase/couchbase/operations/management/user_upsert.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/view.hxx +0 -23
- data/ext/couchbase/couchbase/operations/management/view_index_drop.cxx +0 -46
- data/ext/couchbase/couchbase/operations/management/view_index_drop.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/view_index_get.cxx +0 -74
- data/ext/couchbase/couchbase/operations/management/view_index_get.hxx +0 -53
- data/ext/couchbase/couchbase/operations/management/view_index_get_all.cxx +0 -108
- data/ext/couchbase/couchbase/operations/management/view_index_get_all.hxx +0 -52
- data/ext/couchbase/couchbase/operations/management/view_index_upsert.cxx +0 -71
- data/ext/couchbase/couchbase/operations/management/view_index_upsert.hxx +0 -51
- data/ext/couchbase/couchbase/operations/mcbp_noop.cxx +0 -38
- data/ext/couchbase/couchbase/operations/mcbp_noop.hxx +0 -49
- data/ext/couchbase/couchbase/operations.hxx +0 -42
- data/ext/couchbase/couchbase/origin.hxx +0 -185
- data/ext/couchbase/couchbase/platform/CMakeLists.txt +0 -16
- data/ext/couchbase/couchbase/platform/backtrace.c +0 -189
- data/ext/couchbase/couchbase/platform/base64.cc +0 -234
- data/ext/couchbase/couchbase/platform/base64.h +0 -44
- data/ext/couchbase/couchbase/platform/dirutils.cc +0 -123
- data/ext/couchbase/couchbase/platform/dirutils.h +0 -43
- data/ext/couchbase/couchbase/platform/random.cc +0 -120
- data/ext/couchbase/couchbase/platform/random.h +0 -39
- data/ext/couchbase/couchbase/platform/string_hex.cc +0 -99
- data/ext/couchbase/couchbase/platform/string_hex.h +0 -50
- data/ext/couchbase/couchbase/platform/terminate_handler.cc +0 -125
- data/ext/couchbase/couchbase/platform/terminate_handler.h +0 -36
- data/ext/couchbase/couchbase/platform/uuid.cc +0 -98
- data/ext/couchbase/couchbase/platform/uuid.h +0 -56
- data/ext/couchbase/couchbase/protocol/CMakeLists.txt +0 -42
- data/ext/couchbase/couchbase/protocol/client_opcode.hxx +0 -359
- data/ext/couchbase/couchbase/protocol/client_opcode_fmt.hxx +0 -316
- data/ext/couchbase/couchbase/protocol/client_request.cxx +0 -37
- data/ext/couchbase/couchbase/protocol/client_request.hxx +0 -157
- data/ext/couchbase/couchbase/protocol/client_response.cxx +0 -74
- data/ext/couchbase/couchbase/protocol/client_response.hxx +0 -211
- data/ext/couchbase/couchbase/protocol/cmd_append.cxx +0 -82
- data/ext/couchbase/couchbase/protocol/cmd_append.hxx +0 -107
- data/ext/couchbase/couchbase/protocol/cmd_cluster_map_change_notification.cxx +0 -51
- data/ext/couchbase/couchbase/protocol/cmd_cluster_map_change_notification.hxx +0 -57
- data/ext/couchbase/couchbase/protocol/cmd_decrement.cxx +0 -112
- data/ext/couchbase/couchbase/protocol/cmd_decrement.hxx +0 -131
- data/ext/couchbase/couchbase/protocol/cmd_exists.cxx +0 -92
- data/ext/couchbase/couchbase/protocol/cmd_exists.hxx +0 -121
- data/ext/couchbase/couchbase/protocol/cmd_get.cxx +0 -63
- data/ext/couchbase/couchbase/protocol/cmd_get.hxx +0 -101
- data/ext/couchbase/couchbase/protocol/cmd_get_and_lock.cxx +0 -68
- data/ext/couchbase/couchbase/protocol/cmd_get_and_lock.hxx +0 -117
- data/ext/couchbase/couchbase/protocol/cmd_get_and_touch.cxx +0 -70
- data/ext/couchbase/couchbase/protocol/cmd_get_and_touch.hxx +0 -117
- data/ext/couchbase/couchbase/protocol/cmd_get_cluster_config.cxx +0 -84
- data/ext/couchbase/couchbase/protocol/cmd_get_cluster_config.hxx +0 -89
- data/ext/couchbase/couchbase/protocol/cmd_get_collection_id.cxx +0 -50
- data/ext/couchbase/couchbase/protocol/cmd_get_collection_id.hxx +0 -98
- data/ext/couchbase/couchbase/protocol/cmd_get_collections_manifest.cxx +0 -44
- data/ext/couchbase/couchbase/protocol/cmd_get_collections_manifest.hxx +0 -84
- data/ext/couchbase/couchbase/protocol/cmd_get_error_map.cxx +0 -59
- data/ext/couchbase/couchbase/protocol/cmd_get_error_map.hxx +0 -103
- data/ext/couchbase/couchbase/protocol/cmd_get_meta.cxx +0 -74
- data/ext/couchbase/couchbase/protocol/cmd_get_meta.hxx +0 -119
- data/ext/couchbase/couchbase/protocol/cmd_hello.cxx +0 -66
- data/ext/couchbase/couchbase/protocol/cmd_hello.hxx +0 -144
- data/ext/couchbase/couchbase/protocol/cmd_increment.cxx +0 -117
- data/ext/couchbase/couchbase/protocol/cmd_increment.hxx +0 -131
- data/ext/couchbase/couchbase/protocol/cmd_info.hxx +0 -29
- data/ext/couchbase/couchbase/protocol/cmd_insert.cxx +0 -92
- data/ext/couchbase/couchbase/protocol/cmd_insert.hxx +0 -123
- data/ext/couchbase/couchbase/protocol/cmd_lookup_in.cxx +0 -109
- data/ext/couchbase/couchbase/protocol/cmd_lookup_in.hxx +0 -165
- data/ext/couchbase/couchbase/protocol/cmd_mutate_in.cxx +0 -174
- data/ext/couchbase/couchbase/protocol/cmd_mutate_in.hxx +0 -311
- data/ext/couchbase/couchbase/protocol/cmd_noop.cxx +0 -36
- data/ext/couchbase/couchbase/protocol/cmd_noop.hxx +0 -75
- data/ext/couchbase/couchbase/protocol/cmd_prepend.cxx +0 -82
- data/ext/couchbase/couchbase/protocol/cmd_prepend.hxx +0 -102
- data/ext/couchbase/couchbase/protocol/cmd_remove.cxx +0 -83
- data/ext/couchbase/couchbase/protocol/cmd_remove.hxx +0 -93
- data/ext/couchbase/couchbase/protocol/cmd_replace.cxx +0 -105
- data/ext/couchbase/couchbase/protocol/cmd_replace.hxx +0 -130
- data/ext/couchbase/couchbase/protocol/cmd_sasl_auth.cxx +0 -40
- data/ext/couchbase/couchbase/protocol/cmd_sasl_auth.hxx +0 -97
- data/ext/couchbase/couchbase/protocol/cmd_sasl_list_mechs.cxx +0 -48
- data/ext/couchbase/couchbase/protocol/cmd_sasl_list_mechs.hxx +0 -82
- data/ext/couchbase/couchbase/protocol/cmd_sasl_step.cxx +0 -40
- data/ext/couchbase/couchbase/protocol/cmd_sasl_step.hxx +0 -97
- data/ext/couchbase/couchbase/protocol/cmd_select_bucket.cxx +0 -36
- data/ext/couchbase/couchbase/protocol/cmd_select_bucket.hxx +0 -82
- data/ext/couchbase/couchbase/protocol/cmd_touch.cxx +0 -57
- data/ext/couchbase/couchbase/protocol/cmd_touch.hxx +0 -84
- data/ext/couchbase/couchbase/protocol/cmd_unlock.cxx +0 -48
- data/ext/couchbase/couchbase/protocol/cmd_unlock.hxx +0 -81
- data/ext/couchbase/couchbase/protocol/cmd_upsert.cxx +0 -104
- data/ext/couchbase/couchbase/protocol/cmd_upsert.hxx +0 -125
- data/ext/couchbase/couchbase/protocol/datatype.hxx +0 -48
- data/ext/couchbase/couchbase/protocol/durability_level.hxx +0 -59
- data/ext/couchbase/couchbase/protocol/durability_level_fmt.hxx +0 -52
- data/ext/couchbase/couchbase/protocol/enhanced_error_info.hxx +0 -28
- data/ext/couchbase/couchbase/protocol/enhanced_error_info_fmt.hxx +0 -44
- data/ext/couchbase/couchbase/protocol/frame_info_id.hxx +0 -142
- data/ext/couchbase/couchbase/protocol/frame_info_id_fmt.hxx +0 -79
- data/ext/couchbase/couchbase/protocol/hello_feature.hxx +0 -186
- data/ext/couchbase/couchbase/protocol/hello_feature_fmt.hxx +0 -106
- data/ext/couchbase/couchbase/protocol/magic.hxx +0 -53
- data/ext/couchbase/couchbase/protocol/magic_fmt.hxx +0 -58
- data/ext/couchbase/couchbase/protocol/server_opcode.hxx +0 -39
- data/ext/couchbase/couchbase/protocol/server_opcode_fmt.hxx +0 -46
- data/ext/couchbase/couchbase/protocol/server_request.hxx +0 -121
- data/ext/couchbase/couchbase/protocol/status.cxx +0 -187
- data/ext/couchbase/couchbase/protocol/status.hxx +0 -180
- data/ext/couchbase/couchbase/protocol/status_fmt.hxx +0 -241
- data/ext/couchbase/couchbase/query_profile_mode.hxx +0 -27
- data/ext/couchbase/couchbase/sasl/CMakeLists.txt +0 -16
- data/ext/couchbase/couchbase/sasl/client.cc +0 -50
- data/ext/couchbase/couchbase/sasl/client.h +0 -128
- data/ext/couchbase/couchbase/sasl/context.cc +0 -34
- data/ext/couchbase/couchbase/sasl/context.h +0 -52
- data/ext/couchbase/couchbase/sasl/error.h +0 -28
- data/ext/couchbase/couchbase/sasl/error_fmt.h +0 -70
- data/ext/couchbase/couchbase/sasl/mechanism.cc +0 -45
- data/ext/couchbase/couchbase/sasl/mechanism.h +0 -52
- data/ext/couchbase/couchbase/sasl/plain/plain.cc +0 -39
- data/ext/couchbase/couchbase/sasl/plain/plain.h +0 -54
- data/ext/couchbase/couchbase/sasl/scram-sha/scram-sha.cc +0 -372
- data/ext/couchbase/couchbase/sasl/scram-sha/scram-sha.h +0 -184
- data/ext/couchbase/couchbase/sasl/scram-sha/stringutils.cc +0 -82
- data/ext/couchbase/couchbase/sasl/scram-sha/stringutils.h +0 -48
- data/ext/couchbase/couchbase/search_highlight_style.hxx +0 -23
- data/ext/couchbase/couchbase/search_scan_consistency.hxx +0 -23
- data/ext/couchbase/couchbase/service_type.hxx +0 -31
- data/ext/couchbase/couchbase/service_type_fmt.hxx +0 -61
- data/ext/couchbase/couchbase/timeout_defaults.hxx +0 -42
- data/ext/couchbase/couchbase/topology/CMakeLists.txt +0 -9
- data/ext/couchbase/couchbase/topology/capabilities.hxx +0 -43
- data/ext/couchbase/couchbase/topology/capabilities_fmt.hxx +0 -106
- data/ext/couchbase/couchbase/topology/collections_manifest.hxx +0 -42
- data/ext/couchbase/couchbase/topology/collections_manifest_fmt.hxx +0 -52
- data/ext/couchbase/couchbase/topology/collections_manifest_json.hxx +0 -50
- data/ext/couchbase/couchbase/topology/configuration.cxx +0 -223
- data/ext/couchbase/couchbase/topology/configuration.hxx +0 -120
- data/ext/couchbase/couchbase/topology/configuration_fmt.hxx +0 -166
- data/ext/couchbase/couchbase/topology/configuration_json.hxx +0 -259
- data/ext/couchbase/couchbase/topology/error_map.hxx +0 -149
- data/ext/couchbase/couchbase/topology/error_map_fmt.hxx +0 -94
- data/ext/couchbase/couchbase/topology/error_map_json.hxx +0 -88
- data/ext/couchbase/couchbase/tracing/CMakeLists.txt +0 -9
- data/ext/couchbase/couchbase/tracing/constants.hxx +0 -274
- data/ext/couchbase/couchbase/tracing/noop_tracer.hxx +0 -55
- data/ext/couchbase/couchbase/tracing/threshold_logging_options.hxx +0 -68
- data/ext/couchbase/couchbase/tracing/threshold_logging_tracer.cxx +0 -422
- data/ext/couchbase/couchbase/tracing/threshold_logging_tracer.hxx +0 -49
- data/ext/couchbase/couchbase/utils/CMakeLists.txt +0 -17
- data/ext/couchbase/couchbase/utils/byteswap.cxx +0 -45
- data/ext/couchbase/couchbase/utils/byteswap.hxx +0 -49
- data/ext/couchbase/couchbase/utils/connection_string.cxx +0 -420
- data/ext/couchbase/couchbase/utils/connection_string.hxx +0 -76
- data/ext/couchbase/couchbase/utils/crc32.hxx +0 -48
- data/ext/couchbase/couchbase/utils/duration_parser.cxx +0 -193
- data/ext/couchbase/couchbase/utils/duration_parser.hxx +0 -45
- data/ext/couchbase/couchbase/utils/join_strings.hxx +0 -65
- data/ext/couchbase/couchbase/utils/json.cxx +0 -71
- data/ext/couchbase/couchbase/utils/json.hxx +0 -37
- data/ext/couchbase/couchbase/utils/json_stream_control.hxx +0 -32
- data/ext/couchbase/couchbase/utils/json_streaming_lexer.cxx +0 -394
- data/ext/couchbase/couchbase/utils/json_streaming_lexer.hxx +0 -58
- data/ext/couchbase/couchbase/utils/movable_function.hxx +0 -110
- data/ext/couchbase/couchbase/utils/name_codec.hxx +0 -41
- data/ext/couchbase/couchbase/utils/unsigned_leb128.hxx +0 -181
- data/ext/couchbase/couchbase/utils/url_codec.cxx +0 -404
- data/ext/couchbase/couchbase/utils/url_codec.hxx +0 -72
- data/ext/couchbase/couchbase/view_scan_consistency.hxx +0 -27
- data/ext/couchbase/couchbase/view_sort_order.hxx +0 -23
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/append.hpp +0 -217
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/as_tuple.hpp +0 -246
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/deferred.hpp +0 -104
- data/ext/couchbase/third_party/asio/asio/include/asio/experimental/impl/prepend.hpp +0 -217
- data/ext/couchbase/third_party/asio/asio/include/asio/impl/compose.hpp +0 -707
- data/ext/couchbase/third_party/json/external/PEGTL/include/tao/pegtl/internal/dependent_true.hpp +0 -16
|
@@ -17,21 +17,26 @@
|
|
|
17
17
|
|
|
18
18
|
#include "test_helper_integration.hxx"
|
|
19
19
|
|
|
20
|
-
#include
|
|
21
|
-
#include
|
|
22
|
-
#include
|
|
23
|
-
#include
|
|
24
|
-
#include
|
|
25
|
-
#include
|
|
26
|
-
#include
|
|
27
|
-
#include
|
|
28
|
-
#include
|
|
29
|
-
|
|
30
|
-
|
|
20
|
+
#include "core/management/analytics_link.hxx"
|
|
21
|
+
#include "core/operations/management/analytics.hxx"
|
|
22
|
+
#include "core/operations/management/bucket.hxx"
|
|
23
|
+
#include "core/operations/management/collections.hxx"
|
|
24
|
+
#include "core/operations/management/eventing.hxx"
|
|
25
|
+
#include "core/operations/management/freeform.hxx"
|
|
26
|
+
#include "core/operations/management/query.hxx"
|
|
27
|
+
#include "core/operations/management/search.hxx"
|
|
28
|
+
#include "core/operations/management/user.hxx"
|
|
29
|
+
#include "couchbase/cluster.hxx"
|
|
30
|
+
#include "couchbase/create_primary_query_index_options.hxx"
|
|
31
|
+
#include "couchbase/create_query_index_options.hxx"
|
|
32
|
+
#include "couchbase/drop_query_index_options.hxx"
|
|
33
|
+
#include "couchbase/watch_query_indexes_options.hxx"
|
|
34
|
+
|
|
35
|
+
static couchbase::core::operations::management::bucket_get_response
|
|
31
36
|
wait_for_bucket_created(test::utils::integration_test_guard& integration, const std::string& bucket_name)
|
|
32
37
|
{
|
|
33
38
|
test::utils::wait_until_bucket_healthy(integration.cluster, bucket_name);
|
|
34
|
-
couchbase::operations::management::bucket_get_request req{ bucket_name };
|
|
39
|
+
couchbase::core::operations::management::bucket_get_request req{ bucket_name };
|
|
35
40
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
36
41
|
return resp;
|
|
37
42
|
}
|
|
@@ -53,6 +58,10 @@ TEST_CASE("integration: bucket management", "[integration]")
|
|
|
53
58
|
{
|
|
54
59
|
test::utils::integration_test_guard integration;
|
|
55
60
|
|
|
61
|
+
if (!integration.cluster_version().supports_bucket_management()) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
56
65
|
if (!integration.cluster_version().supports_gcccp()) {
|
|
57
66
|
test::utils::open_bucket(integration.cluster, integration.ctx.bucket);
|
|
58
67
|
}
|
|
@@ -61,30 +70,30 @@ TEST_CASE("integration: bucket management", "[integration]")
|
|
|
61
70
|
|
|
62
71
|
SECTION("crud")
|
|
63
72
|
{
|
|
64
|
-
couchbase::management::cluster::bucket_settings bucket_settings;
|
|
73
|
+
couchbase::core::management::cluster::bucket_settings bucket_settings;
|
|
65
74
|
bucket_settings.name = bucket_name;
|
|
66
75
|
bucket_settings.ram_quota_mb = 100;
|
|
67
76
|
bucket_settings.num_replicas = 1;
|
|
68
|
-
bucket_settings.bucket_type = couchbase::management::cluster::bucket_type::couchbase;
|
|
69
|
-
bucket_settings.eviction_policy = couchbase::management::cluster::bucket_eviction_policy::value_only;
|
|
77
|
+
bucket_settings.bucket_type = couchbase::core::management::cluster::bucket_type::couchbase;
|
|
78
|
+
bucket_settings.eviction_policy = couchbase::core::management::cluster::bucket_eviction_policy::value_only;
|
|
70
79
|
bucket_settings.flush_enabled = true;
|
|
71
80
|
if (integration.cluster_version().is_enterprise()) {
|
|
72
81
|
bucket_settings.max_expiry = 10;
|
|
73
|
-
bucket_settings.compression_mode = couchbase::management::cluster::bucket_compression::active;
|
|
82
|
+
bucket_settings.compression_mode = couchbase::core::management::cluster::bucket_compression::active;
|
|
74
83
|
}
|
|
75
84
|
bucket_settings.replica_indexes = true;
|
|
76
|
-
bucket_settings.conflict_resolution_type = couchbase::management::cluster::bucket_conflict_resolution::sequence_number;
|
|
85
|
+
bucket_settings.conflict_resolution_type = couchbase::core::management::cluster::bucket_conflict_resolution::sequence_number;
|
|
77
86
|
|
|
78
87
|
{
|
|
79
|
-
couchbase::operations::management::bucket_create_request req;
|
|
88
|
+
couchbase::core::operations::management::bucket_create_request req;
|
|
80
89
|
req.bucket = bucket_settings;
|
|
81
90
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
82
|
-
|
|
91
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
83
92
|
}
|
|
84
93
|
|
|
85
94
|
{
|
|
86
95
|
auto resp = wait_for_bucket_created(integration, bucket_name);
|
|
87
|
-
|
|
96
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
88
97
|
REQUIRE(bucket_settings.bucket_type == resp.bucket.bucket_type);
|
|
89
98
|
REQUIRE(bucket_settings.name == resp.bucket.name);
|
|
90
99
|
REQUIRE(Approx(bucket_settings.ram_quota_mb).margin(5) == resp.bucket.ram_quota_mb);
|
|
@@ -97,10 +106,10 @@ TEST_CASE("integration: bucket management", "[integration]")
|
|
|
97
106
|
}
|
|
98
107
|
std::uint64_t old_quota_mb{ 0 };
|
|
99
108
|
{
|
|
100
|
-
couchbase::operations::management::bucket_get_all_request req{};
|
|
109
|
+
couchbase::core::operations::management::bucket_get_all_request req{};
|
|
101
110
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
102
111
|
INFO(resp.ctx.http_body)
|
|
103
|
-
|
|
112
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
104
113
|
bool found = false;
|
|
105
114
|
for (const auto& bucket : resp.buckets) {
|
|
106
115
|
if (bucket.name != bucket_name) {
|
|
@@ -124,38 +133,38 @@ TEST_CASE("integration: bucket management", "[integration]")
|
|
|
124
133
|
|
|
125
134
|
{
|
|
126
135
|
bucket_settings.ram_quota_mb = old_quota_mb + 20;
|
|
127
|
-
couchbase::operations::management::bucket_update_request req;
|
|
136
|
+
couchbase::core::operations::management::bucket_update_request req;
|
|
128
137
|
req.bucket = bucket_settings;
|
|
129
138
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
130
|
-
|
|
139
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
131
140
|
}
|
|
132
141
|
|
|
133
142
|
auto ram_quota_updated = test::utils::wait_until([&integration, &bucket_name, old_quota_mb]() {
|
|
134
|
-
couchbase::operations::management::bucket_get_request req{ bucket_name };
|
|
143
|
+
couchbase::core::operations::management::bucket_get_request req{ bucket_name };
|
|
135
144
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
136
145
|
return !resp.ctx.ec && resp.bucket.ram_quota_mb > old_quota_mb;
|
|
137
146
|
});
|
|
138
147
|
REQUIRE(ram_quota_updated);
|
|
139
148
|
|
|
140
149
|
{
|
|
141
|
-
couchbase::operations::management::bucket_drop_request req{ bucket_name };
|
|
150
|
+
couchbase::core::operations::management::bucket_drop_request req{ bucket_name };
|
|
142
151
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
143
|
-
|
|
152
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
144
153
|
}
|
|
145
154
|
|
|
146
155
|
{
|
|
147
|
-
couchbase::operations::management::bucket_get_request req{ bucket_name };
|
|
156
|
+
couchbase::core::operations::management::bucket_get_request req{ bucket_name };
|
|
148
157
|
auto resp = retry_on_error(integration, req, {});
|
|
149
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
158
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::bucket_not_found);
|
|
150
159
|
}
|
|
151
160
|
|
|
152
161
|
{
|
|
153
|
-
couchbase::operations::management::bucket_get_all_request req;
|
|
162
|
+
couchbase::core::operations::management::bucket_get_all_request req;
|
|
154
163
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
155
|
-
|
|
164
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
156
165
|
REQUIRE(!resp.buckets.empty());
|
|
157
166
|
auto known_buckets =
|
|
158
|
-
std::count_if(resp.buckets.begin(), resp.buckets.end(), [bucket_name](auto& entry) { return entry.name == bucket_name; });
|
|
167
|
+
std::count_if(resp.buckets.begin(), resp.buckets.end(), [&bucket_name](auto& entry) { return entry.name == bucket_name; });
|
|
159
168
|
REQUIRE(known_buckets == 0);
|
|
160
169
|
}
|
|
161
170
|
}
|
|
@@ -164,14 +173,14 @@ TEST_CASE("integration: bucket management", "[integration]")
|
|
|
164
173
|
{
|
|
165
174
|
SECTION("flush item")
|
|
166
175
|
{
|
|
167
|
-
couchbase::document_id id{ bucket_name, "_default", "_default", test::utils::uniq_id("foo") };
|
|
176
|
+
couchbase::core::document_id id{ bucket_name, "_default", "_default", test::utils::uniq_id("foo") };
|
|
168
177
|
|
|
169
178
|
{
|
|
170
|
-
couchbase::operations::management::bucket_create_request req;
|
|
179
|
+
couchbase::core::operations::management::bucket_create_request req;
|
|
171
180
|
req.bucket.name = bucket_name;
|
|
172
181
|
req.bucket.flush_enabled = true;
|
|
173
182
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
174
|
-
|
|
183
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
175
184
|
}
|
|
176
185
|
|
|
177
186
|
REQUIRE(test::utils::wait_until_bucket_healthy(integration.cluster, bucket_name));
|
|
@@ -182,114 +191,115 @@ TEST_CASE("integration: bucket management", "[integration]")
|
|
|
182
191
|
const tao::json::value value = {
|
|
183
192
|
{ "a", 1.0 },
|
|
184
193
|
};
|
|
185
|
-
couchbase::operations::insert_request req{ id, couchbase::utils::json::
|
|
194
|
+
couchbase::core::operations::insert_request req{ id, couchbase::core::utils::json::generate_binary(value) };
|
|
186
195
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
187
|
-
|
|
196
|
+
REQUIRE_SUCCESS(resp.ctx.ec());
|
|
188
197
|
}
|
|
189
198
|
|
|
190
199
|
{
|
|
191
|
-
couchbase::operations::get_request req{ id };
|
|
200
|
+
couchbase::core::operations::get_request req{ id };
|
|
192
201
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
193
|
-
|
|
202
|
+
REQUIRE_SUCCESS(resp.ctx.ec());
|
|
194
203
|
}
|
|
195
204
|
|
|
196
205
|
{
|
|
197
|
-
couchbase::operations::management::bucket_flush_request req{ bucket_name };
|
|
206
|
+
couchbase::core::operations::management::bucket_flush_request req{ bucket_name };
|
|
198
207
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
199
|
-
|
|
208
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
200
209
|
}
|
|
201
210
|
|
|
202
211
|
auto flushed = test::utils::wait_until([&integration, id]() {
|
|
203
|
-
couchbase::operations::get_request req{ id };
|
|
212
|
+
couchbase::core::operations::get_request req{ id };
|
|
204
213
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
205
|
-
return resp.ctx.ec == couchbase::
|
|
214
|
+
return resp.ctx.ec() == couchbase::errc::key_value::document_not_found;
|
|
206
215
|
});
|
|
207
216
|
REQUIRE(flushed);
|
|
208
217
|
}
|
|
209
218
|
|
|
210
219
|
SECTION("no bucket")
|
|
211
220
|
{
|
|
212
|
-
couchbase::operations::management::bucket_flush_request req{ bucket_name };
|
|
221
|
+
couchbase::core::operations::management::bucket_flush_request req{ bucket_name };
|
|
213
222
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
214
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
223
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::bucket_not_found);
|
|
215
224
|
}
|
|
216
225
|
|
|
217
226
|
SECTION("flush disabled")
|
|
218
227
|
{
|
|
219
228
|
{
|
|
220
|
-
couchbase::operations::management::bucket_create_request req;
|
|
229
|
+
couchbase::core::operations::management::bucket_create_request req;
|
|
221
230
|
req.bucket.name = bucket_name;
|
|
222
231
|
req.bucket.flush_enabled = false;
|
|
223
232
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
224
|
-
|
|
233
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
225
234
|
}
|
|
226
235
|
|
|
227
236
|
REQUIRE(test::utils::wait_until_bucket_healthy(integration.cluster, bucket_name));
|
|
228
237
|
|
|
229
238
|
{
|
|
230
|
-
couchbase::operations::management::bucket_flush_request req{ bucket_name };
|
|
239
|
+
couchbase::core::operations::management::bucket_flush_request req{ bucket_name };
|
|
231
240
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
232
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
241
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::bucket_not_flushable);
|
|
233
242
|
}
|
|
234
243
|
}
|
|
235
244
|
}
|
|
236
245
|
|
|
237
|
-
|
|
238
|
-
|
|
246
|
+
if (integration.cluster_version().supports_memcached_buckets()) {
|
|
247
|
+
SECTION("memcached")
|
|
239
248
|
{
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
249
|
+
{
|
|
250
|
+
couchbase::core::management::cluster::bucket_settings bucket_settings;
|
|
251
|
+
bucket_settings.name = bucket_name;
|
|
252
|
+
bucket_settings.bucket_type = couchbase::core::management::cluster::bucket_type::memcached;
|
|
253
|
+
bucket_settings.num_replicas = 0;
|
|
254
|
+
couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
|
|
255
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
256
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
257
|
+
}
|
|
248
258
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
259
|
+
{
|
|
260
|
+
auto resp = wait_for_bucket_created(integration, bucket_name);
|
|
261
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
262
|
+
REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::memcached);
|
|
263
|
+
}
|
|
253
264
|
}
|
|
254
265
|
}
|
|
255
266
|
|
|
256
267
|
SECTION("ephemeral")
|
|
257
268
|
{
|
|
258
|
-
couchbase::management::cluster::bucket_settings bucket_settings;
|
|
269
|
+
couchbase::core::management::cluster::bucket_settings bucket_settings;
|
|
259
270
|
bucket_settings.name = bucket_name;
|
|
260
|
-
bucket_settings.bucket_type = couchbase::management::cluster::bucket_type::ephemeral;
|
|
271
|
+
bucket_settings.bucket_type = couchbase::core::management::cluster::bucket_type::ephemeral;
|
|
261
272
|
|
|
262
273
|
SECTION("default eviction")
|
|
263
274
|
{
|
|
264
275
|
{
|
|
265
|
-
couchbase::operations::management::bucket_create_request req{ bucket_settings };
|
|
276
|
+
couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
|
|
266
277
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
267
|
-
|
|
268
|
-
REQUIRE_FALSE(resp.ctx.ec);
|
|
278
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
269
279
|
}
|
|
270
280
|
|
|
271
281
|
{
|
|
272
282
|
auto resp = wait_for_bucket_created(integration, bucket_name);
|
|
273
|
-
|
|
274
|
-
REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::ephemeral);
|
|
275
|
-
REQUIRE(resp.bucket.eviction_policy == couchbase::management::cluster::bucket_eviction_policy::no_eviction);
|
|
283
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
284
|
+
REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::ephemeral);
|
|
285
|
+
REQUIRE(resp.bucket.eviction_policy == couchbase::core::management::cluster::bucket_eviction_policy::no_eviction);
|
|
276
286
|
}
|
|
277
287
|
}
|
|
278
288
|
|
|
279
289
|
SECTION("nru eviction")
|
|
280
290
|
{
|
|
281
291
|
{
|
|
282
|
-
bucket_settings.eviction_policy = couchbase::management::cluster::bucket_eviction_policy::not_recently_used;
|
|
283
|
-
couchbase::operations::management::bucket_create_request req{ bucket_settings };
|
|
292
|
+
bucket_settings.eviction_policy = couchbase::core::management::cluster::bucket_eviction_policy::not_recently_used;
|
|
293
|
+
couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
|
|
284
294
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
285
|
-
|
|
295
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
286
296
|
}
|
|
287
297
|
|
|
288
298
|
{
|
|
289
299
|
auto resp = wait_for_bucket_created(integration, bucket_name);
|
|
290
|
-
|
|
291
|
-
REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::ephemeral);
|
|
292
|
-
REQUIRE(resp.bucket.eviction_policy == couchbase::management::cluster::bucket_eviction_policy::not_recently_used);
|
|
300
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
301
|
+
REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::ephemeral);
|
|
302
|
+
REQUIRE(resp.bucket.eviction_policy == couchbase::core::management::cluster::bucket_eviction_policy::not_recently_used);
|
|
293
303
|
}
|
|
294
304
|
}
|
|
295
305
|
|
|
@@ -297,17 +307,17 @@ TEST_CASE("integration: bucket management", "[integration]")
|
|
|
297
307
|
SECTION("storage backend")
|
|
298
308
|
{
|
|
299
309
|
{
|
|
300
|
-
bucket_settings.storage_backend = couchbase::management::cluster::bucket_storage_backend::couchstore;
|
|
301
|
-
couchbase::operations::management::bucket_create_request req{ bucket_settings };
|
|
310
|
+
bucket_settings.storage_backend = couchbase::core::management::cluster::bucket_storage_backend::couchstore;
|
|
311
|
+
couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
|
|
302
312
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
303
|
-
|
|
313
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
304
314
|
}
|
|
305
315
|
|
|
306
316
|
{
|
|
307
317
|
auto resp = wait_for_bucket_created(integration, bucket_name);
|
|
308
|
-
|
|
309
|
-
REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::ephemeral);
|
|
310
|
-
REQUIRE(resp.bucket.storage_backend == couchbase::management::cluster::bucket_storage_backend::unknown);
|
|
318
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
319
|
+
REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::ephemeral);
|
|
320
|
+
REQUIRE(resp.bucket.storage_backend == couchbase::core::management::cluster::bucket_storage_backend::unknown);
|
|
311
321
|
}
|
|
312
322
|
}
|
|
313
323
|
}
|
|
@@ -315,42 +325,41 @@ TEST_CASE("integration: bucket management", "[integration]")
|
|
|
315
325
|
|
|
316
326
|
SECTION("couchbase")
|
|
317
327
|
{
|
|
318
|
-
couchbase::management::cluster::bucket_settings bucket_settings;
|
|
328
|
+
couchbase::core::management::cluster::bucket_settings bucket_settings;
|
|
319
329
|
bucket_settings.name = bucket_name;
|
|
320
|
-
bucket_settings.bucket_type = couchbase::management::cluster::bucket_type::couchbase;
|
|
330
|
+
bucket_settings.bucket_type = couchbase::core::management::cluster::bucket_type::couchbase;
|
|
321
331
|
|
|
322
332
|
SECTION("default eviction")
|
|
323
333
|
{
|
|
324
334
|
{
|
|
325
335
|
|
|
326
|
-
couchbase::operations::management::bucket_create_request req{ bucket_settings };
|
|
336
|
+
couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
|
|
327
337
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
328
|
-
|
|
329
|
-
REQUIRE_FALSE(resp.ctx.ec);
|
|
338
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
330
339
|
}
|
|
331
340
|
|
|
332
341
|
{
|
|
333
342
|
auto resp = wait_for_bucket_created(integration, bucket_name);
|
|
334
|
-
|
|
335
|
-
REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::couchbase);
|
|
336
|
-
REQUIRE(resp.bucket.eviction_policy == couchbase::management::cluster::bucket_eviction_policy::value_only);
|
|
343
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
344
|
+
REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::couchbase);
|
|
345
|
+
REQUIRE(resp.bucket.eviction_policy == couchbase::core::management::cluster::bucket_eviction_policy::value_only);
|
|
337
346
|
}
|
|
338
347
|
}
|
|
339
348
|
|
|
340
349
|
SECTION("full eviction")
|
|
341
350
|
{
|
|
342
351
|
{
|
|
343
|
-
bucket_settings.eviction_policy = couchbase::management::cluster::bucket_eviction_policy::full;
|
|
344
|
-
couchbase::operations::management::bucket_create_request req{ bucket_settings };
|
|
352
|
+
bucket_settings.eviction_policy = couchbase::core::management::cluster::bucket_eviction_policy::full;
|
|
353
|
+
couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
|
|
345
354
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
346
|
-
|
|
355
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
347
356
|
}
|
|
348
357
|
|
|
349
358
|
{
|
|
350
359
|
auto resp = wait_for_bucket_created(integration, bucket_name);
|
|
351
|
-
|
|
352
|
-
REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::couchbase);
|
|
353
|
-
REQUIRE(resp.bucket.eviction_policy == couchbase::management::cluster::bucket_eviction_policy::full);
|
|
360
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
361
|
+
REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::couchbase);
|
|
362
|
+
REQUIRE(resp.bucket.eviction_policy == couchbase::core::management::cluster::bucket_eviction_policy::full);
|
|
354
363
|
}
|
|
355
364
|
}
|
|
356
365
|
|
|
@@ -360,35 +369,35 @@ TEST_CASE("integration: bucket management", "[integration]")
|
|
|
360
369
|
SECTION("couchstore")
|
|
361
370
|
{
|
|
362
371
|
{
|
|
363
|
-
bucket_settings.storage_backend = couchbase::management::cluster::bucket_storage_backend::couchstore;
|
|
364
|
-
couchbase::operations::management::bucket_create_request req{ bucket_settings };
|
|
372
|
+
bucket_settings.storage_backend = couchbase::core::management::cluster::bucket_storage_backend::couchstore;
|
|
373
|
+
couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
|
|
365
374
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
366
|
-
|
|
375
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
367
376
|
}
|
|
368
377
|
|
|
369
378
|
{
|
|
370
379
|
auto resp = wait_for_bucket_created(integration, bucket_name);
|
|
371
|
-
|
|
372
|
-
REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::couchbase);
|
|
373
|
-
REQUIRE(resp.bucket.storage_backend == couchbase::management::cluster::bucket_storage_backend::couchstore);
|
|
380
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
381
|
+
REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::couchbase);
|
|
382
|
+
REQUIRE(resp.bucket.storage_backend == couchbase::core::management::cluster::bucket_storage_backend::couchstore);
|
|
374
383
|
}
|
|
375
384
|
}
|
|
376
385
|
|
|
377
386
|
SECTION("magma")
|
|
378
387
|
{
|
|
379
388
|
{
|
|
380
|
-
bucket_settings.ram_quota_mb = 256;
|
|
381
|
-
bucket_settings.storage_backend = couchbase::management::cluster::bucket_storage_backend::magma;
|
|
382
|
-
couchbase::operations::management::bucket_create_request req{ bucket_settings };
|
|
389
|
+
bucket_settings.ram_quota_mb = integration.cluster_version().is_neo() ? 1'024 : 256;
|
|
390
|
+
bucket_settings.storage_backend = couchbase::core::management::cluster::bucket_storage_backend::magma;
|
|
391
|
+
couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
|
|
383
392
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
384
|
-
|
|
393
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
385
394
|
}
|
|
386
395
|
|
|
387
396
|
{
|
|
388
397
|
auto resp = wait_for_bucket_created(integration, bucket_name);
|
|
389
|
-
|
|
390
|
-
REQUIRE(resp.bucket.bucket_type == couchbase::management::cluster::bucket_type::couchbase);
|
|
391
|
-
REQUIRE(resp.bucket.storage_backend == couchbase::management::cluster::bucket_storage_backend::magma);
|
|
398
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
399
|
+
REQUIRE(resp.bucket.bucket_type == couchbase::core::management::cluster::bucket_type::couchbase);
|
|
400
|
+
REQUIRE(resp.bucket.storage_backend == couchbase::core::management::cluster::bucket_storage_backend::magma);
|
|
392
401
|
}
|
|
393
402
|
}
|
|
394
403
|
}
|
|
@@ -398,32 +407,32 @@ TEST_CASE("integration: bucket management", "[integration]")
|
|
|
398
407
|
SECTION("update no bucket")
|
|
399
408
|
{
|
|
400
409
|
|
|
401
|
-
couchbase::management::cluster::bucket_settings bucket_settings;
|
|
410
|
+
couchbase::core::management::cluster::bucket_settings bucket_settings;
|
|
402
411
|
bucket_settings.name = bucket_name;
|
|
403
|
-
couchbase::operations::management::bucket_update_request req;
|
|
412
|
+
couchbase::core::operations::management::bucket_update_request req;
|
|
404
413
|
req.bucket = bucket_settings;
|
|
405
414
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
406
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
415
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::bucket_not_found);
|
|
407
416
|
}
|
|
408
417
|
|
|
409
418
|
if (integration.cluster_version().supports_minimum_durability_level()) {
|
|
410
419
|
SECTION("minimum durability level")
|
|
411
420
|
{
|
|
412
|
-
couchbase::management::cluster::bucket_settings bucket_settings;
|
|
421
|
+
couchbase::core::management::cluster::bucket_settings bucket_settings;
|
|
413
422
|
bucket_settings.name = bucket_name;
|
|
414
423
|
|
|
415
424
|
SECTION("default")
|
|
416
425
|
{
|
|
417
426
|
{
|
|
418
|
-
couchbase::operations::management::bucket_create_request req{ bucket_settings };
|
|
427
|
+
couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
|
|
419
428
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
420
|
-
|
|
429
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
421
430
|
}
|
|
422
431
|
|
|
423
432
|
{
|
|
424
433
|
auto resp = wait_for_bucket_created(integration, bucket_name);
|
|
425
|
-
|
|
426
|
-
REQUIRE(resp.bucket.minimum_durability_level == couchbase::
|
|
434
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
435
|
+
REQUIRE(resp.bucket.minimum_durability_level == couchbase::durability_level::none);
|
|
427
436
|
}
|
|
428
437
|
}
|
|
429
438
|
|
|
@@ -431,17 +440,16 @@ TEST_CASE("integration: bucket management", "[integration]")
|
|
|
431
440
|
SECTION("majority")
|
|
432
441
|
{
|
|
433
442
|
{
|
|
434
|
-
bucket_settings.minimum_durability_level = couchbase::
|
|
435
|
-
couchbase::operations::management::bucket_create_request req{ bucket_settings };
|
|
443
|
+
bucket_settings.minimum_durability_level = couchbase::durability_level::majority;
|
|
444
|
+
couchbase::core::operations::management::bucket_create_request req{ bucket_settings };
|
|
436
445
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
437
|
-
|
|
438
|
-
REQUIRE_FALSE(resp.ctx.ec);
|
|
446
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
439
447
|
}
|
|
440
448
|
|
|
441
449
|
{
|
|
442
450
|
auto resp = wait_for_bucket_created(integration, bucket_name);
|
|
443
|
-
|
|
444
|
-
REQUIRE(resp.bucket.minimum_durability_level == couchbase::
|
|
451
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
452
|
+
REQUIRE(resp.bucket.minimum_durability_level == couchbase::durability_level::majority);
|
|
445
453
|
}
|
|
446
454
|
}
|
|
447
455
|
}
|
|
@@ -452,37 +460,37 @@ TEST_CASE("integration: bucket management", "[integration]")
|
|
|
452
460
|
|
|
453
461
|
// drop bucket if not already dropped
|
|
454
462
|
{
|
|
455
|
-
couchbase::operations::management::bucket_drop_request req{ bucket_name };
|
|
463
|
+
couchbase::core::operations::management::bucket_drop_request req{ bucket_name };
|
|
456
464
|
test::utils::execute(integration.cluster, req);
|
|
457
465
|
}
|
|
458
466
|
}
|
|
459
467
|
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
468
|
+
std::optional<couchbase::core::topology::collections_manifest::collection>
|
|
469
|
+
get_collection(std::shared_ptr<couchbase::core::cluster> cluster,
|
|
470
|
+
const std::string& bucket_name,
|
|
471
|
+
const std::string& scope_name,
|
|
472
|
+
const std::string& collection_name)
|
|
465
473
|
{
|
|
466
|
-
couchbase::operations::management::scope_get_all_request req{ bucket_name };
|
|
474
|
+
couchbase::core::operations::management::scope_get_all_request req{ bucket_name };
|
|
467
475
|
auto resp = test::utils::execute(cluster, req);
|
|
468
476
|
if (!resp.ctx.ec) {
|
|
469
477
|
for (const auto& scope : resp.manifest.scopes) {
|
|
470
478
|
if (scope.name == scope_name) {
|
|
471
479
|
for (const auto& collection : scope.collections) {
|
|
472
480
|
if (collection.name == collection_name) {
|
|
473
|
-
return
|
|
481
|
+
return collection;
|
|
474
482
|
}
|
|
475
483
|
}
|
|
476
484
|
}
|
|
477
485
|
}
|
|
478
486
|
}
|
|
479
|
-
return
|
|
487
|
+
return std::nullopt;
|
|
480
488
|
}
|
|
481
489
|
|
|
482
490
|
bool
|
|
483
|
-
scope_exists(std::shared_ptr<couchbase::cluster> cluster, const std::string& bucket_name, const std::string& scope_name)
|
|
491
|
+
scope_exists(std::shared_ptr<couchbase::core::cluster> cluster, const std::string& bucket_name, const std::string& scope_name)
|
|
484
492
|
{
|
|
485
|
-
couchbase::operations::management::scope_get_all_request req{ bucket_name };
|
|
493
|
+
couchbase::core::operations::management::scope_get_all_request req{ bucket_name };
|
|
486
494
|
auto resp = test::utils::execute(cluster, req);
|
|
487
495
|
if (!resp.ctx.ec) {
|
|
488
496
|
for (const auto& scope : resp.manifest.scopes) {
|
|
@@ -497,6 +505,7 @@ scope_exists(std::shared_ptr<couchbase::cluster> cluster, const std::string& buc
|
|
|
497
505
|
TEST_CASE("integration: collection management", "[integration]")
|
|
498
506
|
{
|
|
499
507
|
test::utils::integration_test_guard integration;
|
|
508
|
+
test::utils::open_bucket(integration.cluster, integration.ctx.bucket);
|
|
500
509
|
|
|
501
510
|
if (!integration.cluster_version().supports_collections()) {
|
|
502
511
|
return;
|
|
@@ -504,11 +513,14 @@ TEST_CASE("integration: collection management", "[integration]")
|
|
|
504
513
|
|
|
505
514
|
auto scope_name = test::utils::uniq_id("scope");
|
|
506
515
|
auto collection_name = test::utils::uniq_id("collection");
|
|
516
|
+
std::uint32_t max_expiry = 5;
|
|
507
517
|
|
|
508
518
|
{
|
|
509
|
-
couchbase::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
|
|
519
|
+
couchbase::core::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
|
|
510
520
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
511
|
-
|
|
521
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
522
|
+
auto created = test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
|
|
523
|
+
REQUIRE(created);
|
|
512
524
|
}
|
|
513
525
|
|
|
514
526
|
{
|
|
@@ -517,56 +529,66 @@ TEST_CASE("integration: collection management", "[integration]")
|
|
|
517
529
|
}
|
|
518
530
|
|
|
519
531
|
{
|
|
520
|
-
couchbase::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
|
|
532
|
+
couchbase::core::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
|
|
521
533
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
522
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
534
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::scope_exists);
|
|
523
535
|
}
|
|
524
536
|
|
|
525
537
|
{
|
|
526
|
-
couchbase::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
|
|
538
|
+
couchbase::core::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
|
|
527
539
|
if (integration.cluster_version().is_enterprise()) {
|
|
528
|
-
req.max_expiry =
|
|
540
|
+
req.max_expiry = max_expiry;
|
|
529
541
|
}
|
|
530
542
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
531
|
-
|
|
543
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
544
|
+
auto created = test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
|
|
545
|
+
REQUIRE(created);
|
|
532
546
|
}
|
|
533
547
|
|
|
534
548
|
{
|
|
535
|
-
|
|
536
|
-
|
|
549
|
+
couchbase::core::topology::collections_manifest::collection collection;
|
|
550
|
+
auto created = test::utils::wait_until([&]() {
|
|
551
|
+
auto coll = get_collection(integration.cluster, integration.ctx.bucket, scope_name, collection_name);
|
|
552
|
+
if (coll) {
|
|
553
|
+
collection = *coll;
|
|
554
|
+
return true;
|
|
555
|
+
}
|
|
556
|
+
return false;
|
|
557
|
+
});
|
|
537
558
|
REQUIRE(created);
|
|
559
|
+
if (integration.cluster_version().is_enterprise()) {
|
|
560
|
+
REQUIRE(collection.max_expiry == max_expiry);
|
|
561
|
+
}
|
|
538
562
|
}
|
|
539
563
|
|
|
540
|
-
// TODO: Check collection was created with correct max expiry when supported
|
|
541
|
-
|
|
542
564
|
{
|
|
543
|
-
couchbase::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
|
|
565
|
+
couchbase::core::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
|
|
544
566
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
545
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
567
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::collection_exists);
|
|
546
568
|
}
|
|
547
569
|
|
|
548
570
|
{
|
|
549
|
-
couchbase::operations::management::collection_drop_request req{ integration.ctx.bucket, scope_name, collection_name };
|
|
571
|
+
couchbase::core::operations::management::collection_drop_request req{ integration.ctx.bucket, scope_name, collection_name };
|
|
550
572
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
551
|
-
|
|
573
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
552
574
|
}
|
|
553
575
|
|
|
554
576
|
{
|
|
555
577
|
auto dropped = test::utils::wait_until(
|
|
556
|
-
[&]() { return !
|
|
578
|
+
[&]() { return !get_collection(integration.cluster, integration.ctx.bucket, scope_name, collection_name).has_value(); });
|
|
557
579
|
REQUIRE(dropped);
|
|
558
580
|
}
|
|
559
581
|
|
|
560
582
|
{
|
|
561
|
-
couchbase::operations::management::collection_drop_request req{ integration.ctx.bucket, scope_name, collection_name };
|
|
583
|
+
couchbase::core::operations::management::collection_drop_request req{ integration.ctx.bucket, scope_name, collection_name };
|
|
562
584
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
563
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
585
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::collection_not_found);
|
|
564
586
|
}
|
|
565
587
|
|
|
566
588
|
{
|
|
567
|
-
couchbase::operations::management::scope_drop_request req{ integration.ctx.bucket, scope_name };
|
|
589
|
+
couchbase::core::operations::management::scope_drop_request req{ integration.ctx.bucket, scope_name };
|
|
568
590
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
569
|
-
|
|
591
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
570
592
|
}
|
|
571
593
|
|
|
572
594
|
{
|
|
@@ -575,15 +597,15 @@ TEST_CASE("integration: collection management", "[integration]")
|
|
|
575
597
|
}
|
|
576
598
|
|
|
577
599
|
{
|
|
578
|
-
couchbase::operations::management::scope_drop_request req{ integration.ctx.bucket, scope_name };
|
|
600
|
+
couchbase::core::operations::management::scope_drop_request req{ integration.ctx.bucket, scope_name };
|
|
579
601
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
580
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
602
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::scope_not_found);
|
|
581
603
|
}
|
|
582
604
|
}
|
|
583
605
|
|
|
584
606
|
void
|
|
585
|
-
assert_user_and_metadata(const couchbase::management::rbac::user_and_metadata& user,
|
|
586
|
-
const couchbase::management::rbac::user_and_metadata& expected)
|
|
607
|
+
assert_user_and_metadata(const couchbase::core::management::rbac::user_and_metadata& user,
|
|
608
|
+
const couchbase::core::management::rbac::user_and_metadata& expected)
|
|
587
609
|
{
|
|
588
610
|
REQUIRE(user.username == expected.username);
|
|
589
611
|
REQUIRE(user.groups == expected.groups);
|
|
@@ -634,23 +656,23 @@ TEST_CASE("integration: user groups management", "[integration]")
|
|
|
634
656
|
auto group_name_1 = test::utils::uniq_id("group");
|
|
635
657
|
auto group_name_2 = test::utils::uniq_id("group");
|
|
636
658
|
|
|
637
|
-
couchbase::management::rbac::group group{};
|
|
659
|
+
couchbase::core::management::rbac::group group{};
|
|
638
660
|
group.name = group_name_1;
|
|
639
661
|
group.description = "this is a test";
|
|
640
|
-
group.roles = { couchbase::management::rbac::role{ "replication_target", integration.ctx.bucket },
|
|
641
|
-
couchbase::management::rbac::role{ "replication_admin" } };
|
|
662
|
+
group.roles = { couchbase::core::management::rbac::role{ "replication_target", integration.ctx.bucket },
|
|
663
|
+
couchbase::core::management::rbac::role{ "replication_admin" } };
|
|
642
664
|
group.ldap_group_reference = "asda=price";
|
|
643
665
|
|
|
644
666
|
{
|
|
645
|
-
couchbase::operations::management::group_upsert_request req{ group };
|
|
667
|
+
couchbase::core::operations::management::group_upsert_request req{ group };
|
|
646
668
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
647
|
-
|
|
669
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
648
670
|
}
|
|
649
671
|
|
|
650
672
|
{
|
|
651
|
-
couchbase::operations::management::group_get_request req{ group_name_1 };
|
|
652
|
-
auto resp = retry_on_error(integration, req, couchbase::
|
|
653
|
-
|
|
673
|
+
couchbase::core::operations::management::group_get_request req{ group_name_1 };
|
|
674
|
+
auto resp = retry_on_error(integration, req, couchbase::errc::management::group_not_found);
|
|
675
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
654
676
|
REQUIRE(resp.group.name == group.name);
|
|
655
677
|
REQUIRE(resp.group.description == group.description);
|
|
656
678
|
REQUIRE(resp.group.ldap_group_reference == group.ldap_group_reference);
|
|
@@ -658,15 +680,15 @@ TEST_CASE("integration: user groups management", "[integration]")
|
|
|
658
680
|
|
|
659
681
|
{
|
|
660
682
|
group.description = "this is still a test";
|
|
661
|
-
group.roles.push_back(couchbase::management::rbac::role{ "query_system_catalog" });
|
|
662
|
-
couchbase::operations::management::group_upsert_request req{ group };
|
|
683
|
+
group.roles.push_back(couchbase::core::management::rbac::role{ "query_system_catalog" });
|
|
684
|
+
couchbase::core::operations::management::group_upsert_request req{ group };
|
|
663
685
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
664
|
-
|
|
686
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
665
687
|
}
|
|
666
688
|
|
|
667
689
|
{
|
|
668
690
|
auto updated = test::utils::wait_until([&]() {
|
|
669
|
-
couchbase::operations::management::group_get_request req{ group_name_1 };
|
|
691
|
+
couchbase::core::operations::management::group_get_request req{ group_name_1 };
|
|
670
692
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
671
693
|
return !resp.ctx.ec && resp.group.description == group.description;
|
|
672
694
|
});
|
|
@@ -675,53 +697,53 @@ TEST_CASE("integration: user groups management", "[integration]")
|
|
|
675
697
|
|
|
676
698
|
{
|
|
677
699
|
group.name = group_name_2;
|
|
678
|
-
couchbase::operations::management::group_upsert_request req{ group };
|
|
700
|
+
couchbase::core::operations::management::group_upsert_request req{ group };
|
|
679
701
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
680
|
-
|
|
702
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
681
703
|
}
|
|
682
704
|
|
|
683
705
|
{
|
|
684
706
|
auto created = test::utils::wait_until([&]() {
|
|
685
|
-
couchbase::operations::management::group_get_all_request req{ group_name_2 };
|
|
707
|
+
couchbase::core::operations::management::group_get_all_request req{ group_name_2 };
|
|
686
708
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
687
|
-
|
|
709
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
688
710
|
return resp.groups.size() == 2;
|
|
689
711
|
});
|
|
690
712
|
REQUIRE(created);
|
|
691
713
|
}
|
|
692
714
|
|
|
693
715
|
{
|
|
694
|
-
couchbase::operations::management::role_get_all_request req{};
|
|
716
|
+
couchbase::core::operations::management::role_get_all_request req{};
|
|
695
717
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
696
|
-
|
|
718
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
697
719
|
REQUIRE(resp.roles.size() > 0);
|
|
698
720
|
}
|
|
699
721
|
|
|
700
722
|
{
|
|
701
|
-
couchbase::operations::management::group_drop_request req{ group_name_1 };
|
|
723
|
+
couchbase::core::operations::management::group_drop_request req{ group_name_1 };
|
|
702
724
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
703
|
-
|
|
725
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
704
726
|
}
|
|
705
727
|
|
|
706
728
|
{
|
|
707
|
-
couchbase::operations::management::group_drop_request req{ group_name_2 };
|
|
729
|
+
couchbase::core::operations::management::group_drop_request req{ group_name_2 };
|
|
708
730
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
709
|
-
|
|
731
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
710
732
|
}
|
|
711
733
|
}
|
|
712
734
|
|
|
713
735
|
SECTION("get missing group")
|
|
714
736
|
{
|
|
715
|
-
couchbase::operations::management::group_get_request req{ test::utils::uniq_id("group") };
|
|
737
|
+
couchbase::core::operations::management::group_get_request req{ test::utils::uniq_id("group") };
|
|
716
738
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
717
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
739
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::group_not_found);
|
|
718
740
|
}
|
|
719
741
|
|
|
720
742
|
SECTION("drop missing group")
|
|
721
743
|
{
|
|
722
|
-
couchbase::operations::management::group_drop_request req{ test::utils::uniq_id("group") };
|
|
744
|
+
couchbase::core::operations::management::group_drop_request req{ test::utils::uniq_id("group") };
|
|
723
745
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
724
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
746
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::group_not_found);
|
|
725
747
|
}
|
|
726
748
|
|
|
727
749
|
SECTION("user and groups crud")
|
|
@@ -729,60 +751,60 @@ TEST_CASE("integration: user groups management", "[integration]")
|
|
|
729
751
|
auto group_name = test::utils::uniq_id("group");
|
|
730
752
|
auto user_name = test::utils::uniq_id("user");
|
|
731
753
|
|
|
732
|
-
couchbase::management::rbac::group group{};
|
|
754
|
+
couchbase::core::management::rbac::group group{};
|
|
733
755
|
group.name = group_name;
|
|
734
756
|
group.description = "this is a test";
|
|
735
|
-
group.roles = { couchbase::management::rbac::role{ "replication_target", integration.ctx.bucket },
|
|
736
|
-
couchbase::management::rbac::role{ "replication_admin" } };
|
|
757
|
+
group.roles = { couchbase::core::management::rbac::role{ "replication_target", integration.ctx.bucket },
|
|
758
|
+
couchbase::core::management::rbac::role{ "replication_admin" } };
|
|
737
759
|
|
|
738
760
|
{
|
|
739
|
-
couchbase::operations::management::group_upsert_request req{ group };
|
|
761
|
+
couchbase::core::operations::management::group_upsert_request req{ group };
|
|
740
762
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
741
|
-
|
|
763
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
742
764
|
}
|
|
743
765
|
|
|
744
|
-
couchbase::management::rbac::user user{ user_name };
|
|
766
|
+
couchbase::core::management::rbac::user user{ user_name };
|
|
745
767
|
user.display_name = "display_name";
|
|
746
768
|
user.password = "password";
|
|
747
769
|
user.roles = {
|
|
748
|
-
couchbase::management::rbac::role{ "bucket_admin", integration.ctx.bucket },
|
|
770
|
+
couchbase::core::management::rbac::role{ "bucket_admin", integration.ctx.bucket },
|
|
749
771
|
};
|
|
750
772
|
user.groups = { group_name };
|
|
751
773
|
|
|
752
774
|
{
|
|
753
|
-
couchbase::operations::management::user_upsert_request req{};
|
|
775
|
+
couchbase::core::operations::management::user_upsert_request req{};
|
|
754
776
|
req.user = user;
|
|
755
|
-
auto resp = retry_on_error(integration, req, couchbase::
|
|
756
|
-
|
|
777
|
+
auto resp = retry_on_error(integration, req, couchbase::errc::common::invalid_argument);
|
|
778
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
757
779
|
}
|
|
758
780
|
|
|
759
|
-
couchbase::management::rbac::user_and_metadata expected{};
|
|
781
|
+
couchbase::core::management::rbac::user_and_metadata expected{};
|
|
760
782
|
expected.username = user.username;
|
|
761
783
|
expected.display_name = user.display_name;
|
|
762
784
|
expected.roles = user.roles;
|
|
763
785
|
expected.groups = user.groups;
|
|
764
|
-
expected.domain = couchbase::management::rbac::auth_domain::local;
|
|
786
|
+
expected.domain = couchbase::core::management::rbac::auth_domain::local;
|
|
765
787
|
|
|
766
|
-
couchbase::management::rbac::role_and_origins expected_role_1{};
|
|
788
|
+
couchbase::core::management::rbac::role_and_origins expected_role_1{};
|
|
767
789
|
expected_role_1.name = "bucket_admin";
|
|
768
790
|
expected_role_1.bucket = integration.ctx.bucket;
|
|
769
|
-
expected_role_1.origins = { couchbase::management::rbac::origin{ "user" } };
|
|
791
|
+
expected_role_1.origins = { couchbase::core::management::rbac::origin{ "user" } };
|
|
770
792
|
|
|
771
|
-
couchbase::management::rbac::role_and_origins expected_role_2{};
|
|
793
|
+
couchbase::core::management::rbac::role_and_origins expected_role_2{};
|
|
772
794
|
expected_role_2.name = "replication_target";
|
|
773
795
|
expected_role_2.bucket = integration.ctx.bucket;
|
|
774
|
-
expected_role_2.origins = { couchbase::management::rbac::origin{ "group", group_name } };
|
|
796
|
+
expected_role_2.origins = { couchbase::core::management::rbac::origin{ "group", group_name } };
|
|
775
797
|
|
|
776
|
-
couchbase::management::rbac::role_and_origins expected_role_3{};
|
|
798
|
+
couchbase::core::management::rbac::role_and_origins expected_role_3{};
|
|
777
799
|
expected_role_3.name = "replication_admin";
|
|
778
|
-
expected_role_3.origins = { couchbase::management::rbac::origin{ "group", group_name } };
|
|
800
|
+
expected_role_3.origins = { couchbase::core::management::rbac::origin{ "group", group_name } };
|
|
779
801
|
|
|
780
802
|
expected.effective_roles = { expected_role_1, expected_role_2, expected_role_3 };
|
|
781
803
|
|
|
782
804
|
{
|
|
783
|
-
couchbase::operations::management::user_get_request req{ user_name };
|
|
784
|
-
auto resp = retry_on_error(integration, req, couchbase::
|
|
785
|
-
|
|
805
|
+
couchbase::core::operations::management::user_get_request req{ user_name };
|
|
806
|
+
auto resp = retry_on_error(integration, req, couchbase::errc::management::user_not_found);
|
|
807
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
786
808
|
assert_user_and_metadata(resp.user, expected);
|
|
787
809
|
}
|
|
788
810
|
|
|
@@ -790,27 +812,27 @@ TEST_CASE("integration: user groups management", "[integration]")
|
|
|
790
812
|
expected.display_name = "different_display_name";
|
|
791
813
|
|
|
792
814
|
{
|
|
793
|
-
couchbase::operations::management::user_upsert_request req{};
|
|
815
|
+
couchbase::core::operations::management::user_upsert_request req{};
|
|
794
816
|
req.user = user;
|
|
795
817
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
796
|
-
|
|
818
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
797
819
|
}
|
|
798
820
|
|
|
799
821
|
{
|
|
800
|
-
couchbase::operations::management::user_get_response resp;
|
|
822
|
+
couchbase::core::operations::management::user_get_response resp;
|
|
801
823
|
test::utils::wait_until([&]() {
|
|
802
|
-
couchbase::operations::management::user_get_request req{ user.username };
|
|
824
|
+
couchbase::core::operations::management::user_get_request req{ user.username };
|
|
803
825
|
resp = test::utils::execute(integration.cluster, req);
|
|
804
826
|
return !resp.ctx.ec && resp.user.display_name == user.display_name;
|
|
805
827
|
});
|
|
806
|
-
|
|
828
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
807
829
|
assert_user_and_metadata(resp.user, expected);
|
|
808
830
|
}
|
|
809
831
|
|
|
810
832
|
{
|
|
811
|
-
couchbase::operations::management::user_get_all_request req{};
|
|
833
|
+
couchbase::core::operations::management::user_get_all_request req{};
|
|
812
834
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
813
|
-
|
|
835
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
814
836
|
REQUIRE_FALSE(resp.users.empty());
|
|
815
837
|
auto upserted_user =
|
|
816
838
|
std::find_if(resp.users.begin(), resp.users.end(), [&user_name](const auto& u) { return u.username == user_name; });
|
|
@@ -819,15 +841,15 @@ TEST_CASE("integration: user groups management", "[integration]")
|
|
|
819
841
|
}
|
|
820
842
|
|
|
821
843
|
{
|
|
822
|
-
couchbase::operations::management::user_drop_request req{ user_name };
|
|
844
|
+
couchbase::core::operations::management::user_drop_request req{ user_name };
|
|
823
845
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
824
|
-
|
|
846
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
825
847
|
}
|
|
826
848
|
|
|
827
849
|
{
|
|
828
|
-
couchbase::operations::management::group_drop_request req{ group_name };
|
|
850
|
+
couchbase::core::operations::management::group_drop_request req{ group_name };
|
|
829
851
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
830
|
-
|
|
852
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
831
853
|
}
|
|
832
854
|
}
|
|
833
855
|
}
|
|
@@ -836,31 +858,98 @@ TEST_CASE("integration: user management", "[integration]")
|
|
|
836
858
|
{
|
|
837
859
|
test::utils::integration_test_guard integration;
|
|
838
860
|
|
|
861
|
+
if (!integration.cluster_version().supports_user_management()) {
|
|
862
|
+
return;
|
|
863
|
+
}
|
|
864
|
+
|
|
839
865
|
if (!integration.cluster_version().supports_gcccp()) {
|
|
840
866
|
test::utils::open_bucket(integration.cluster, integration.ctx.bucket);
|
|
841
867
|
}
|
|
842
868
|
|
|
843
869
|
SECTION("get missing user")
|
|
844
870
|
{
|
|
845
|
-
couchbase::operations::management::user_get_request req{ test::utils::uniq_id("user") };
|
|
871
|
+
couchbase::core::operations::management::user_get_request req{ test::utils::uniq_id("user") };
|
|
846
872
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
847
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
873
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::user_not_found);
|
|
848
874
|
}
|
|
849
875
|
|
|
850
876
|
SECTION("drop missing user")
|
|
851
877
|
{
|
|
852
|
-
couchbase::operations::management::user_drop_request req{ test::utils::uniq_id("user") };
|
|
878
|
+
couchbase::core::operations::management::user_drop_request req{ test::utils::uniq_id("user") };
|
|
853
879
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
854
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
880
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::user_not_found);
|
|
855
881
|
}
|
|
856
882
|
|
|
857
883
|
SECTION("get roles")
|
|
858
884
|
{
|
|
859
|
-
couchbase::operations::management::role_get_all_request req{};
|
|
885
|
+
couchbase::core::operations::management::role_get_all_request req{};
|
|
860
886
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
861
|
-
|
|
887
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
862
888
|
REQUIRE(resp.roles.size() > 0);
|
|
863
889
|
}
|
|
890
|
+
|
|
891
|
+
if (integration.cluster_version().is_enterprise()) {
|
|
892
|
+
|
|
893
|
+
SECTION("change user password")
|
|
894
|
+
{
|
|
895
|
+
asio::io_context io;
|
|
896
|
+
auto guard = asio::make_work_guard(io);
|
|
897
|
+
std::thread io_thread([&io]() { io.run(); });
|
|
898
|
+
auto user_name = test::utils::uniq_id("newUser");
|
|
899
|
+
|
|
900
|
+
// Create options
|
|
901
|
+
auto options_original = couchbase::cluster_options(integration.ctx.username, integration.ctx.password);
|
|
902
|
+
auto options_outdated = couchbase::cluster_options(user_name, integration.ctx.password);
|
|
903
|
+
auto options_updated = couchbase::cluster_options(user_name, "newPassword");
|
|
904
|
+
|
|
905
|
+
// Create new user and upsert
|
|
906
|
+
couchbase::core::management::rbac::user new_user{ user_name };
|
|
907
|
+
new_user.display_name = "change_password_user";
|
|
908
|
+
new_user.password = integration.ctx.password;
|
|
909
|
+
new_user.roles = {
|
|
910
|
+
couchbase::core::management::rbac::role{ "admin" },
|
|
911
|
+
};
|
|
912
|
+
auto [cluster, ec] = couchbase::cluster::connect(io, integration.ctx.connection_string, options_original).get();
|
|
913
|
+
auto coreCluster = cluster.core();
|
|
914
|
+
couchbase::core::operations::management::user_upsert_request upsertReq{};
|
|
915
|
+
upsertReq.user = new_user;
|
|
916
|
+
auto upsertResp = test::utils::execute(coreCluster, upsertReq);
|
|
917
|
+
REQUIRE_SUCCESS(upsertResp.ctx.ec);
|
|
918
|
+
test::utils::wait_until_user_present(integration.cluster, user_name);
|
|
919
|
+
cluster.close();
|
|
920
|
+
guard.reset();
|
|
921
|
+
io_thread.join();
|
|
922
|
+
|
|
923
|
+
// Connect with new credentials and change password
|
|
924
|
+
asio::io_context io2;
|
|
925
|
+
auto guard2 = asio::make_work_guard(io2);
|
|
926
|
+
std::thread io_thread2([&io2]() { io2.run(); });
|
|
927
|
+
auto [cluster_new, ec_new] = couchbase::cluster::connect(io2, integration.ctx.connection_string, options_outdated).get();
|
|
928
|
+
auto coreCluster_new = cluster_new.core();
|
|
929
|
+
couchbase::core::operations::management::change_password_request changePasswordReq{};
|
|
930
|
+
changePasswordReq.newPassword = "newPassword";
|
|
931
|
+
auto changePasswordResp = test::utils::execute(coreCluster_new, changePasswordReq);
|
|
932
|
+
REQUIRE_SUCCESS(changePasswordResp.ctx.ec);
|
|
933
|
+
test::utils::wait_until_cluster_connected(user_name, changePasswordReq.newPassword, integration.ctx.connection_string);
|
|
934
|
+
cluster_new.close();
|
|
935
|
+
guard2.reset();
|
|
936
|
+
io_thread2.join();
|
|
937
|
+
|
|
938
|
+
// Connect with old credentials, should fail
|
|
939
|
+
asio::io_context io3;
|
|
940
|
+
auto guard3 = asio::make_work_guard(io3);
|
|
941
|
+
std::thread io_thread3([&io3]() { io3.run(); });
|
|
942
|
+
auto [cluster_fail, ec_fail] = couchbase::cluster::connect(io3, integration.ctx.connection_string, options_outdated).get();
|
|
943
|
+
REQUIRE(ec_fail == couchbase::errc::common::authentication_failure);
|
|
944
|
+
|
|
945
|
+
// Make connection with new credentials, should succeed
|
|
946
|
+
auto [cluster_success, ec_success] = couchbase::cluster::connect(io3, integration.ctx.connection_string, options_updated).get();
|
|
947
|
+
REQUIRE_SUCCESS(ec_success);
|
|
948
|
+
cluster_success.close();
|
|
949
|
+
guard3.reset();
|
|
950
|
+
io_thread3.join();
|
|
951
|
+
}
|
|
952
|
+
}
|
|
864
953
|
}
|
|
865
954
|
|
|
866
955
|
TEST_CASE("integration: user management collections roles", "[integration]")
|
|
@@ -868,7 +957,8 @@ TEST_CASE("integration: user management collections roles", "[integration]")
|
|
|
868
957
|
test::utils::integration_test_guard integration;
|
|
869
958
|
test::utils::open_bucket(integration.cluster, integration.ctx.bucket);
|
|
870
959
|
|
|
871
|
-
if (!integration.cluster_version().
|
|
960
|
+
if (!integration.cluster_version().supports_user_management() || !integration.cluster_version().supports_collections() ||
|
|
961
|
+
integration.cluster_version().is_community()) {
|
|
872
962
|
return;
|
|
873
963
|
}
|
|
874
964
|
|
|
@@ -877,39 +967,39 @@ TEST_CASE("integration: user management collections roles", "[integration]")
|
|
|
877
967
|
auto user_name = test::utils::uniq_id("user");
|
|
878
968
|
|
|
879
969
|
{
|
|
880
|
-
couchbase::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
|
|
970
|
+
couchbase::core::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
|
|
881
971
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
882
|
-
|
|
972
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
883
973
|
auto created = test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
|
|
884
974
|
REQUIRE(created);
|
|
885
975
|
}
|
|
886
976
|
|
|
887
977
|
{
|
|
888
|
-
couchbase::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
|
|
978
|
+
couchbase::core::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
|
|
889
979
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
890
|
-
|
|
980
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
891
981
|
auto created = test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
|
|
892
982
|
REQUIRE(created);
|
|
893
983
|
}
|
|
894
984
|
|
|
895
|
-
couchbase::management::rbac::user user{ user_name };
|
|
985
|
+
couchbase::core::management::rbac::user user{ user_name };
|
|
896
986
|
user.display_name = "display_name";
|
|
897
987
|
user.password = "password";
|
|
898
988
|
user.roles = {
|
|
899
|
-
couchbase::management::rbac::role{ "data_reader", integration.ctx.bucket, scope_name },
|
|
989
|
+
couchbase::core::management::rbac::role{ "data_reader", integration.ctx.bucket, scope_name },
|
|
900
990
|
};
|
|
901
991
|
|
|
902
992
|
{
|
|
903
|
-
couchbase::operations::management::user_upsert_request req{};
|
|
993
|
+
couchbase::core::operations::management::user_upsert_request req{};
|
|
904
994
|
req.user = user;
|
|
905
995
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
906
|
-
|
|
996
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
907
997
|
}
|
|
908
998
|
|
|
909
999
|
{
|
|
910
|
-
couchbase::operations::management::user_get_request req{ user_name };
|
|
911
|
-
auto resp = retry_on_error(integration, req, couchbase::
|
|
912
|
-
|
|
1000
|
+
couchbase::core::operations::management::user_get_request req{ user_name };
|
|
1001
|
+
auto resp = retry_on_error(integration, req, couchbase::errc::management::user_not_found);
|
|
1002
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
913
1003
|
REQUIRE(resp.user.roles.size() == 1);
|
|
914
1004
|
REQUIRE(resp.user.roles[0].name == "data_reader");
|
|
915
1005
|
REQUIRE(resp.user.roles[0].bucket == integration.ctx.bucket);
|
|
@@ -917,20 +1007,20 @@ TEST_CASE("integration: user management collections roles", "[integration]")
|
|
|
917
1007
|
}
|
|
918
1008
|
|
|
919
1009
|
user.roles = {
|
|
920
|
-
couchbase::management::rbac::role{ "data_reader", integration.ctx.bucket, scope_name, collection_name },
|
|
1010
|
+
couchbase::core::management::rbac::role{ "data_reader", integration.ctx.bucket, scope_name, collection_name },
|
|
921
1011
|
};
|
|
922
1012
|
|
|
923
1013
|
{
|
|
924
|
-
couchbase::operations::management::user_upsert_request req{};
|
|
1014
|
+
couchbase::core::operations::management::user_upsert_request req{};
|
|
925
1015
|
req.user = user;
|
|
926
1016
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
927
|
-
|
|
1017
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
928
1018
|
}
|
|
929
1019
|
|
|
930
1020
|
{
|
|
931
|
-
couchbase::operations::management::user_get_request req{ user_name };
|
|
1021
|
+
couchbase::core::operations::management::user_get_request req{ user_name };
|
|
932
1022
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
933
|
-
|
|
1023
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
934
1024
|
REQUIRE(resp.user.roles.size() == 1);
|
|
935
1025
|
REQUIRE(resp.user.roles[0].name == "data_reader");
|
|
936
1026
|
REQUIRE(resp.user.roles[0].bucket == integration.ctx.bucket);
|
|
@@ -943,191 +1033,406 @@ TEST_CASE("integration: query index management", "[integration]")
|
|
|
943
1033
|
{
|
|
944
1034
|
test::utils::integration_test_guard integration;
|
|
945
1035
|
|
|
946
|
-
if (
|
|
947
|
-
|
|
948
|
-
|
|
1036
|
+
if (integration.cluster_version().supports_bucket_management()) {
|
|
1037
|
+
SECTION("primary index")
|
|
1038
|
+
{
|
|
1039
|
+
auto bucket_name = test::utils::uniq_id("bucket");
|
|
949
1040
|
|
|
950
|
-
|
|
951
|
-
|
|
1041
|
+
{
|
|
1042
|
+
couchbase::core::operations::management::bucket_create_request req;
|
|
1043
|
+
req.bucket.name = bucket_name;
|
|
1044
|
+
req.bucket.bucket_type = couchbase::core::management::cluster::bucket_type::couchbase;
|
|
1045
|
+
req.bucket.num_replicas = 0;
|
|
1046
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1047
|
+
}
|
|
952
1048
|
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
req.bucket.bucket_type = couchbase::management::cluster::bucket_type::couchbase;
|
|
957
|
-
req.bucket.num_replicas = 0;
|
|
958
|
-
auto resp = test::utils::execute(integration.cluster, req);
|
|
959
|
-
}
|
|
1049
|
+
REQUIRE(!wait_for_bucket_created(integration, bucket_name).ctx.ec);
|
|
1050
|
+
SECTION("core API")
|
|
1051
|
+
{
|
|
960
1052
|
|
|
961
|
-
|
|
1053
|
+
{
|
|
1054
|
+
couchbase::core::operations::management::query_index_create_response resp;
|
|
1055
|
+
bool operation_completed = test::utils::wait_until([&integration, &bucket_name, &resp]() {
|
|
1056
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1057
|
+
req.bucket_name = bucket_name;
|
|
1058
|
+
req.is_primary = true;
|
|
1059
|
+
resp = test::utils::execute(integration.cluster, req);
|
|
1060
|
+
return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
|
|
1061
|
+
});
|
|
1062
|
+
REQUIRE(operation_completed);
|
|
1063
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1064
|
+
}
|
|
962
1065
|
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
return resp.ctx.ec != couchbase::error::common_errc::bucket_not_found;
|
|
973
|
-
});
|
|
974
|
-
REQUIRE(operation_completed);
|
|
975
|
-
REQUIRE_FALSE(resp.ctx.ec);
|
|
976
|
-
}
|
|
1066
|
+
{
|
|
1067
|
+
couchbase::core::operations::management::query_index_get_all_request req{};
|
|
1068
|
+
req.bucket_name = bucket_name;
|
|
1069
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1070
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1071
|
+
REQUIRE(resp.indexes.size() == 1);
|
|
1072
|
+
REQUIRE(resp.indexes[0].name == "#primary");
|
|
1073
|
+
REQUIRE(resp.indexes[0].is_primary);
|
|
1074
|
+
}
|
|
977
1075
|
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
1076
|
+
{
|
|
1077
|
+
couchbase::core::operations::management::bucket_drop_request req{ bucket_name };
|
|
1078
|
+
test::utils::execute(integration.cluster, req);
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
SECTION("public api")
|
|
1082
|
+
{
|
|
1083
|
+
couchbase::cluster c(integration.cluster);
|
|
1084
|
+
{
|
|
1085
|
+
std::error_code ec;
|
|
1086
|
+
bool operation_completed = test::utils::wait_until([&bucket_name, &ec, &c]() {
|
|
1087
|
+
auto ctx = c.query_indexes().create_primary_index(bucket_name, {}).get();
|
|
1088
|
+
ec = ctx.ec();
|
|
1089
|
+
return ec != couchbase::errc::common::bucket_not_found;
|
|
1090
|
+
});
|
|
1091
|
+
REQUIRE(operation_completed);
|
|
1092
|
+
REQUIRE_SUCCESS(ec);
|
|
1093
|
+
}
|
|
1094
|
+
{
|
|
1095
|
+
auto [ctx, indexes] = c.query_indexes().get_all_indexes(bucket_name, {}).get();
|
|
1096
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1097
|
+
REQUIRE(indexes.size() == 1);
|
|
1098
|
+
REQUIRE(indexes[0].name == "#primary");
|
|
1099
|
+
REQUIRE(indexes[0].is_primary);
|
|
1100
|
+
}
|
|
1101
|
+
{
|
|
1102
|
+
auto ctx =
|
|
1103
|
+
c.query_indexes().watch_indexes(bucket_name, {}, couchbase::watch_query_indexes_options().watch_primary(true)).get();
|
|
1104
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1105
|
+
}
|
|
1106
|
+
{
|
|
1107
|
+
auto ctx = c.query_indexes().drop_primary_index(bucket_name, {}).get();
|
|
1108
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1109
|
+
}
|
|
1110
|
+
}
|
|
986
1111
|
}
|
|
987
1112
|
}
|
|
988
1113
|
|
|
989
1114
|
SECTION("non primary index")
|
|
990
1115
|
{
|
|
1116
|
+
SECTION("core API")
|
|
991
1117
|
{
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
couchbase::operations::management::
|
|
995
|
-
|
|
1118
|
+
auto index_name = test::utils::uniq_id("index");
|
|
1119
|
+
{
|
|
1120
|
+
couchbase::core::operations::management::query_index_create_response resp;
|
|
1121
|
+
bool operation_completed = test::utils::wait_until([&integration, &index_name, &resp]() {
|
|
1122
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1123
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1124
|
+
req.index_name = index_name;
|
|
1125
|
+
req.fields = { "field", "field2 DESC", "`two words` DESC" };
|
|
1126
|
+
resp = test::utils::execute(integration.cluster, req);
|
|
1127
|
+
return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
|
|
1128
|
+
});
|
|
1129
|
+
REQUIRE(operation_completed);
|
|
1130
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1131
|
+
}
|
|
1132
|
+
|
|
1133
|
+
{
|
|
1134
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1135
|
+
req.bucket_name = integration.ctx.bucket;
|
|
996
1136
|
req.index_name = index_name;
|
|
997
1137
|
req.fields = { "field" };
|
|
998
|
-
resp = test::utils::execute(integration.cluster, req);
|
|
999
|
-
|
|
1000
|
-
}
|
|
1001
|
-
REQUIRE(operation_completed);
|
|
1002
|
-
REQUIRE_FALSE(resp.ctx.ec);
|
|
1003
|
-
}
|
|
1138
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1139
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::index_exists);
|
|
1140
|
+
}
|
|
1004
1141
|
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1142
|
+
{
|
|
1143
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1144
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1145
|
+
req.index_name = index_name;
|
|
1146
|
+
req.fields = { "field" };
|
|
1147
|
+
req.ignore_if_exists = true;
|
|
1148
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1149
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1150
|
+
}
|
|
1013
1151
|
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1152
|
+
{
|
|
1153
|
+
couchbase::core::operations::management::query_index_get_all_request req{};
|
|
1154
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1155
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1156
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1157
|
+
auto index = std::find_if(
|
|
1158
|
+
resp.indexes.begin(), resp.indexes.end(), [&index_name](const auto& exp_index) { return exp_index.name == index_name; });
|
|
1159
|
+
REQUIRE(index != resp.indexes.end());
|
|
1160
|
+
REQUIRE(index->name == index_name);
|
|
1161
|
+
REQUIRE_FALSE(index->is_primary);
|
|
1162
|
+
REQUIRE(index->index_key.size() == 3);
|
|
1163
|
+
REQUIRE(index->index_key[0] == "`field`");
|
|
1164
|
+
REQUIRE(index->index_key[1] == "`field2` DESC");
|
|
1165
|
+
REQUIRE(index->index_key[2] == "`two words` DESC");
|
|
1166
|
+
REQUIRE(index->bucket_name == integration.ctx.bucket);
|
|
1167
|
+
REQUIRE(index->state == "online");
|
|
1168
|
+
}
|
|
1169
|
+
{
|
|
1170
|
+
couchbase::core::operations::management::query_index_drop_request req{};
|
|
1171
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1172
|
+
req.index_name = index_name;
|
|
1173
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1174
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1175
|
+
}
|
|
1023
1176
|
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
REQUIRE_FALSE(resp.indexes[0].is_primary);
|
|
1032
|
-
REQUIRE(resp.indexes[0].index_key.size() == 1);
|
|
1033
|
-
REQUIRE(resp.indexes[0].index_key[0] == "`field`");
|
|
1034
|
-
REQUIRE(resp.indexes[0].bucket_name == bucket_name);
|
|
1035
|
-
REQUIRE(resp.indexes[0].state == "online");
|
|
1177
|
+
{
|
|
1178
|
+
couchbase::core::operations::management::query_index_drop_request req{};
|
|
1179
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1180
|
+
req.index_name = index_name;
|
|
1181
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1182
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::index_not_found);
|
|
1183
|
+
}
|
|
1036
1184
|
}
|
|
1037
|
-
|
|
1185
|
+
SECTION("public API")
|
|
1038
1186
|
{
|
|
1039
|
-
couchbase::
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1187
|
+
couchbase::cluster c(integration.cluster);
|
|
1188
|
+
auto index_name = test::utils::uniq_id("index");
|
|
1189
|
+
{
|
|
1190
|
+
std::error_code ec;
|
|
1191
|
+
bool operation_completed = test::utils::wait_until([&integration, &index_name, c, &ec]() {
|
|
1192
|
+
auto ctx = c.query_indexes()
|
|
1193
|
+
.create_index(integration.ctx.bucket, index_name, { "field", "field2 DESC", "`two words` DESC" }, {})
|
|
1194
|
+
.get();
|
|
1195
|
+
ec = ctx.ec();
|
|
1196
|
+
return ec != couchbase::errc::common::bucket_not_found;
|
|
1197
|
+
});
|
|
1198
|
+
REQUIRE(operation_completed);
|
|
1199
|
+
REQUIRE_SUCCESS(ec);
|
|
1200
|
+
}
|
|
1201
|
+
{
|
|
1202
|
+
auto ctx = c.query_indexes().watch_indexes(integration.ctx.bucket, { index_name }, {}).get();
|
|
1203
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1204
|
+
}
|
|
1045
1205
|
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1206
|
+
{
|
|
1207
|
+
auto ctx = c.query_indexes().create_index(integration.ctx.bucket, index_name, { "field" }, {}).get();
|
|
1208
|
+
REQUIRE(ctx.ec() == couchbase::errc::common::index_exists);
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
{
|
|
1212
|
+
auto ctx =
|
|
1213
|
+
c.query_indexes()
|
|
1214
|
+
.create_index(
|
|
1215
|
+
integration.ctx.bucket, index_name, { "field" }, couchbase::create_query_index_options().ignore_if_exists(true))
|
|
1216
|
+
.get();
|
|
1217
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
{
|
|
1221
|
+
auto [ctx, indexes] = c.query_indexes().get_all_indexes(integration.ctx.bucket, {}).get();
|
|
1222
|
+
auto index = std::find_if(
|
|
1223
|
+
indexes.begin(), indexes.end(), [&index_name](const auto& exp_index) { return exp_index.name == index_name; });
|
|
1224
|
+
REQUIRE(index != indexes.end());
|
|
1225
|
+
REQUIRE(index->name == index_name);
|
|
1226
|
+
REQUIRE_FALSE(index->is_primary);
|
|
1227
|
+
REQUIRE(index->index_key.size() == 3);
|
|
1228
|
+
REQUIRE(index->index_key[0] == "`field`");
|
|
1229
|
+
REQUIRE(index->index_key[1] == "`field2` DESC");
|
|
1230
|
+
REQUIRE(index->index_key[2] == "`two words` DESC");
|
|
1231
|
+
REQUIRE(index->bucket_name == integration.ctx.bucket);
|
|
1232
|
+
REQUIRE(index->state == "online");
|
|
1233
|
+
}
|
|
1234
|
+
{
|
|
1235
|
+
auto ctx = c.query_indexes().drop_index(integration.ctx.bucket, index_name, {}).get();
|
|
1236
|
+
couchbase::core::operations::management::query_index_drop_request req{};
|
|
1237
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1240
|
+
{
|
|
1241
|
+
auto ctx = c.query_indexes().drop_index(integration.ctx.bucket, index_name, {}).get();
|
|
1242
|
+
couchbase::core::operations::management::query_index_drop_request req{};
|
|
1243
|
+
REQUIRE(ctx.ec() == couchbase::errc::common::index_not_found);
|
|
1244
|
+
}
|
|
1245
|
+
{
|
|
1246
|
+
auto ctx =
|
|
1247
|
+
c.query_indexes()
|
|
1248
|
+
.drop_index(integration.ctx.bucket, index_name, couchbase::drop_query_index_options().ignore_if_not_exists(true))
|
|
1249
|
+
.get();
|
|
1250
|
+
couchbase::core::operations::management::query_index_drop_request req{};
|
|
1251
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1252
|
+
}
|
|
1052
1253
|
}
|
|
1053
1254
|
}
|
|
1054
1255
|
|
|
1055
1256
|
SECTION("deferred index")
|
|
1056
1257
|
{
|
|
1258
|
+
SECTION("public API")
|
|
1057
1259
|
{
|
|
1058
|
-
couchbase::
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1260
|
+
couchbase::cluster c(integration.cluster);
|
|
1261
|
+
auto index_name = test::utils::uniq_id("index");
|
|
1262
|
+
{
|
|
1263
|
+
std::error_code ec;
|
|
1264
|
+
bool operation_completed = test::utils::wait_until([c, &ec, &index_name, &integration]() {
|
|
1265
|
+
auto ctx =
|
|
1266
|
+
c.query_indexes()
|
|
1267
|
+
.create_index(
|
|
1268
|
+
integration.ctx.bucket, index_name, { "field" }, couchbase::create_query_index_options().build_deferred(true))
|
|
1269
|
+
.get();
|
|
1270
|
+
ec = ctx.ec();
|
|
1271
|
+
return ec != couchbase::errc::common::bucket_not_found;
|
|
1272
|
+
});
|
|
1273
|
+
REQUIRE(operation_completed);
|
|
1274
|
+
REQUIRE_SUCCESS(ec);
|
|
1275
|
+
}
|
|
1071
1276
|
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1277
|
+
{
|
|
1278
|
+
auto [ctx, indexes] = c.query_indexes().get_all_indexes(integration.ctx.bucket, {}).get();
|
|
1279
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1280
|
+
auto index = std::find_if(
|
|
1281
|
+
indexes.begin(), indexes.end(), [&index_name](const auto& exp_index) { return exp_index.name == index_name; });
|
|
1282
|
+
REQUIRE(index != indexes.end());
|
|
1283
|
+
REQUIRE(index->name == index_name);
|
|
1284
|
+
REQUIRE(index->state == "deferred");
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
{
|
|
1288
|
+
auto manager = couchbase::cluster(integration.cluster).query_indexes();
|
|
1289
|
+
auto ctx = manager.build_deferred_indexes(integration.ctx.bucket, {}).get();
|
|
1290
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1291
|
+
}
|
|
1292
|
+
{
|
|
1293
|
+
// now wait till it is online before proceeding
|
|
1294
|
+
auto operation_completed = test::utils::wait_until([&integration, &index_name, c]() {
|
|
1295
|
+
auto [ctx, indexes] = c.query_indexes().get_all_indexes(integration.ctx.bucket, {}).get();
|
|
1296
|
+
if (indexes.empty()) {
|
|
1297
|
+
return false;
|
|
1298
|
+
}
|
|
1299
|
+
auto index = std::find_if(
|
|
1300
|
+
indexes.begin(), indexes.end(), [&index_name](const auto& exp_index) { return exp_index.name == index_name; });
|
|
1301
|
+
return index->state == "online";
|
|
1302
|
+
});
|
|
1303
|
+
REQUIRE(operation_completed);
|
|
1304
|
+
}
|
|
1080
1305
|
}
|
|
1081
1306
|
|
|
1307
|
+
SECTION("core API")
|
|
1082
1308
|
{
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1309
|
+
auto index_name = test::utils::uniq_id("index");
|
|
1310
|
+
{
|
|
1311
|
+
couchbase::core::operations::management::query_index_create_response resp;
|
|
1312
|
+
bool operation_completed = test::utils::wait_until([&integration, &index_name, &resp]() {
|
|
1313
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1314
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1315
|
+
req.index_name = index_name;
|
|
1316
|
+
req.fields = { "field" };
|
|
1317
|
+
req.deferred = true;
|
|
1318
|
+
resp = test::utils::execute(integration.cluster, req);
|
|
1319
|
+
return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
|
|
1320
|
+
});
|
|
1321
|
+
REQUIRE(operation_completed);
|
|
1322
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1323
|
+
}
|
|
1324
|
+
{
|
|
1325
|
+
couchbase::core::operations::management::query_index_build_deferred_request req{};
|
|
1326
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1327
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1328
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1329
|
+
}
|
|
1088
1330
|
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1331
|
+
{
|
|
1332
|
+
test::utils::wait_until([&integration, &index_name]() {
|
|
1333
|
+
couchbase::core::operations::management::query_index_get_all_request req{};
|
|
1334
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1335
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1336
|
+
if (resp.indexes.empty()) {
|
|
1337
|
+
return false;
|
|
1338
|
+
}
|
|
1339
|
+
auto index = std::find_if(resp.indexes.begin(), resp.indexes.end(), [&index_name](const auto& exp_index) {
|
|
1340
|
+
return exp_index.name == index_name;
|
|
1341
|
+
});
|
|
1342
|
+
return index->state == "online";
|
|
1343
|
+
});
|
|
1095
1344
|
}
|
|
1096
|
-
|
|
1097
|
-
});
|
|
1345
|
+
}
|
|
1098
1346
|
}
|
|
1099
1347
|
|
|
1100
1348
|
SECTION("create missing bucket")
|
|
1101
1349
|
{
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1350
|
+
SECTION("core API")
|
|
1351
|
+
{
|
|
1352
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1353
|
+
req.bucket_name = "missing_bucket";
|
|
1354
|
+
req.is_primary = true;
|
|
1355
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1356
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::bucket_not_found);
|
|
1357
|
+
}
|
|
1358
|
+
SECTION("public API")
|
|
1359
|
+
{
|
|
1360
|
+
couchbase::cluster c(integration.cluster);
|
|
1361
|
+
auto ctx = c.query_indexes().create_primary_index("missing_bucket", {}).get();
|
|
1362
|
+
REQUIRE(ctx.ec() == couchbase::errc::common::bucket_not_found);
|
|
1363
|
+
}
|
|
1107
1364
|
}
|
|
1108
1365
|
|
|
1109
1366
|
SECTION("get missing bucket")
|
|
1110
1367
|
{
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1368
|
+
SECTION("core API")
|
|
1369
|
+
{
|
|
1370
|
+
couchbase::core::operations::management::query_index_get_all_request req{};
|
|
1371
|
+
req.bucket_name = "missing_bucket";
|
|
1372
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1373
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1374
|
+
REQUIRE(resp.indexes.empty());
|
|
1375
|
+
}
|
|
1376
|
+
SECTION("public API")
|
|
1377
|
+
{
|
|
1378
|
+
couchbase::cluster c(integration.cluster);
|
|
1379
|
+
auto [ctx, indexes] = c.query_indexes().get_all_indexes("missing_bucket", {}).get();
|
|
1380
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1381
|
+
REQUIRE(indexes.empty());
|
|
1382
|
+
}
|
|
1116
1383
|
}
|
|
1117
1384
|
|
|
1118
1385
|
SECTION("drop missing bucket")
|
|
1119
1386
|
{
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1387
|
+
SECTION("core API")
|
|
1388
|
+
{
|
|
1389
|
+
couchbase::core::operations::management::query_index_drop_request req{};
|
|
1390
|
+
req.bucket_name = "missing_bucket";
|
|
1391
|
+
req.is_primary = true;
|
|
1392
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1393
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::bucket_not_found);
|
|
1394
|
+
}
|
|
1395
|
+
SECTION("public API")
|
|
1396
|
+
{
|
|
1397
|
+
couchbase::cluster c(integration.cluster);
|
|
1398
|
+
auto ctx = c.query_indexes().drop_primary_index("missing_bucket", {}).get();
|
|
1399
|
+
REQUIRE(ctx.ec() == couchbase::errc::common::bucket_not_found);
|
|
1400
|
+
}
|
|
1125
1401
|
}
|
|
1126
1402
|
|
|
1127
|
-
|
|
1403
|
+
SECTION("watch missing index")
|
|
1128
1404
|
{
|
|
1129
|
-
|
|
1130
|
-
|
|
1405
|
+
SECTION("public API")
|
|
1406
|
+
{
|
|
1407
|
+
couchbase::cluster c(integration.cluster);
|
|
1408
|
+
auto start = std::chrono::steady_clock::now();
|
|
1409
|
+
auto ctx = c.query_indexes()
|
|
1410
|
+
.watch_indexes(integration.ctx.bucket,
|
|
1411
|
+
{ "idontexist", "neitherdoI" },
|
|
1412
|
+
couchbase::watch_query_indexes_options()
|
|
1413
|
+
.timeout(std::chrono::milliseconds(10000))
|
|
1414
|
+
.polling_interval(std::chrono::milliseconds(1000)))
|
|
1415
|
+
.get();
|
|
1416
|
+
REQUIRE(ctx.ec() == couchbase::errc::common::ambiguous_timeout);
|
|
1417
|
+
REQUIRE(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - start).count() >= 10000);
|
|
1418
|
+
}
|
|
1419
|
+
}
|
|
1420
|
+
SECTION("watch missing bucket")
|
|
1421
|
+
{
|
|
1422
|
+
SECTION("public API")
|
|
1423
|
+
{
|
|
1424
|
+
couchbase::cluster c(integration.cluster);
|
|
1425
|
+
auto start = std::chrono::steady_clock::now();
|
|
1426
|
+
auto ctx = c.query_indexes()
|
|
1427
|
+
.watch_indexes("missing_buckeet",
|
|
1428
|
+
{ "idontexist", "neitherdoI" },
|
|
1429
|
+
couchbase::watch_query_indexes_options()
|
|
1430
|
+
.timeout(std::chrono::milliseconds(10000))
|
|
1431
|
+
.polling_interval(std::chrono::milliseconds(1000)))
|
|
1432
|
+
.get();
|
|
1433
|
+
REQUIRE(ctx.ec() == couchbase::errc::common::ambiguous_timeout);
|
|
1434
|
+
REQUIRE(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - start).count() >= 10000);
|
|
1435
|
+
}
|
|
1131
1436
|
}
|
|
1132
1437
|
}
|
|
1133
1438
|
|
|
@@ -1135,265 +1440,515 @@ TEST_CASE("integration: collections query index management", "[integration]")
|
|
|
1135
1440
|
{
|
|
1136
1441
|
test::utils::integration_test_guard integration;
|
|
1137
1442
|
|
|
1138
|
-
if (!integration.cluster_version().supports_query_index_management()) {
|
|
1139
|
-
return;
|
|
1140
|
-
}
|
|
1141
1443
|
if (!integration.cluster_version().supports_collections()) {
|
|
1142
1444
|
return;
|
|
1143
1445
|
}
|
|
1144
1446
|
|
|
1145
|
-
auto bucket_name = test::utils::uniq_id("collections_bucket");
|
|
1146
1447
|
auto index_name = test::utils::uniq_id("collections_index");
|
|
1147
1448
|
auto scope_name = test::utils::uniq_id("indexscope");
|
|
1148
1449
|
auto collection_name = test::utils::uniq_id("indexcollection");
|
|
1149
1450
|
|
|
1150
|
-
|
|
1151
|
-
couchbase::operations::management::bucket_create_request req;
|
|
1152
|
-
req.bucket.name = bucket_name;
|
|
1153
|
-
req.bucket.bucket_type = couchbase::management::cluster::bucket_type::couchbase;
|
|
1154
|
-
req.bucket.num_replicas = 0;
|
|
1155
|
-
auto resp = test::utils::execute(integration.cluster, req);
|
|
1156
|
-
}
|
|
1157
|
-
|
|
1158
|
-
REQUIRE(!wait_for_bucket_created(integration, bucket_name).ctx.ec);
|
|
1451
|
+
test::utils::open_bucket(integration.cluster, integration.ctx.bucket);
|
|
1159
1452
|
|
|
1160
1453
|
// create the scope and collection that we'll do index management on.
|
|
1161
1454
|
{
|
|
1162
|
-
couchbase::operations::management::scope_create_request req{
|
|
1455
|
+
couchbase::core::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
|
|
1163
1456
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1164
|
-
|
|
1457
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1458
|
+
auto created = test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
|
|
1459
|
+
REQUIRE(created);
|
|
1165
1460
|
}
|
|
1166
1461
|
|
|
1167
1462
|
{
|
|
1168
|
-
couchbase::operations::management::collection_create_request req{
|
|
1463
|
+
couchbase::core::operations::management::collection_create_request req{ integration.ctx.bucket, scope_name, collection_name };
|
|
1169
1464
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1170
|
-
|
|
1465
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1466
|
+
auto created = test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
|
|
1467
|
+
REQUIRE(created);
|
|
1171
1468
|
}
|
|
1172
1469
|
|
|
1470
|
+
auto manager =
|
|
1471
|
+
couchbase::cluster(integration.cluster).bucket(integration.ctx.bucket).scope(scope_name).collection(collection_name).query_indexes();
|
|
1472
|
+
|
|
1173
1473
|
SECTION("primary index")
|
|
1174
1474
|
{
|
|
1475
|
+
SECTION("core API")
|
|
1175
1476
|
{
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1477
|
+
{
|
|
1478
|
+
couchbase::core::operations::management::query_index_create_response resp;
|
|
1479
|
+
bool operation_completed = test::utils::wait_until([&integration, &scope_name, &collection_name, &resp]() {
|
|
1480
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1481
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1482
|
+
req.scope_name = scope_name;
|
|
1483
|
+
req.collection_name = collection_name;
|
|
1484
|
+
req.is_primary = true;
|
|
1485
|
+
resp = test::utils::execute(integration.cluster, req);
|
|
1486
|
+
return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
|
|
1487
|
+
});
|
|
1488
|
+
REQUIRE(operation_completed);
|
|
1489
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1490
|
+
}
|
|
1491
|
+
|
|
1492
|
+
{
|
|
1493
|
+
couchbase::core::operations::management::query_index_get_all_request req{};
|
|
1494
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1180
1495
|
req.scope_name = scope_name;
|
|
1181
1496
|
req.collection_name = collection_name;
|
|
1182
|
-
|
|
1183
|
-
resp
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1497
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1498
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1499
|
+
REQUIRE(resp.indexes.size() == 1);
|
|
1500
|
+
REQUIRE(resp.indexes[0].name == "#primary");
|
|
1501
|
+
REQUIRE(resp.indexes[0].is_primary);
|
|
1502
|
+
}
|
|
1188
1503
|
}
|
|
1189
|
-
|
|
1504
|
+
SECTION("public API")
|
|
1190
1505
|
{
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1506
|
+
{
|
|
1507
|
+
std::error_code ec;
|
|
1508
|
+
bool operation_completed = test::utils::wait_until([&manager, &ec]() {
|
|
1509
|
+
auto ctx = manager.create_primary_index({}).get();
|
|
1510
|
+
ec = ctx.ec();
|
|
1511
|
+
return ctx.ec() != couchbase::errc::common::bucket_not_found;
|
|
1512
|
+
});
|
|
1513
|
+
|
|
1514
|
+
REQUIRE(operation_completed);
|
|
1515
|
+
REQUIRE_SUCCESS(ec);
|
|
1516
|
+
}
|
|
1517
|
+
{
|
|
1518
|
+
auto [ctx, indexes] = manager.get_all_indexes({}).get();
|
|
1519
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1520
|
+
REQUIRE(indexes.size() == 1);
|
|
1521
|
+
REQUIRE(indexes[0].name == "#primary");
|
|
1522
|
+
REQUIRE(indexes[0].is_primary);
|
|
1523
|
+
}
|
|
1200
1524
|
}
|
|
1201
1525
|
}
|
|
1202
1526
|
|
|
1203
|
-
SECTION("
|
|
1527
|
+
SECTION("named primary index")
|
|
1204
1528
|
{
|
|
1529
|
+
SECTION("core API")
|
|
1205
1530
|
{
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1531
|
+
{
|
|
1532
|
+
couchbase::core::operations::management::query_index_create_response resp;
|
|
1533
|
+
bool operation_completed = test::utils::wait_until([&integration, &index_name, &scope_name, &collection_name, &resp]() {
|
|
1534
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1535
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1536
|
+
req.scope_name = scope_name;
|
|
1537
|
+
req.collection_name = collection_name;
|
|
1538
|
+
req.index_name = index_name;
|
|
1539
|
+
req.is_primary = true;
|
|
1540
|
+
resp = test::utils::execute(integration.cluster, req);
|
|
1541
|
+
return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
|
|
1542
|
+
});
|
|
1543
|
+
REQUIRE(operation_completed);
|
|
1544
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1545
|
+
}
|
|
1221
1546
|
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1547
|
+
{
|
|
1548
|
+
couchbase::core::operations::management::query_index_get_all_request req{};
|
|
1549
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1550
|
+
req.scope_name = scope_name;
|
|
1551
|
+
req.collection_name = collection_name;
|
|
1552
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1553
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1554
|
+
REQUIRE(resp.indexes.size() == 1);
|
|
1555
|
+
REQUIRE(resp.indexes[0].name == index_name);
|
|
1556
|
+
REQUIRE(resp.indexes[0].is_primary);
|
|
1557
|
+
}
|
|
1232
1558
|
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1559
|
+
{
|
|
1560
|
+
couchbase::core::operations::management::query_index_drop_request req{};
|
|
1561
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1562
|
+
req.index_name = index_name;
|
|
1563
|
+
req.scope_name = scope_name;
|
|
1564
|
+
req.is_primary = true;
|
|
1565
|
+
req.collection_name = collection_name;
|
|
1566
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1567
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1568
|
+
}
|
|
1243
1569
|
}
|
|
1244
|
-
|
|
1570
|
+
SECTION("public API")
|
|
1245
1571
|
{
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1572
|
+
{
|
|
1573
|
+
std::error_code ec;
|
|
1574
|
+
auto operation_completed = test::utils::wait_until([&index_name, &manager, &ec]() {
|
|
1575
|
+
auto ctx = manager.create_primary_index(couchbase::create_primary_query_index_options().index_name(index_name)).get();
|
|
1576
|
+
ec = ctx.ec();
|
|
1577
|
+
return ec != couchbase::errc::common::bucket_not_found;
|
|
1578
|
+
});
|
|
1579
|
+
REQUIRE(operation_completed);
|
|
1580
|
+
REQUIRE_SUCCESS(ec);
|
|
1581
|
+
}
|
|
1582
|
+
{
|
|
1583
|
+
auto [ctx, indexes] = manager.get_all_indexes({}).get();
|
|
1584
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1585
|
+
REQUIRE(indexes.size() == 1);
|
|
1586
|
+
REQUIRE(indexes[0].name == index_name);
|
|
1587
|
+
REQUIRE(indexes[0].is_primary);
|
|
1588
|
+
}
|
|
1589
|
+
{
|
|
1590
|
+
auto ctx = manager.watch_indexes({ index_name }, {}).get();
|
|
1591
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1592
|
+
}
|
|
1593
|
+
{
|
|
1594
|
+
auto ctx = manager.drop_index(index_name, {}).get();
|
|
1595
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1596
|
+
}
|
|
1261
1597
|
}
|
|
1598
|
+
}
|
|
1262
1599
|
|
|
1600
|
+
SECTION("non primary index")
|
|
1601
|
+
{
|
|
1602
|
+
SECTION("core API")
|
|
1263
1603
|
{
|
|
1264
|
-
couchbase::operations::management::query_index_drop_request req{};
|
|
1265
|
-
req.bucket_name = bucket_name;
|
|
1266
|
-
req.index_name = index_name;
|
|
1267
|
-
req.scope_name = scope_name;
|
|
1268
|
-
req.collection_name = collection_name;
|
|
1269
|
-
auto resp = test::utils::execute(integration.cluster, req);
|
|
1270
|
-
REQUIRE_FALSE(resp.ctx.ec);
|
|
1271
|
-
}
|
|
1272
1604
|
|
|
1605
|
+
{
|
|
1606
|
+
couchbase::core::operations::management::query_index_create_response resp;
|
|
1607
|
+
bool operation_completed = test::utils::wait_until([&integration, &index_name, &scope_name, &collection_name, &resp]() {
|
|
1608
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1609
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1610
|
+
req.index_name = index_name;
|
|
1611
|
+
req.scope_name = scope_name;
|
|
1612
|
+
req.collection_name = collection_name;
|
|
1613
|
+
req.fields = { "field" };
|
|
1614
|
+
resp = test::utils::execute(integration.cluster, req);
|
|
1615
|
+
return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
|
|
1616
|
+
});
|
|
1617
|
+
REQUIRE(operation_completed);
|
|
1618
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1619
|
+
}
|
|
1620
|
+
|
|
1621
|
+
{
|
|
1622
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1623
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1624
|
+
req.index_name = index_name;
|
|
1625
|
+
req.scope_name = scope_name;
|
|
1626
|
+
req.collection_name = collection_name;
|
|
1627
|
+
req.fields = { "field" };
|
|
1628
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1629
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::index_exists);
|
|
1630
|
+
}
|
|
1631
|
+
|
|
1632
|
+
{
|
|
1633
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1634
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1635
|
+
req.index_name = index_name;
|
|
1636
|
+
req.scope_name = scope_name;
|
|
1637
|
+
req.collection_name = collection_name;
|
|
1638
|
+
req.fields = { "field" };
|
|
1639
|
+
req.ignore_if_exists = true;
|
|
1640
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1641
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1642
|
+
}
|
|
1643
|
+
|
|
1644
|
+
{
|
|
1645
|
+
couchbase::core::operations::management::query_index_get_all_request req{};
|
|
1646
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1647
|
+
req.scope_name = scope_name;
|
|
1648
|
+
req.collection_name = collection_name;
|
|
1649
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1650
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1651
|
+
REQUIRE(resp.indexes.size() == 1);
|
|
1652
|
+
REQUIRE(resp.indexes[0].name == index_name);
|
|
1653
|
+
REQUIRE_FALSE(resp.indexes[0].is_primary);
|
|
1654
|
+
REQUIRE(resp.indexes[0].index_key.size() == 1);
|
|
1655
|
+
REQUIRE(resp.indexes[0].index_key[0] == "`field`");
|
|
1656
|
+
REQUIRE(resp.indexes[0].collection_name == collection_name);
|
|
1657
|
+
REQUIRE(resp.indexes[0].scope_name == scope_name);
|
|
1658
|
+
REQUIRE(resp.indexes[0].bucket_name == integration.ctx.bucket);
|
|
1659
|
+
REQUIRE(resp.indexes[0].state == "online");
|
|
1660
|
+
}
|
|
1661
|
+
|
|
1662
|
+
{
|
|
1663
|
+
couchbase::core::operations::management::query_index_drop_request req{};
|
|
1664
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1665
|
+
req.index_name = index_name;
|
|
1666
|
+
req.scope_name = scope_name;
|
|
1667
|
+
req.collection_name = collection_name;
|
|
1668
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1669
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1670
|
+
}
|
|
1671
|
+
|
|
1672
|
+
{
|
|
1673
|
+
couchbase::core::operations::management::query_index_drop_request req{};
|
|
1674
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1675
|
+
req.index_name = index_name;
|
|
1676
|
+
req.scope_name = scope_name;
|
|
1677
|
+
req.collection_name = collection_name;
|
|
1678
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1679
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::index_not_found);
|
|
1680
|
+
}
|
|
1681
|
+
}
|
|
1682
|
+
SECTION("public API")
|
|
1273
1683
|
{
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1684
|
+
{
|
|
1685
|
+
std::error_code ec;
|
|
1686
|
+
auto operation_complete = test::utils::wait_until([&manager, &ec, &index_name]() {
|
|
1687
|
+
ec = manager.create_index(index_name, { "field" }, {}).get().ec();
|
|
1688
|
+
return ec != couchbase::errc::common::bucket_not_found;
|
|
1689
|
+
});
|
|
1690
|
+
REQUIRE(operation_complete);
|
|
1691
|
+
REQUIRE_SUCCESS(ec);
|
|
1692
|
+
}
|
|
1693
|
+
{
|
|
1694
|
+
REQUIRE(manager.create_index(index_name, { "field" }, {}).get().ec() == couchbase::errc::common::index_exists);
|
|
1695
|
+
}
|
|
1696
|
+
{
|
|
1697
|
+
REQUIRE_SUCCESS(
|
|
1698
|
+
manager.create_index(index_name, { "field" }, couchbase::create_query_index_options().ignore_if_exists(true)).get().ec());
|
|
1699
|
+
}
|
|
1700
|
+
{
|
|
1701
|
+
REQUIRE_SUCCESS(manager.watch_indexes({ index_name }, {}).get().ec());
|
|
1702
|
+
auto [ctx, indexes] = manager.get_all_indexes({}).get();
|
|
1703
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1704
|
+
REQUIRE(indexes.size() == 1);
|
|
1705
|
+
REQUIRE(indexes[0].name == index_name);
|
|
1706
|
+
REQUIRE_FALSE(indexes[0].is_primary);
|
|
1707
|
+
REQUIRE(indexes[0].index_key.size() == 1);
|
|
1708
|
+
REQUIRE(indexes[0].index_key[0] == "`field`");
|
|
1709
|
+
REQUIRE(indexes[0].collection_name == collection_name);
|
|
1710
|
+
REQUIRE(indexes[0].scope_name == scope_name);
|
|
1711
|
+
REQUIRE(indexes[0].bucket_name == integration.ctx.bucket);
|
|
1712
|
+
REQUIRE(indexes[0].state == "online");
|
|
1713
|
+
}
|
|
1714
|
+
{
|
|
1715
|
+
auto ctx = manager.drop_index(index_name, {}).get();
|
|
1716
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1717
|
+
}
|
|
1718
|
+
{
|
|
1719
|
+
REQUIRE(manager.drop_index(index_name, {}).get().ec() == couchbase::errc::common::index_not_found);
|
|
1720
|
+
}
|
|
1721
|
+
{
|
|
1722
|
+
REQUIRE_SUCCESS(
|
|
1723
|
+
manager.drop_index(index_name, couchbase::drop_query_index_options().ignore_if_not_exists(true)).get().ec());
|
|
1724
|
+
}
|
|
1281
1725
|
}
|
|
1282
1726
|
}
|
|
1283
1727
|
|
|
1284
1728
|
SECTION("deferred index")
|
|
1285
1729
|
{
|
|
1286
|
-
{
|
|
1287
|
-
couchbase::operations::management::query_index_create_response resp;
|
|
1288
|
-
bool operation_completed =
|
|
1289
|
-
test::utils::wait_until([&integration, &bucket_name, &index_name, &scope_name, &collection_name, &resp]() {
|
|
1290
|
-
couchbase::operations::management::query_index_create_request req{};
|
|
1291
|
-
req.bucket_name = bucket_name;
|
|
1292
|
-
req.index_name = index_name;
|
|
1293
|
-
req.scope_name = scope_name;
|
|
1294
|
-
req.collection_name = collection_name;
|
|
1295
|
-
req.fields = { "field" };
|
|
1296
|
-
req.deferred = true;
|
|
1297
|
-
resp = test::utils::execute(integration.cluster, req);
|
|
1298
|
-
return resp.ctx.ec != couchbase::error::common_errc::bucket_not_found;
|
|
1299
|
-
});
|
|
1300
|
-
REQUIRE(operation_completed);
|
|
1301
|
-
REQUIRE_FALSE(resp.ctx.ec);
|
|
1302
|
-
}
|
|
1303
1730
|
|
|
1731
|
+
SECTION("public API")
|
|
1304
1732
|
{
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1733
|
+
{
|
|
1734
|
+
auto ctx =
|
|
1735
|
+
manager.create_index(index_name, { "field" }, couchbase::create_query_index_options().build_deferred(true)).get();
|
|
1736
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1737
|
+
}
|
|
1738
|
+
{
|
|
1739
|
+
auto [ctx, indexes] = manager.get_all_indexes({}).get();
|
|
1740
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1741
|
+
REQUIRE(indexes.size() == 1);
|
|
1742
|
+
REQUIRE(indexes[0].name == index_name);
|
|
1743
|
+
REQUIRE(indexes[0].state == "deferred");
|
|
1744
|
+
}
|
|
1745
|
+
{
|
|
1746
|
+
auto ctx = manager.build_deferred_indexes({}).get();
|
|
1747
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1748
|
+
}
|
|
1749
|
+
{
|
|
1750
|
+
auto ctx = manager.watch_indexes({ index_name }, {}).get();
|
|
1751
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1752
|
+
}
|
|
1314
1753
|
}
|
|
1315
1754
|
|
|
1755
|
+
SECTION("core API")
|
|
1316
1756
|
{
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1757
|
+
{
|
|
1758
|
+
couchbase::core::operations::management::query_index_create_response resp;
|
|
1759
|
+
bool operation_completed = test::utils::wait_until([&integration, &index_name, &scope_name, &collection_name, &resp]() {
|
|
1760
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1761
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1762
|
+
req.index_name = index_name;
|
|
1763
|
+
req.scope_name = scope_name;
|
|
1764
|
+
req.collection_name = collection_name;
|
|
1765
|
+
req.fields = { "field" };
|
|
1766
|
+
req.deferred = true;
|
|
1767
|
+
resp = test::utils::execute(integration.cluster, req);
|
|
1768
|
+
return resp.ctx.ec != couchbase::errc::common::bucket_not_found;
|
|
1769
|
+
});
|
|
1770
|
+
REQUIRE(operation_completed);
|
|
1771
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1772
|
+
}
|
|
1324
1773
|
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1774
|
+
{
|
|
1775
|
+
couchbase::core::operations::management::query_index_get_all_request req{};
|
|
1776
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1777
|
+
req.scope_name = scope_name;
|
|
1778
|
+
req.collection_name = collection_name;
|
|
1779
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1780
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1781
|
+
REQUIRE(resp.indexes.size() == 1);
|
|
1782
|
+
REQUIRE(resp.indexes[0].name == index_name);
|
|
1783
|
+
REQUIRE(resp.indexes[0].state == "deferred");
|
|
1333
1784
|
}
|
|
1334
|
-
|
|
1335
|
-
|
|
1785
|
+
{
|
|
1786
|
+
couchbase::core::operations::management::query_index_build_deferred_request req{};
|
|
1787
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1788
|
+
req.scope_name = scope_name;
|
|
1789
|
+
req.collection_name = collection_name;
|
|
1790
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1791
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1792
|
+
}
|
|
1793
|
+
|
|
1794
|
+
test::utils::wait_until([&integration, scope_name, collection_name]() {
|
|
1795
|
+
couchbase::core::operations::management::query_index_get_all_request req{};
|
|
1796
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1797
|
+
req.scope_name = scope_name;
|
|
1798
|
+
req.collection_name = collection_name;
|
|
1799
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1800
|
+
if (resp.indexes.empty()) {
|
|
1801
|
+
return false;
|
|
1802
|
+
}
|
|
1803
|
+
return resp.indexes[0].state == "online";
|
|
1804
|
+
});
|
|
1805
|
+
}
|
|
1336
1806
|
}
|
|
1337
1807
|
|
|
1338
1808
|
SECTION("create missing collection")
|
|
1339
1809
|
{
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1810
|
+
SECTION("core API")
|
|
1811
|
+
{
|
|
1812
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1813
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1814
|
+
req.scope_name = scope_name;
|
|
1815
|
+
req.collection_name = "missing_collection";
|
|
1816
|
+
req.is_primary = true;
|
|
1817
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1818
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::collection_not_found);
|
|
1819
|
+
}
|
|
1820
|
+
SECTION("public API")
|
|
1821
|
+
{
|
|
1822
|
+
couchbase::cluster c(integration.cluster);
|
|
1823
|
+
auto coll = c.bucket(integration.ctx.bucket).scope(scope_name).collection("missing_collection");
|
|
1824
|
+
REQUIRE(coll.query_indexes().create_primary_index({}).get().ec() == couchbase::errc::common::collection_not_found);
|
|
1825
|
+
}
|
|
1347
1826
|
}
|
|
1348
1827
|
|
|
1349
1828
|
SECTION("create missing scope")
|
|
1350
1829
|
{
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1830
|
+
SECTION("core API")
|
|
1831
|
+
{
|
|
1832
|
+
couchbase::core::operations::management::query_index_create_request req{};
|
|
1833
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1834
|
+
req.scope_name = "missing_scope";
|
|
1835
|
+
req.collection_name = collection_name;
|
|
1836
|
+
req.is_primary = true;
|
|
1837
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1838
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::scope_not_found);
|
|
1839
|
+
}
|
|
1840
|
+
SECTION("public API")
|
|
1841
|
+
{
|
|
1842
|
+
couchbase::cluster c(integration.cluster);
|
|
1843
|
+
auto coll = c.bucket(integration.ctx.bucket).scope("missing scope").collection(collection_name);
|
|
1844
|
+
REQUIRE(coll.query_indexes().create_primary_index({}).get().ec() == couchbase::errc::common::scope_not_found);
|
|
1845
|
+
}
|
|
1358
1846
|
}
|
|
1359
1847
|
|
|
1360
1848
|
SECTION("get missing collection")
|
|
1361
1849
|
{
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1850
|
+
SECTION("core API")
|
|
1851
|
+
{
|
|
1852
|
+
couchbase::core::operations::management::query_index_get_all_request req{};
|
|
1853
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1854
|
+
req.scope_name = scope_name;
|
|
1855
|
+
req.collection_name = "missing_collection";
|
|
1856
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1857
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1858
|
+
REQUIRE(resp.indexes.empty());
|
|
1859
|
+
}
|
|
1860
|
+
SECTION("public API")
|
|
1861
|
+
{
|
|
1862
|
+
couchbase::cluster c(integration.cluster);
|
|
1863
|
+
auto coll = c.bucket(integration.ctx.bucket).scope(scope_name).collection("missing_collection");
|
|
1864
|
+
auto [ctx, indexes] = coll.query_indexes().get_all_indexes({}).get();
|
|
1865
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1866
|
+
REQUIRE(indexes.empty());
|
|
1867
|
+
}
|
|
1868
|
+
}
|
|
1869
|
+
SECTION("get missing scope")
|
|
1870
|
+
{
|
|
1871
|
+
SECTION("core API")
|
|
1872
|
+
{
|
|
1873
|
+
couchbase::core::operations::management::query_index_get_all_request req{};
|
|
1874
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1875
|
+
req.scope_name = "missing_scope";
|
|
1876
|
+
req.collection_name = collection_name;
|
|
1877
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1878
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1879
|
+
REQUIRE(resp.indexes.empty());
|
|
1880
|
+
}
|
|
1881
|
+
SECTION("public API")
|
|
1882
|
+
{
|
|
1883
|
+
couchbase::cluster c(integration.cluster);
|
|
1884
|
+
auto coll = c.bucket(integration.ctx.bucket).scope("missing_scope").collection(collection_name);
|
|
1885
|
+
auto [ctx, indexes] = coll.query_indexes().get_all_indexes({}).get();
|
|
1886
|
+
REQUIRE_SUCCESS(ctx.ec());
|
|
1887
|
+
REQUIRE(indexes.empty());
|
|
1888
|
+
}
|
|
1369
1889
|
}
|
|
1370
1890
|
|
|
1371
1891
|
SECTION("drop missing collection")
|
|
1372
1892
|
{
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1893
|
+
SECTION("core API")
|
|
1894
|
+
{
|
|
1895
|
+
couchbase::core::operations::management::query_index_drop_request req{};
|
|
1896
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1897
|
+
req.scope_name = scope_name;
|
|
1898
|
+
req.collection_name = "missing_collection";
|
|
1899
|
+
req.is_primary = true;
|
|
1900
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1901
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::collection_not_found);
|
|
1902
|
+
}
|
|
1903
|
+
SECTION("public API")
|
|
1904
|
+
{
|
|
1905
|
+
couchbase::cluster c(integration.cluster);
|
|
1906
|
+
auto coll = c.bucket(integration.ctx.bucket).scope(scope_name).collection("missing_collection");
|
|
1907
|
+
REQUIRE(coll.query_indexes().drop_index(index_name, {}).get().ec() == couchbase::errc::common::collection_not_found);
|
|
1908
|
+
}
|
|
1380
1909
|
}
|
|
1381
|
-
|
|
1382
1910
|
SECTION("drop missing scope")
|
|
1383
1911
|
{
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1912
|
+
SECTION("core API")
|
|
1913
|
+
{
|
|
1914
|
+
couchbase::core::operations::management::query_index_drop_request req{};
|
|
1915
|
+
req.bucket_name = integration.ctx.bucket;
|
|
1916
|
+
req.scope_name = "missing_scope";
|
|
1917
|
+
req.collection_name = collection_name;
|
|
1918
|
+
req.is_primary = true;
|
|
1919
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
1920
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::scope_not_found);
|
|
1921
|
+
}
|
|
1922
|
+
SECTION("public API")
|
|
1923
|
+
{
|
|
1924
|
+
couchbase::cluster c(integration.cluster);
|
|
1925
|
+
auto coll = c.bucket(integration.ctx.bucket).scope("missing_scope").collection(collection_name);
|
|
1926
|
+
REQUIRE(coll.query_indexes().drop_index(index_name, {}).get().ec() == couchbase::errc::common::scope_not_found);
|
|
1927
|
+
}
|
|
1391
1928
|
}
|
|
1392
|
-
|
|
1393
|
-
// drop any buckets that haven't already been dropped
|
|
1929
|
+
SECTION("watch missing scope")
|
|
1394
1930
|
{
|
|
1395
|
-
|
|
1396
|
-
|
|
1931
|
+
SECTION("public API")
|
|
1932
|
+
{
|
|
1933
|
+
couchbase::cluster c(integration.cluster);
|
|
1934
|
+
auto coll = c.bucket(integration.ctx.bucket).scope("missing_scope").collection(collection_name);
|
|
1935
|
+
REQUIRE(coll.query_indexes()
|
|
1936
|
+
.watch_indexes({ index_name }, couchbase::watch_query_indexes_options().timeout(std::chrono::seconds(5)))
|
|
1937
|
+
.get()
|
|
1938
|
+
.ec() == couchbase::errc::common::ambiguous_timeout);
|
|
1939
|
+
}
|
|
1940
|
+
}
|
|
1941
|
+
SECTION("watch missing collection")
|
|
1942
|
+
{
|
|
1943
|
+
SECTION("public API")
|
|
1944
|
+
{
|
|
1945
|
+
couchbase::cluster c(integration.cluster);
|
|
1946
|
+
auto coll = c.bucket(integration.ctx.bucket).scope(scope_name).collection("missing_collection");
|
|
1947
|
+
REQUIRE(coll.query_indexes()
|
|
1948
|
+
.watch_indexes({ index_name }, couchbase::watch_query_indexes_options().timeout(std::chrono::seconds(5)))
|
|
1949
|
+
.get()
|
|
1950
|
+
.ec() == couchbase::errc::common::ambiguous_timeout);
|
|
1951
|
+
}
|
|
1397
1952
|
}
|
|
1398
1953
|
}
|
|
1399
1954
|
|
|
@@ -1406,7 +1961,7 @@ TEST_CASE("integration: analytics index management", "[integration]")
|
|
|
1406
1961
|
}
|
|
1407
1962
|
|
|
1408
1963
|
// MB-47718
|
|
1409
|
-
if (integration.storage_backend() == couchbase::management::cluster::bucket_storage_backend::magma) {
|
|
1964
|
+
if (integration.storage_backend() == couchbase::core::management::cluster::bucket_storage_backend::magma) {
|
|
1410
1965
|
return;
|
|
1411
1966
|
}
|
|
1412
1967
|
|
|
@@ -1417,98 +1972,98 @@ TEST_CASE("integration: analytics index management", "[integration]")
|
|
|
1417
1972
|
auto index_name = test::utils::uniq_id("index");
|
|
1418
1973
|
|
|
1419
1974
|
{
|
|
1420
|
-
couchbase::operations::management::analytics_dataverse_create_request req{};
|
|
1975
|
+
couchbase::core::operations::management::analytics_dataverse_create_request req{};
|
|
1421
1976
|
req.dataverse_name = dataverse_name;
|
|
1422
1977
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1423
|
-
|
|
1978
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1424
1979
|
}
|
|
1425
1980
|
|
|
1426
1981
|
{
|
|
1427
|
-
couchbase::operations::management::analytics_dataverse_create_request req{};
|
|
1982
|
+
couchbase::core::operations::management::analytics_dataverse_create_request req{};
|
|
1428
1983
|
req.dataverse_name = dataverse_name;
|
|
1429
1984
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1430
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
1985
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::analytics::dataverse_exists);
|
|
1431
1986
|
}
|
|
1432
1987
|
|
|
1433
1988
|
{
|
|
1434
|
-
couchbase::operations::management::analytics_dataverse_create_request req{};
|
|
1989
|
+
couchbase::core::operations::management::analytics_dataverse_create_request req{};
|
|
1435
1990
|
req.dataverse_name = dataverse_name;
|
|
1436
1991
|
req.ignore_if_exists = true;
|
|
1437
1992
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1438
|
-
|
|
1993
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1439
1994
|
}
|
|
1440
1995
|
|
|
1441
1996
|
{
|
|
1442
|
-
couchbase::operations::management::analytics_dataset_create_request req{};
|
|
1997
|
+
couchbase::core::operations::management::analytics_dataset_create_request req{};
|
|
1443
1998
|
req.dataset_name = dataset_name;
|
|
1444
1999
|
req.bucket_name = integration.ctx.bucket;
|
|
1445
2000
|
req.dataverse_name = dataverse_name;
|
|
1446
2001
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1447
|
-
|
|
2002
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1448
2003
|
}
|
|
1449
2004
|
|
|
1450
2005
|
{
|
|
1451
|
-
couchbase::operations::management::analytics_dataset_create_request req{};
|
|
2006
|
+
couchbase::core::operations::management::analytics_dataset_create_request req{};
|
|
1452
2007
|
req.dataset_name = dataset_name;
|
|
1453
2008
|
req.bucket_name = integration.ctx.bucket;
|
|
1454
2009
|
req.dataverse_name = dataverse_name;
|
|
1455
2010
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1456
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2011
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::analytics::dataset_exists);
|
|
1457
2012
|
}
|
|
1458
2013
|
|
|
1459
2014
|
{
|
|
1460
|
-
couchbase::operations::management::analytics_dataset_create_request req{};
|
|
2015
|
+
couchbase::core::operations::management::analytics_dataset_create_request req{};
|
|
1461
2016
|
req.dataset_name = dataset_name;
|
|
1462
2017
|
req.bucket_name = integration.ctx.bucket;
|
|
1463
2018
|
req.dataverse_name = dataverse_name;
|
|
1464
2019
|
req.ignore_if_exists = true;
|
|
1465
2020
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1466
|
-
|
|
2021
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1467
2022
|
}
|
|
1468
2023
|
|
|
1469
2024
|
{
|
|
1470
|
-
couchbase::operations::management::analytics_index_create_request req{};
|
|
2025
|
+
couchbase::core::operations::management::analytics_index_create_request req{};
|
|
1471
2026
|
req.dataverse_name = dataverse_name;
|
|
1472
2027
|
req.dataset_name = dataset_name;
|
|
1473
2028
|
req.index_name = index_name;
|
|
1474
2029
|
req.fields["testkey"] = "string";
|
|
1475
2030
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1476
|
-
|
|
2031
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1477
2032
|
}
|
|
1478
2033
|
|
|
1479
2034
|
{
|
|
1480
|
-
couchbase::operations::management::analytics_index_create_request req{};
|
|
2035
|
+
couchbase::core::operations::management::analytics_index_create_request req{};
|
|
1481
2036
|
req.dataverse_name = dataverse_name;
|
|
1482
2037
|
req.dataset_name = dataset_name;
|
|
1483
2038
|
req.index_name = index_name;
|
|
1484
2039
|
req.fields["testkey"] = "string";
|
|
1485
2040
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1486
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2041
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::index_exists);
|
|
1487
2042
|
}
|
|
1488
2043
|
|
|
1489
2044
|
{
|
|
1490
|
-
couchbase::operations::management::analytics_index_create_request req{};
|
|
2045
|
+
couchbase::core::operations::management::analytics_index_create_request req{};
|
|
1491
2046
|
req.dataverse_name = dataverse_name;
|
|
1492
2047
|
req.dataset_name = dataset_name;
|
|
1493
2048
|
req.index_name = index_name;
|
|
1494
2049
|
req.fields["testkey"] = "string";
|
|
1495
2050
|
req.ignore_if_exists = true;
|
|
1496
2051
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1497
|
-
|
|
2052
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1498
2053
|
}
|
|
1499
2054
|
|
|
1500
2055
|
{
|
|
1501
|
-
couchbase::operations::management::analytics_link_connect_request req{};
|
|
2056
|
+
couchbase::core::operations::management::analytics_link_connect_request req{};
|
|
1502
2057
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1503
|
-
|
|
2058
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1504
2059
|
}
|
|
1505
2060
|
|
|
1506
2061
|
{
|
|
1507
|
-
couchbase::operations::management::analytics_dataset_get_all_request req{};
|
|
2062
|
+
couchbase::core::operations::management::analytics_dataset_get_all_request req{};
|
|
1508
2063
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1509
|
-
|
|
2064
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1510
2065
|
REQUIRE_FALSE(resp.datasets.empty());
|
|
1511
|
-
auto dataset = std::find_if(resp.datasets.begin(), resp.datasets.end(), [dataset_name](const auto& exp_dataset) {
|
|
2066
|
+
auto dataset = std::find_if(resp.datasets.begin(), resp.datasets.end(), [&dataset_name](const auto& exp_dataset) {
|
|
1512
2067
|
return exp_dataset.name == dataset_name;
|
|
1513
2068
|
});
|
|
1514
2069
|
REQUIRE(dataset != resp.datasets.end());
|
|
@@ -1518,12 +2073,12 @@ TEST_CASE("integration: analytics index management", "[integration]")
|
|
|
1518
2073
|
}
|
|
1519
2074
|
|
|
1520
2075
|
{
|
|
1521
|
-
couchbase::operations::management::analytics_index_get_all_request req{};
|
|
2076
|
+
couchbase::core::operations::management::analytics_index_get_all_request req{};
|
|
1522
2077
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1523
|
-
|
|
2078
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1524
2079
|
REQUIRE_FALSE(resp.indexes.empty());
|
|
1525
2080
|
auto index = std::find_if(
|
|
1526
|
-
resp.indexes.begin(), resp.indexes.end(), [index_name](const auto& exp_index) { return exp_index.name == index_name; });
|
|
2081
|
+
resp.indexes.begin(), resp.indexes.end(), [&index_name](const auto& exp_index) { return exp_index.name == index_name; });
|
|
1527
2082
|
REQUIRE(index != resp.indexes.end());
|
|
1528
2083
|
REQUIRE(index->dataverse_name == dataverse_name);
|
|
1529
2084
|
REQUIRE(index->dataset_name == dataset_name);
|
|
@@ -1531,91 +2086,91 @@ TEST_CASE("integration: analytics index management", "[integration]")
|
|
|
1531
2086
|
}
|
|
1532
2087
|
|
|
1533
2088
|
if (integration.cluster_version().supports_analytics_pending_mutations()) {
|
|
1534
|
-
couchbase::operations::management::analytics_get_pending_mutations_request req{};
|
|
2089
|
+
couchbase::core::operations::management::analytics_get_pending_mutations_request req{};
|
|
1535
2090
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1536
|
-
|
|
2091
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1537
2092
|
REQUIRE(resp.stats[index_name] == 0);
|
|
1538
2093
|
}
|
|
1539
2094
|
|
|
1540
2095
|
{
|
|
1541
|
-
couchbase::operations::management::analytics_link_disconnect_request req{};
|
|
2096
|
+
couchbase::core::operations::management::analytics_link_disconnect_request req{};
|
|
1542
2097
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1543
|
-
|
|
2098
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1544
2099
|
}
|
|
1545
2100
|
|
|
1546
2101
|
{
|
|
1547
|
-
couchbase::operations::management::analytics_index_drop_request req{};
|
|
2102
|
+
couchbase::core::operations::management::analytics_index_drop_request req{};
|
|
1548
2103
|
req.index_name = index_name;
|
|
1549
2104
|
req.dataverse_name = dataverse_name;
|
|
1550
2105
|
req.dataset_name = dataset_name;
|
|
1551
2106
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1552
|
-
|
|
2107
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1553
2108
|
}
|
|
1554
2109
|
|
|
1555
2110
|
{
|
|
1556
|
-
couchbase::operations::management::analytics_index_drop_request req{};
|
|
2111
|
+
couchbase::core::operations::management::analytics_index_drop_request req{};
|
|
1557
2112
|
req.index_name = index_name;
|
|
1558
2113
|
req.dataverse_name = dataverse_name;
|
|
1559
2114
|
req.dataset_name = dataset_name;
|
|
1560
2115
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1561
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2116
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::index_not_found);
|
|
1562
2117
|
}
|
|
1563
2118
|
|
|
1564
2119
|
{
|
|
1565
|
-
couchbase::operations::management::analytics_index_drop_request req{};
|
|
2120
|
+
couchbase::core::operations::management::analytics_index_drop_request req{};
|
|
1566
2121
|
req.index_name = index_name;
|
|
1567
2122
|
req.dataverse_name = dataverse_name;
|
|
1568
2123
|
req.dataset_name = dataset_name;
|
|
1569
2124
|
req.ignore_if_does_not_exist = true;
|
|
1570
2125
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1571
|
-
|
|
2126
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1572
2127
|
}
|
|
1573
2128
|
|
|
1574
2129
|
{
|
|
1575
|
-
couchbase::operations::management::analytics_dataset_drop_request req{};
|
|
2130
|
+
couchbase::core::operations::management::analytics_dataset_drop_request req{};
|
|
1576
2131
|
req.dataverse_name = dataverse_name;
|
|
1577
2132
|
req.dataset_name = dataset_name;
|
|
1578
2133
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1579
|
-
|
|
2134
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1580
2135
|
}
|
|
1581
2136
|
|
|
1582
2137
|
{
|
|
1583
|
-
couchbase::operations::management::analytics_dataset_drop_request req{};
|
|
2138
|
+
couchbase::core::operations::management::analytics_dataset_drop_request req{};
|
|
1584
2139
|
req.dataverse_name = dataverse_name;
|
|
1585
2140
|
req.dataset_name = dataset_name;
|
|
1586
2141
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1587
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2142
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::analytics::dataset_not_found);
|
|
1588
2143
|
}
|
|
1589
2144
|
|
|
1590
2145
|
{
|
|
1591
|
-
couchbase::operations::management::analytics_dataset_drop_request req{};
|
|
2146
|
+
couchbase::core::operations::management::analytics_dataset_drop_request req{};
|
|
1592
2147
|
req.dataverse_name = dataverse_name;
|
|
1593
2148
|
req.dataset_name = dataset_name;
|
|
1594
2149
|
req.ignore_if_does_not_exist = true;
|
|
1595
2150
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1596
|
-
|
|
2151
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1597
2152
|
}
|
|
1598
2153
|
|
|
1599
2154
|
{
|
|
1600
|
-
couchbase::operations::management::analytics_dataverse_drop_request req{};
|
|
2155
|
+
couchbase::core::operations::management::analytics_dataverse_drop_request req{};
|
|
1601
2156
|
req.dataverse_name = dataverse_name;
|
|
1602
2157
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1603
|
-
|
|
2158
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1604
2159
|
}
|
|
1605
2160
|
|
|
1606
2161
|
{
|
|
1607
|
-
couchbase::operations::management::analytics_dataverse_drop_request req{};
|
|
2162
|
+
couchbase::core::operations::management::analytics_dataverse_drop_request req{};
|
|
1608
2163
|
req.dataverse_name = dataverse_name;
|
|
1609
2164
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1610
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2165
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::analytics::dataverse_not_found);
|
|
1611
2166
|
}
|
|
1612
2167
|
|
|
1613
2168
|
{
|
|
1614
|
-
couchbase::operations::management::analytics_dataverse_drop_request req{};
|
|
2169
|
+
couchbase::core::operations::management::analytics_dataverse_drop_request req{};
|
|
1615
2170
|
req.dataverse_name = dataverse_name;
|
|
1616
2171
|
req.ignore_if_does_not_exist = true;
|
|
1617
2172
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1618
|
-
|
|
2173
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1619
2174
|
}
|
|
1620
2175
|
}
|
|
1621
2176
|
|
|
@@ -1627,115 +2182,117 @@ TEST_CASE("integration: analytics index management", "[integration]")
|
|
|
1627
2182
|
auto index_name = test::utils::uniq_id("index");
|
|
1628
2183
|
|
|
1629
2184
|
{
|
|
1630
|
-
couchbase::operations::management::analytics_dataverse_create_request req{};
|
|
2185
|
+
couchbase::core::operations::management::analytics_dataverse_create_request req{};
|
|
1631
2186
|
req.dataverse_name = dataverse_name;
|
|
1632
2187
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1633
|
-
|
|
2188
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1634
2189
|
}
|
|
1635
2190
|
|
|
1636
2191
|
{
|
|
1637
|
-
couchbase::operations::management::analytics_dataset_create_request req{};
|
|
2192
|
+
couchbase::core::operations::management::analytics_dataset_create_request req{};
|
|
1638
2193
|
req.bucket_name = integration.ctx.bucket;
|
|
1639
2194
|
req.dataverse_name = dataverse_name;
|
|
1640
2195
|
req.dataset_name = dataset_name;
|
|
1641
2196
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1642
|
-
|
|
2197
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1643
2198
|
}
|
|
1644
2199
|
|
|
1645
2200
|
{
|
|
1646
|
-
couchbase::operations::management::analytics_index_create_request req{};
|
|
2201
|
+
couchbase::core::operations::management::analytics_index_create_request req{};
|
|
1647
2202
|
req.dataverse_name = dataverse_name;
|
|
1648
2203
|
req.dataset_name = dataset_name;
|
|
1649
2204
|
req.index_name = index_name;
|
|
1650
2205
|
req.fields["testkey"] = "string";
|
|
1651
2206
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1652
|
-
|
|
2207
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1653
2208
|
}
|
|
1654
2209
|
|
|
1655
2210
|
{
|
|
1656
|
-
couchbase::operations::management::analytics_link_connect_request req{};
|
|
2211
|
+
couchbase::core::operations::management::analytics_link_connect_request req{};
|
|
1657
2212
|
req.dataverse_name = dataverse_name;
|
|
1658
2213
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1659
|
-
|
|
2214
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1660
2215
|
}
|
|
1661
2216
|
|
|
1662
2217
|
{
|
|
1663
|
-
couchbase::operations::management::analytics_link_disconnect_request req{};
|
|
2218
|
+
couchbase::core::operations::management::analytics_link_disconnect_request req{};
|
|
1664
2219
|
req.dataverse_name = dataverse_name;
|
|
1665
2220
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1666
|
-
|
|
2221
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1667
2222
|
}
|
|
1668
2223
|
|
|
1669
2224
|
{
|
|
1670
|
-
couchbase::operations::management::analytics_index_drop_request req{};
|
|
2225
|
+
couchbase::core::operations::management::analytics_index_drop_request req{};
|
|
1671
2226
|
req.dataverse_name = dataverse_name;
|
|
1672
2227
|
req.dataset_name = dataset_name;
|
|
1673
2228
|
req.index_name = index_name;
|
|
1674
2229
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1675
|
-
|
|
2230
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1676
2231
|
}
|
|
1677
2232
|
|
|
1678
2233
|
{
|
|
1679
|
-
couchbase::operations::management::analytics_dataset_drop_request req{};
|
|
2234
|
+
couchbase::core::operations::management::analytics_dataset_drop_request req{};
|
|
1680
2235
|
req.dataverse_name = dataverse_name;
|
|
1681
2236
|
req.dataset_name = dataset_name;
|
|
1682
2237
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1683
|
-
|
|
2238
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1684
2239
|
}
|
|
1685
2240
|
|
|
1686
2241
|
{
|
|
1687
|
-
couchbase::operations::management::analytics_dataverse_drop_request req{};
|
|
2242
|
+
couchbase::core::operations::management::analytics_dataverse_drop_request req{};
|
|
1688
2243
|
req.dataverse_name = dataverse_name;
|
|
1689
2244
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1690
|
-
|
|
2245
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1691
2246
|
}
|
|
1692
2247
|
}
|
|
1693
2248
|
}
|
|
1694
2249
|
}
|
|
1695
2250
|
|
|
1696
2251
|
void
|
|
1697
|
-
run_s3_link_test(test::utils::integration_test_guard& integration, std::string dataverse_name, std::string link_name)
|
|
2252
|
+
run_s3_link_test(test::utils::integration_test_guard& integration, const std::string& dataverse_name, const std::string& link_name)
|
|
1698
2253
|
{
|
|
1699
2254
|
{
|
|
1700
|
-
couchbase::operations::management::analytics_dataverse_create_request req{};
|
|
2255
|
+
couchbase::core::operations::management::analytics_dataverse_create_request req{};
|
|
1701
2256
|
req.dataverse_name = dataverse_name;
|
|
1702
2257
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1703
|
-
|
|
2258
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1704
2259
|
}
|
|
1705
2260
|
|
|
1706
2261
|
{
|
|
1707
|
-
couchbase::management::analytics::s3_external_link link{};
|
|
2262
|
+
couchbase::core::management::analytics::s3_external_link link{};
|
|
1708
2263
|
link.dataverse = dataverse_name;
|
|
1709
2264
|
link.access_key_id = "access_key";
|
|
1710
2265
|
link.secret_access_key = "secret_access_key";
|
|
1711
2266
|
link.region = "us-east-1";
|
|
1712
2267
|
link.service_endpoint = "service_endpoint";
|
|
1713
2268
|
link.link_name = link_name;
|
|
1714
|
-
couchbase::operations::management::analytics_link_create_request<couchbase::management::analytics::s3_external_link>
|
|
2269
|
+
couchbase::core::operations::management::analytics_link_create_request<couchbase::core::management::analytics::s3_external_link>
|
|
2270
|
+
req{};
|
|
1715
2271
|
req.link = link;
|
|
1716
2272
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1717
|
-
|
|
2273
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1718
2274
|
}
|
|
1719
2275
|
|
|
1720
2276
|
{
|
|
1721
|
-
couchbase::management::analytics::s3_external_link link{};
|
|
2277
|
+
couchbase::core::management::analytics::s3_external_link link{};
|
|
1722
2278
|
link.dataverse = dataverse_name;
|
|
1723
2279
|
link.access_key_id = "access_key";
|
|
1724
2280
|
link.secret_access_key = "secret_access_key";
|
|
1725
2281
|
link.region = "us-east-1";
|
|
1726
2282
|
link.service_endpoint = "service_endpoint";
|
|
1727
2283
|
link.link_name = link_name;
|
|
1728
|
-
couchbase::operations::management::analytics_link_create_request<couchbase::management::analytics::s3_external_link>
|
|
2284
|
+
couchbase::core::operations::management::analytics_link_create_request<couchbase::core::management::analytics::s3_external_link>
|
|
2285
|
+
req{};
|
|
1729
2286
|
req.link = link;
|
|
1730
2287
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1731
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2288
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::analytics::link_exists);
|
|
1732
2289
|
}
|
|
1733
2290
|
|
|
1734
2291
|
{
|
|
1735
|
-
couchbase::operations::management::analytics_link_get_all_request req{};
|
|
2292
|
+
couchbase::core::operations::management::analytics_link_get_all_request req{};
|
|
1736
2293
|
req.dataverse_name = dataverse_name;
|
|
1737
2294
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1738
|
-
|
|
2295
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1739
2296
|
REQUIRE(resp.s3.size() == 1);
|
|
1740
2297
|
REQUIRE(resp.s3[0].link_name == link_name);
|
|
1741
2298
|
REQUIRE(resp.s3[0].dataverse == dataverse_name);
|
|
@@ -1746,108 +2303,113 @@ run_s3_link_test(test::utils::integration_test_guard& integration, std::string d
|
|
|
1746
2303
|
}
|
|
1747
2304
|
|
|
1748
2305
|
{
|
|
1749
|
-
couchbase::operations::management::analytics_link_get_all_request req{};
|
|
2306
|
+
couchbase::core::operations::management::analytics_link_get_all_request req{};
|
|
1750
2307
|
req.link_type = "s3";
|
|
1751
2308
|
req.dataverse_name = dataverse_name;
|
|
1752
2309
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1753
|
-
|
|
2310
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1754
2311
|
REQUIRE(resp.s3.size() == 1);
|
|
1755
2312
|
REQUIRE(resp.azure_blob.empty());
|
|
1756
2313
|
REQUIRE(resp.couchbase.empty());
|
|
1757
2314
|
}
|
|
1758
2315
|
|
|
1759
2316
|
{
|
|
1760
|
-
couchbase::operations::management::analytics_link_get_all_request req{};
|
|
2317
|
+
couchbase::core::operations::management::analytics_link_get_all_request req{};
|
|
1761
2318
|
req.link_type = "couchbase";
|
|
1762
2319
|
req.dataverse_name = dataverse_name;
|
|
1763
2320
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1764
|
-
|
|
2321
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1765
2322
|
REQUIRE(resp.s3.empty());
|
|
1766
2323
|
REQUIRE(resp.azure_blob.empty());
|
|
1767
2324
|
REQUIRE(resp.couchbase.empty());
|
|
1768
2325
|
}
|
|
1769
2326
|
|
|
1770
2327
|
{
|
|
1771
|
-
couchbase::management::analytics::s3_external_link link{};
|
|
2328
|
+
couchbase::core::management::analytics::s3_external_link link{};
|
|
1772
2329
|
link.dataverse = dataverse_name;
|
|
1773
2330
|
link.access_key_id = "access_key";
|
|
1774
2331
|
link.secret_access_key = "secret_access_key";
|
|
1775
2332
|
link.region = "eu-west-1";
|
|
1776
2333
|
link.service_endpoint = "service_endpoint";
|
|
1777
2334
|
link.link_name = link_name;
|
|
1778
|
-
couchbase::operations::management::analytics_link_replace_request<couchbase::management::analytics::s3_external_link>
|
|
2335
|
+
couchbase::core::operations::management::analytics_link_replace_request<couchbase::core::management::analytics::s3_external_link>
|
|
2336
|
+
req{};
|
|
1779
2337
|
req.link = link;
|
|
1780
2338
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1781
|
-
|
|
2339
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1782
2340
|
}
|
|
1783
2341
|
|
|
1784
2342
|
{
|
|
1785
|
-
couchbase::operations::management::analytics_link_get_all_request req{};
|
|
2343
|
+
couchbase::core::operations::management::analytics_link_get_all_request req{};
|
|
1786
2344
|
req.dataverse_name = dataverse_name;
|
|
1787
2345
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1788
|
-
|
|
2346
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1789
2347
|
REQUIRE(resp.s3.size() == 1);
|
|
1790
2348
|
REQUIRE(resp.s3[0].region == "eu-west-1");
|
|
1791
2349
|
}
|
|
1792
2350
|
|
|
1793
2351
|
{
|
|
1794
|
-
couchbase::operations::management::analytics_link_drop_request req{};
|
|
2352
|
+
couchbase::core::operations::management::analytics_link_drop_request req{};
|
|
1795
2353
|
req.dataverse_name = dataverse_name;
|
|
1796
2354
|
req.link_name = link_name;
|
|
1797
2355
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1798
|
-
|
|
2356
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1799
2357
|
}
|
|
1800
2358
|
|
|
1801
2359
|
{
|
|
1802
|
-
couchbase::operations::management::analytics_link_drop_request req{};
|
|
2360
|
+
couchbase::core::operations::management::analytics_link_drop_request req{};
|
|
1803
2361
|
req.dataverse_name = dataverse_name;
|
|
1804
2362
|
req.link_name = link_name;
|
|
1805
2363
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1806
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2364
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::analytics::link_not_found);
|
|
1807
2365
|
}
|
|
1808
2366
|
}
|
|
1809
2367
|
|
|
1810
2368
|
void
|
|
1811
|
-
run_azure_link_test(test::utils::integration_test_guard& integration, std::string dataverse_name, std::string link_name)
|
|
2369
|
+
run_azure_link_test(test::utils::integration_test_guard& integration, const std::string& dataverse_name, const std::string& link_name)
|
|
1812
2370
|
{
|
|
1813
2371
|
{
|
|
1814
|
-
couchbase::operations::management::analytics_dataverse_create_request req{};
|
|
2372
|
+
couchbase::core::operations::management::analytics_dataverse_create_request req{};
|
|
1815
2373
|
req.dataverse_name = dataverse_name;
|
|
1816
2374
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1817
|
-
|
|
2375
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1818
2376
|
}
|
|
1819
2377
|
|
|
1820
2378
|
{
|
|
1821
|
-
couchbase::management::analytics::azure_blob_external_link link{};
|
|
2379
|
+
couchbase::core::management::analytics::azure_blob_external_link link{};
|
|
1822
2380
|
link.dataverse = dataverse_name;
|
|
1823
2381
|
link.connection_string = "connection_string";
|
|
1824
2382
|
link.blob_endpoint = "blob_endpoint";
|
|
1825
2383
|
link.endpoint_suffix = "endpoint_suffix";
|
|
1826
2384
|
link.link_name = link_name;
|
|
1827
|
-
couchbase::operations::management::analytics_link_create_request<
|
|
2385
|
+
couchbase::core::operations::management::analytics_link_create_request<
|
|
2386
|
+
couchbase::core::management::analytics::azure_blob_external_link>
|
|
2387
|
+
req{};
|
|
1828
2388
|
req.link = link;
|
|
1829
2389
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1830
|
-
|
|
2390
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1831
2391
|
}
|
|
1832
2392
|
|
|
1833
2393
|
{
|
|
1834
|
-
couchbase::management::analytics::azure_blob_external_link link{};
|
|
2394
|
+
couchbase::core::management::analytics::azure_blob_external_link link{};
|
|
1835
2395
|
link.dataverse = dataverse_name;
|
|
1836
2396
|
link.connection_string = "connection_string";
|
|
1837
2397
|
link.blob_endpoint = "blob_endpoint";
|
|
1838
2398
|
link.endpoint_suffix = "endpoint_suffix";
|
|
1839
2399
|
link.link_name = link_name;
|
|
1840
|
-
couchbase::operations::management::analytics_link_create_request<
|
|
2400
|
+
couchbase::core::operations::management::analytics_link_create_request<
|
|
2401
|
+
couchbase::core::management::analytics::azure_blob_external_link>
|
|
2402
|
+
req{};
|
|
1841
2403
|
req.link = link;
|
|
1842
2404
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1843
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2405
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::analytics::link_exists);
|
|
1844
2406
|
}
|
|
1845
2407
|
|
|
1846
2408
|
{
|
|
1847
|
-
couchbase::operations::management::analytics_link_get_all_request req{};
|
|
2409
|
+
couchbase::core::operations::management::analytics_link_get_all_request req{};
|
|
1848
2410
|
req.dataverse_name = dataverse_name;
|
|
1849
2411
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1850
|
-
|
|
2412
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1851
2413
|
REQUIRE(resp.azure_blob.size() == 1);
|
|
1852
2414
|
REQUIRE(resp.azure_blob[0].link_name == link_name);
|
|
1853
2415
|
REQUIRE(resp.azure_blob[0].dataverse == dataverse_name);
|
|
@@ -1860,63 +2422,65 @@ run_azure_link_test(test::utils::integration_test_guard& integration, std::strin
|
|
|
1860
2422
|
}
|
|
1861
2423
|
|
|
1862
2424
|
{
|
|
1863
|
-
couchbase::operations::management::analytics_link_get_all_request req{};
|
|
2425
|
+
couchbase::core::operations::management::analytics_link_get_all_request req{};
|
|
1864
2426
|
req.link_type = "azureblob";
|
|
1865
2427
|
req.dataverse_name = dataverse_name;
|
|
1866
2428
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1867
|
-
|
|
2429
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1868
2430
|
REQUIRE(resp.azure_blob.size() == 1);
|
|
1869
2431
|
REQUIRE(resp.s3.empty());
|
|
1870
2432
|
REQUIRE(resp.couchbase.empty());
|
|
1871
2433
|
}
|
|
1872
2434
|
|
|
1873
2435
|
{
|
|
1874
|
-
couchbase::operations::management::analytics_link_get_all_request req{};
|
|
2436
|
+
couchbase::core::operations::management::analytics_link_get_all_request req{};
|
|
1875
2437
|
req.link_type = "couchbase";
|
|
1876
2438
|
req.dataverse_name = dataverse_name;
|
|
1877
2439
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1878
|
-
|
|
2440
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1879
2441
|
REQUIRE(resp.s3.empty());
|
|
1880
2442
|
REQUIRE(resp.azure_blob.empty());
|
|
1881
2443
|
REQUIRE(resp.couchbase.empty());
|
|
1882
2444
|
}
|
|
1883
2445
|
|
|
1884
2446
|
{
|
|
1885
|
-
couchbase::management::analytics::azure_blob_external_link link{};
|
|
2447
|
+
couchbase::core::management::analytics::azure_blob_external_link link{};
|
|
1886
2448
|
link.dataverse = dataverse_name;
|
|
1887
2449
|
link.connection_string = "connection_string";
|
|
1888
2450
|
link.blob_endpoint = "new_blob_endpoint";
|
|
1889
2451
|
link.endpoint_suffix = "endpoint_suffix";
|
|
1890
2452
|
link.link_name = link_name;
|
|
1891
|
-
couchbase::operations::management::analytics_link_replace_request<
|
|
2453
|
+
couchbase::core::operations::management::analytics_link_replace_request<
|
|
2454
|
+
couchbase::core::management::analytics::azure_blob_external_link>
|
|
2455
|
+
req{};
|
|
1892
2456
|
req.link = link;
|
|
1893
2457
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1894
|
-
|
|
2458
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1895
2459
|
}
|
|
1896
2460
|
|
|
1897
2461
|
{
|
|
1898
|
-
couchbase::operations::management::analytics_link_get_all_request req{};
|
|
2462
|
+
couchbase::core::operations::management::analytics_link_get_all_request req{};
|
|
1899
2463
|
req.dataverse_name = dataverse_name;
|
|
1900
2464
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1901
|
-
|
|
2465
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1902
2466
|
REQUIRE(resp.azure_blob.size() == 1);
|
|
1903
2467
|
REQUIRE(resp.azure_blob[0].blob_endpoint == "new_blob_endpoint");
|
|
1904
2468
|
}
|
|
1905
2469
|
|
|
1906
2470
|
{
|
|
1907
|
-
couchbase::operations::management::analytics_link_drop_request req{};
|
|
2471
|
+
couchbase::core::operations::management::analytics_link_drop_request req{};
|
|
1908
2472
|
req.dataverse_name = dataverse_name;
|
|
1909
2473
|
req.link_name = link_name;
|
|
1910
2474
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1911
|
-
|
|
2475
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1912
2476
|
}
|
|
1913
2477
|
|
|
1914
2478
|
{
|
|
1915
|
-
couchbase::operations::management::analytics_link_drop_request req{};
|
|
2479
|
+
couchbase::core::operations::management::analytics_link_drop_request req{};
|
|
1916
2480
|
req.dataverse_name = dataverse_name;
|
|
1917
2481
|
req.link_name = link_name;
|
|
1918
2482
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1919
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2483
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::analytics::link_not_found);
|
|
1920
2484
|
}
|
|
1921
2485
|
}
|
|
1922
2486
|
|
|
@@ -1929,7 +2493,7 @@ TEST_CASE("integration: analytics external link management", "[integration]")
|
|
|
1929
2493
|
}
|
|
1930
2494
|
|
|
1931
2495
|
// MB-47718
|
|
1932
|
-
if (integration.storage_backend() == couchbase::management::cluster::bucket_storage_backend::magma) {
|
|
2496
|
+
if (integration.storage_backend() == couchbase::core::management::cluster::bucket_storage_backend::magma) {
|
|
1933
2497
|
return;
|
|
1934
2498
|
}
|
|
1935
2499
|
|
|
@@ -1944,7 +2508,7 @@ TEST_CASE("integration: analytics external link management", "[integration]")
|
|
|
1944
2508
|
|
|
1945
2509
|
SECTION("missing dataverse")
|
|
1946
2510
|
{
|
|
1947
|
-
couchbase::management::analytics::s3_external_link link{};
|
|
2511
|
+
couchbase::core::management::analytics::s3_external_link link{};
|
|
1948
2512
|
link.dataverse = "missing_dataverse";
|
|
1949
2513
|
link.access_key_id = "access_key";
|
|
1950
2514
|
link.secret_access_key = "secret_access_key";
|
|
@@ -1953,19 +2517,21 @@ TEST_CASE("integration: analytics external link management", "[integration]")
|
|
|
1953
2517
|
link.link_name = link_name;
|
|
1954
2518
|
|
|
1955
2519
|
{
|
|
1956
|
-
couchbase::operations::management::analytics_link_create_request<couchbase::management::analytics::s3_external_link>
|
|
2520
|
+
couchbase::core::operations::management::analytics_link_create_request<couchbase::core::management::analytics::s3_external_link>
|
|
2521
|
+
req{};
|
|
1957
2522
|
req.link = link;
|
|
1958
2523
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1959
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2524
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::analytics::dataverse_not_found);
|
|
1960
2525
|
}
|
|
1961
2526
|
}
|
|
1962
2527
|
|
|
1963
2528
|
SECTION("missing argument")
|
|
1964
2529
|
{
|
|
1965
|
-
couchbase::operations::management::analytics_link_create_request<couchbase::management::analytics::s3_external_link>
|
|
1966
|
-
|
|
2530
|
+
couchbase::core::operations::management::analytics_link_create_request<couchbase::core::management::analytics::s3_external_link>
|
|
2531
|
+
req{};
|
|
2532
|
+
req.link = couchbase::core::management::analytics::s3_external_link{};
|
|
1967
2533
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1968
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2534
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::invalid_argument);
|
|
1969
2535
|
}
|
|
1970
2536
|
|
|
1971
2537
|
SECTION("link crud")
|
|
@@ -1991,9 +2557,9 @@ TEST_CASE("integration: analytics external link management", "[integration]")
|
|
|
1991
2557
|
auto scope_name = test::utils::uniq_id("scope");
|
|
1992
2558
|
|
|
1993
2559
|
{
|
|
1994
|
-
couchbase::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
|
|
2560
|
+
couchbase::core::operations::management::scope_create_request req{ integration.ctx.bucket, scope_name };
|
|
1995
2561
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
1996
|
-
|
|
2562
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
1997
2563
|
auto created =
|
|
1998
2564
|
test::utils::wait_until_collection_manifest_propagated(integration.cluster, integration.ctx.bucket, resp.uid);
|
|
1999
2565
|
REQUIRE(created);
|
|
@@ -2016,6 +2582,9 @@ TEST_CASE("integration: analytics external link management", "[integration]")
|
|
|
2016
2582
|
}
|
|
2017
2583
|
}
|
|
2018
2584
|
|
|
2585
|
+
// serverless requires 1 partition and 1 replica
|
|
2586
|
+
const std::string serverless_plan_params = R"({ "indexPartition": 1, "numReplicas": 1 })";
|
|
2587
|
+
|
|
2019
2588
|
TEST_CASE("integration: search index management", "[integration]")
|
|
2020
2589
|
{
|
|
2021
2590
|
test::utils::integration_test_guard integration;
|
|
@@ -2026,121 +2595,166 @@ TEST_CASE("integration: search index management", "[integration]")
|
|
|
2026
2595
|
|
|
2027
2596
|
SECTION("search indexes crud")
|
|
2028
2597
|
{
|
|
2029
|
-
auto index1_name = test::utils::uniq_id("
|
|
2030
|
-
auto index2_name = test::utils::uniq_id("
|
|
2598
|
+
auto index1_name = test::utils::uniq_id("index1");
|
|
2599
|
+
auto index2_name = test::utils::uniq_id("index2");
|
|
2031
2600
|
auto alias_name = test::utils::uniq_id("alias");
|
|
2032
2601
|
|
|
2033
2602
|
{
|
|
2034
|
-
couchbase::management::search::index index;
|
|
2603
|
+
couchbase::core::management::search::index index;
|
|
2035
2604
|
index.name = index1_name;
|
|
2036
2605
|
index.type = "fulltext-index";
|
|
2037
2606
|
index.source_type = "couchbase";
|
|
2038
2607
|
index.source_name = integration.ctx.bucket;
|
|
2039
|
-
|
|
2608
|
+
if (integration.cluster_version().is_serverless_config_profile()) {
|
|
2609
|
+
index.plan_params_json = serverless_plan_params;
|
|
2610
|
+
}
|
|
2611
|
+
couchbase::core::operations::management::search_index_upsert_request req{};
|
|
2040
2612
|
req.index = index;
|
|
2041
2613
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2042
|
-
|
|
2614
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2043
2615
|
}
|
|
2044
2616
|
|
|
2045
2617
|
{
|
|
2046
|
-
couchbase::management::search::index index;
|
|
2618
|
+
couchbase::core::management::search::index index;
|
|
2047
2619
|
index.name = index1_name;
|
|
2048
2620
|
index.type = "fulltext-index";
|
|
2049
2621
|
index.source_type = "couchbase";
|
|
2050
2622
|
index.source_name = integration.ctx.bucket;
|
|
2051
|
-
|
|
2623
|
+
if (integration.cluster_version().is_serverless_config_profile()) {
|
|
2624
|
+
index.plan_params_json = serverless_plan_params;
|
|
2625
|
+
}
|
|
2626
|
+
couchbase::core::operations::management::search_index_upsert_request req{};
|
|
2052
2627
|
req.index = index;
|
|
2053
2628
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2054
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2629
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::index_exists);
|
|
2055
2630
|
}
|
|
2056
2631
|
|
|
2057
2632
|
{
|
|
2058
|
-
couchbase::management::search::index index;
|
|
2633
|
+
couchbase::core::management::search::index index;
|
|
2059
2634
|
index.name = index2_name;
|
|
2060
2635
|
index.type = "fulltext-index";
|
|
2061
2636
|
index.source_type = "couchbase";
|
|
2062
2637
|
index.source_name = integration.ctx.bucket;
|
|
2063
2638
|
index.plan_params_json = R"({ "indexPartition": 3 })";
|
|
2639
|
+
if (integration.cluster_version().is_serverless_config_profile()) {
|
|
2640
|
+
index.plan_params_json = serverless_plan_params;
|
|
2641
|
+
}
|
|
2064
2642
|
index.params_json = R"({ "store": { "indexType": "upside_down", "kvStoreName": "moss" }})";
|
|
2065
|
-
couchbase::operations::management::search_index_upsert_request req{};
|
|
2643
|
+
couchbase::core::operations::management::search_index_upsert_request req{};
|
|
2066
2644
|
req.index = index;
|
|
2067
2645
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2068
|
-
|
|
2646
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2647
|
+
if (resp.name != index2_name) {
|
|
2648
|
+
// FIXME: server 7.2 might automatically prepend "{scope}.{collection}." in front of the index name
|
|
2649
|
+
// to workaround it, we "patch" our variable with the name returned by the server
|
|
2650
|
+
index2_name = resp.name;
|
|
2651
|
+
}
|
|
2069
2652
|
}
|
|
2070
2653
|
|
|
2071
2654
|
{
|
|
2072
|
-
couchbase::management::search::index index;
|
|
2655
|
+
couchbase::core::management::search::index index;
|
|
2073
2656
|
index.name = alias_name;
|
|
2074
2657
|
index.type = "fulltext-alias";
|
|
2075
2658
|
index.source_type = "nil";
|
|
2076
|
-
index.params_json = couchbase::utils::json::generate(
|
|
2659
|
+
index.params_json = couchbase::core::utils::json::generate(
|
|
2077
2660
|
tao::json::value{ { "targets", { { index1_name, tao::json::empty_object }, { index2_name, tao::json::empty_object } } } });
|
|
2078
|
-
|
|
2661
|
+
if (integration.cluster_version().is_serverless_config_profile()) {
|
|
2662
|
+
index.plan_params_json = serverless_plan_params;
|
|
2663
|
+
}
|
|
2664
|
+
couchbase::core::operations::management::search_index_upsert_request req{};
|
|
2079
2665
|
req.index = index;
|
|
2080
2666
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2081
|
-
|
|
2667
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2082
2668
|
}
|
|
2083
2669
|
|
|
2084
2670
|
{
|
|
2085
|
-
couchbase::operations::management::search_index_get_request req{};
|
|
2671
|
+
couchbase::core::operations::management::search_index_get_request req{};
|
|
2086
2672
|
req.index_name = index1_name;
|
|
2087
2673
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2088
|
-
|
|
2674
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2089
2675
|
REQUIRE(resp.index.name == index1_name);
|
|
2090
2676
|
REQUIRE(resp.index.type == "fulltext-index");
|
|
2091
2677
|
}
|
|
2092
2678
|
|
|
2093
2679
|
{
|
|
2094
|
-
couchbase::operations::management::search_index_get_request req{};
|
|
2680
|
+
couchbase::core::operations::management::search_index_get_request req{};
|
|
2681
|
+
req.index_name = index2_name;
|
|
2682
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
2683
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2684
|
+
REQUIRE(resp.index.name == index2_name);
|
|
2685
|
+
REQUIRE(resp.index.type == "fulltext-index");
|
|
2686
|
+
}
|
|
2687
|
+
|
|
2688
|
+
{
|
|
2689
|
+
couchbase::core::operations::management::search_index_get_request req{};
|
|
2690
|
+
req.index_name = alias_name;
|
|
2691
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
2692
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2693
|
+
REQUIRE(resp.index.name == alias_name);
|
|
2694
|
+
REQUIRE(resp.index.type == "fulltext-alias");
|
|
2695
|
+
}
|
|
2696
|
+
|
|
2697
|
+
{
|
|
2698
|
+
couchbase::core::operations::management::search_index_get_request req{};
|
|
2095
2699
|
req.index_name = "missing_index";
|
|
2096
2700
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2097
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2701
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::index_not_found);
|
|
2098
2702
|
}
|
|
2099
2703
|
|
|
2100
2704
|
{
|
|
2101
|
-
couchbase::operations::management::search_index_get_all_request req{};
|
|
2705
|
+
couchbase::core::operations::management::search_index_get_all_request req{};
|
|
2102
2706
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2103
|
-
|
|
2707
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2104
2708
|
REQUIRE_FALSE(resp.indexes.empty());
|
|
2709
|
+
|
|
2710
|
+
REQUIRE(1 == std::count_if(
|
|
2711
|
+
resp.indexes.begin(), resp.indexes.end(), [&index1_name](const auto& i) { return i.name == index1_name; }));
|
|
2712
|
+
REQUIRE(1 == std::count_if(
|
|
2713
|
+
resp.indexes.begin(), resp.indexes.end(), [&index2_name](const auto& i) { return i.name == index2_name; }));
|
|
2714
|
+
REQUIRE(1 ==
|
|
2715
|
+
std::count_if(resp.indexes.begin(), resp.indexes.end(), [&alias_name](const auto& i) { return i.name == alias_name; }));
|
|
2105
2716
|
}
|
|
2106
2717
|
|
|
2107
2718
|
{
|
|
2108
|
-
couchbase::operations::management::search_index_drop_request req{};
|
|
2719
|
+
couchbase::core::operations::management::search_index_drop_request req{};
|
|
2109
2720
|
req.index_name = index1_name;
|
|
2110
2721
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2111
|
-
|
|
2722
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2112
2723
|
}
|
|
2113
2724
|
|
|
2114
2725
|
{
|
|
2115
|
-
couchbase::operations::management::search_index_drop_request req{};
|
|
2726
|
+
couchbase::core::operations::management::search_index_drop_request req{};
|
|
2116
2727
|
req.index_name = index2_name;
|
|
2117
2728
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2118
|
-
|
|
2729
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2119
2730
|
}
|
|
2120
2731
|
|
|
2121
2732
|
{
|
|
2122
|
-
couchbase::operations::management::search_index_drop_request req{};
|
|
2733
|
+
couchbase::core::operations::management::search_index_drop_request req{};
|
|
2123
2734
|
req.index_name = alias_name;
|
|
2124
2735
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2125
|
-
|
|
2736
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2126
2737
|
}
|
|
2127
2738
|
|
|
2128
|
-
couchbase::operations::management::search_index_drop_request req{};
|
|
2739
|
+
couchbase::core::operations::management::search_index_drop_request req{};
|
|
2129
2740
|
req.index_name = "missing_index";
|
|
2130
2741
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2131
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2742
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::index_not_found);
|
|
2132
2743
|
}
|
|
2133
2744
|
|
|
2134
2745
|
SECTION("upsert index no name")
|
|
2135
2746
|
{
|
|
2136
|
-
couchbase::management::search::index index;
|
|
2747
|
+
couchbase::core::management::search::index index;
|
|
2137
2748
|
index.type = "fulltext-index";
|
|
2138
2749
|
index.source_type = "couchbase";
|
|
2139
2750
|
index.source_name = integration.ctx.bucket;
|
|
2140
|
-
|
|
2751
|
+
if (integration.cluster_version().is_serverless_config_profile()) {
|
|
2752
|
+
index.plan_params_json = serverless_plan_params;
|
|
2753
|
+
}
|
|
2754
|
+
couchbase::core::operations::management::search_index_upsert_request req{};
|
|
2141
2755
|
req.index = index;
|
|
2142
2756
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2143
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2757
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::invalid_argument);
|
|
2144
2758
|
}
|
|
2145
2759
|
|
|
2146
2760
|
SECTION("control")
|
|
@@ -2148,78 +2762,81 @@ TEST_CASE("integration: search index management", "[integration]")
|
|
|
2148
2762
|
auto index_name = test::utils::uniq_id("index");
|
|
2149
2763
|
|
|
2150
2764
|
{
|
|
2151
|
-
couchbase::management::search::index index;
|
|
2765
|
+
couchbase::core::management::search::index index;
|
|
2152
2766
|
index.name = index_name;
|
|
2153
2767
|
index.type = "fulltext-index";
|
|
2154
2768
|
index.source_type = "couchbase";
|
|
2155
2769
|
index.source_name = integration.ctx.bucket;
|
|
2156
|
-
|
|
2770
|
+
if (integration.cluster_version().is_serverless_config_profile()) {
|
|
2771
|
+
index.plan_params_json = serverless_plan_params;
|
|
2772
|
+
}
|
|
2773
|
+
couchbase::core::operations::management::search_index_upsert_request req{};
|
|
2157
2774
|
req.index = index;
|
|
2158
2775
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2159
|
-
|
|
2776
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2160
2777
|
}
|
|
2161
2778
|
|
|
2162
2779
|
SECTION("ingest control")
|
|
2163
2780
|
{
|
|
2164
2781
|
{
|
|
2165
|
-
couchbase::operations::management::search_index_control_ingest_request req{};
|
|
2782
|
+
couchbase::core::operations::management::search_index_control_ingest_request req{};
|
|
2166
2783
|
req.index_name = index_name;
|
|
2167
2784
|
req.pause = true;
|
|
2168
2785
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2169
|
-
|
|
2786
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2170
2787
|
}
|
|
2171
2788
|
|
|
2172
2789
|
{
|
|
2173
|
-
couchbase::operations::management::search_index_control_ingest_request req{};
|
|
2790
|
+
couchbase::core::operations::management::search_index_control_ingest_request req{};
|
|
2174
2791
|
req.index_name = index_name;
|
|
2175
2792
|
req.pause = false;
|
|
2176
2793
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2177
|
-
|
|
2794
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2178
2795
|
}
|
|
2179
2796
|
}
|
|
2180
2797
|
|
|
2181
2798
|
SECTION("query control")
|
|
2182
2799
|
{
|
|
2183
2800
|
{
|
|
2184
|
-
couchbase::operations::management::search_index_control_query_request req{};
|
|
2801
|
+
couchbase::core::operations::management::search_index_control_query_request req{};
|
|
2185
2802
|
req.index_name = index_name;
|
|
2186
2803
|
req.allow = true;
|
|
2187
2804
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2188
|
-
|
|
2805
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2189
2806
|
}
|
|
2190
2807
|
|
|
2191
2808
|
{
|
|
2192
|
-
couchbase::operations::management::search_index_control_query_request req{};
|
|
2809
|
+
couchbase::core::operations::management::search_index_control_query_request req{};
|
|
2193
2810
|
req.index_name = index_name;
|
|
2194
2811
|
req.allow = false;
|
|
2195
2812
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2196
|
-
|
|
2813
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2197
2814
|
}
|
|
2198
2815
|
}
|
|
2199
2816
|
|
|
2200
2817
|
SECTION("partition control")
|
|
2201
2818
|
{
|
|
2202
2819
|
{
|
|
2203
|
-
couchbase::operations::management::search_index_control_plan_freeze_request req{};
|
|
2820
|
+
couchbase::core::operations::management::search_index_control_plan_freeze_request req{};
|
|
2204
2821
|
req.index_name = index_name;
|
|
2205
2822
|
req.freeze = true;
|
|
2206
2823
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2207
|
-
|
|
2824
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2208
2825
|
}
|
|
2209
2826
|
|
|
2210
2827
|
{
|
|
2211
|
-
couchbase::operations::management::search_index_control_plan_freeze_request req{};
|
|
2828
|
+
couchbase::core::operations::management::search_index_control_plan_freeze_request req{};
|
|
2212
2829
|
req.index_name = index_name;
|
|
2213
2830
|
req.freeze = false;
|
|
2214
2831
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2215
|
-
|
|
2832
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2216
2833
|
}
|
|
2217
2834
|
}
|
|
2218
2835
|
|
|
2219
|
-
couchbase::operations::management::search_index_drop_request req{};
|
|
2836
|
+
couchbase::core::operations::management::search_index_drop_request req{};
|
|
2220
2837
|
req.index_name = index_name;
|
|
2221
2838
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2222
|
-
|
|
2839
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2223
2840
|
}
|
|
2224
2841
|
}
|
|
2225
2842
|
|
|
@@ -2228,12 +2845,12 @@ wait_for_search_pindexes_ready(test::utils::integration_test_guard& integration,
|
|
|
2228
2845
|
{
|
|
2229
2846
|
return test::utils::wait_until(
|
|
2230
2847
|
[&integration, &index_name]() {
|
|
2231
|
-
couchbase::operations::management::search_index_stats_request req{};
|
|
2848
|
+
couchbase::core::operations::management::search_index_stats_request req{};
|
|
2232
2849
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2233
2850
|
if (resp.ctx.ec || resp.stats.empty()) {
|
|
2234
2851
|
return false;
|
|
2235
2852
|
}
|
|
2236
|
-
auto stats = couchbase::utils::json::parse(resp.stats);
|
|
2853
|
+
auto stats = couchbase::core::utils::json::parse(resp.stats);
|
|
2237
2854
|
const auto* num_pindexes_actual = stats.find(fmt::format("{}:{}:num_pindexes_actual", integration.ctx.bucket, index_name));
|
|
2238
2855
|
if (num_pindexes_actual == nullptr || !num_pindexes_actual->is_number()) {
|
|
2239
2856
|
return false;
|
|
@@ -2258,29 +2875,32 @@ TEST_CASE("integration: search index management analyze document", "[integration
|
|
|
2258
2875
|
auto index_name = test::utils::uniq_id("index");
|
|
2259
2876
|
|
|
2260
2877
|
{
|
|
2261
|
-
couchbase::management::search::index index;
|
|
2878
|
+
couchbase::core::management::search::index index;
|
|
2262
2879
|
index.name = index_name;
|
|
2263
2880
|
index.type = "fulltext-index";
|
|
2264
2881
|
index.source_type = "couchbase";
|
|
2265
2882
|
index.source_name = integration.ctx.bucket;
|
|
2266
|
-
|
|
2883
|
+
if (integration.cluster_version().is_serverless_config_profile()) {
|
|
2884
|
+
index.plan_params_json = serverless_plan_params;
|
|
2885
|
+
}
|
|
2886
|
+
couchbase::core::operations::management::search_index_upsert_request req{};
|
|
2267
2887
|
req.index = index;
|
|
2268
2888
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2269
|
-
|
|
2889
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2270
2890
|
}
|
|
2271
2891
|
|
|
2272
2892
|
REQUIRE(wait_for_search_pindexes_ready(integration, index_name));
|
|
2273
2893
|
|
|
2274
|
-
couchbase::operations::management::search_index_analyze_document_response resp;
|
|
2894
|
+
couchbase::core::operations::management::search_index_analyze_document_response resp;
|
|
2275
2895
|
bool operation_completed = test::utils::wait_until([&integration, &index_name, &resp]() {
|
|
2276
|
-
couchbase::operations::management::search_index_analyze_document_request req{};
|
|
2896
|
+
couchbase::core::operations::management::search_index_analyze_document_request req{};
|
|
2277
2897
|
req.index_name = index_name;
|
|
2278
2898
|
req.encoded_document = R"({ "name": "hello world" })";
|
|
2279
2899
|
resp = test::utils::execute(integration.cluster, req);
|
|
2280
|
-
return resp.ctx.ec != couchbase::
|
|
2900
|
+
return resp.ctx.ec != couchbase::errc::common::internal_server_failure;
|
|
2281
2901
|
});
|
|
2282
2902
|
REQUIRE(operation_completed);
|
|
2283
|
-
|
|
2903
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2284
2904
|
REQUIRE_FALSE(resp.analysis.empty());
|
|
2285
2905
|
}
|
|
2286
2906
|
|
|
@@ -2294,37 +2914,37 @@ TEST_CASE("integration: freeform HTTP request", "[integration]")
|
|
|
2294
2914
|
|
|
2295
2915
|
SECTION("key_value")
|
|
2296
2916
|
{
|
|
2297
|
-
couchbase::operations::management::freeform_request req{};
|
|
2298
|
-
req.type = couchbase::service_type::key_value;
|
|
2917
|
+
couchbase::core::operations::management::freeform_request req{};
|
|
2918
|
+
req.type = couchbase::core::service_type::key_value;
|
|
2299
2919
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2300
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
2920
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::common::invalid_argument);
|
|
2301
2921
|
}
|
|
2302
2922
|
|
|
2303
2923
|
if (integration.cluster_version().supports_analytics() && integration.has_analytics_service()) {
|
|
2304
2924
|
SECTION("analytics")
|
|
2305
2925
|
{
|
|
2306
|
-
couchbase::operations::management::freeform_request req{};
|
|
2307
|
-
req.type = couchbase::service_type::analytics;
|
|
2926
|
+
couchbase::core::operations::management::freeform_request req{};
|
|
2927
|
+
req.type = couchbase::core::service_type::analytics;
|
|
2308
2928
|
req.method = "GET";
|
|
2309
2929
|
req.path = "/admin/ping";
|
|
2310
2930
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2311
|
-
|
|
2931
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2312
2932
|
REQUIRE(resp.status == 200);
|
|
2313
2933
|
REQUIRE_FALSE(resp.body.empty());
|
|
2314
2934
|
INFO(resp.body)
|
|
2315
|
-
auto result = couchbase::utils::json::parse(resp.body);
|
|
2935
|
+
auto result = couchbase::core::utils::json::parse(resp.body);
|
|
2316
2936
|
REQUIRE(result.is_object());
|
|
2317
2937
|
}
|
|
2318
2938
|
}
|
|
2319
2939
|
|
|
2320
2940
|
SECTION("search")
|
|
2321
2941
|
{
|
|
2322
|
-
couchbase::operations::management::freeform_request req{};
|
|
2323
|
-
req.type = couchbase::service_type::search;
|
|
2942
|
+
couchbase::core::operations::management::freeform_request req{};
|
|
2943
|
+
req.type = couchbase::core::service_type::search;
|
|
2324
2944
|
req.method = "GET";
|
|
2325
2945
|
req.path = "/api/ping";
|
|
2326
2946
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2327
|
-
|
|
2947
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2328
2948
|
REQUIRE(resp.status == 200);
|
|
2329
2949
|
REQUIRE(resp.body.empty());
|
|
2330
2950
|
REQUIRE_FALSE(resp.headers.empty());
|
|
@@ -2333,49 +2953,51 @@ TEST_CASE("integration: freeform HTTP request", "[integration]")
|
|
|
2333
2953
|
|
|
2334
2954
|
SECTION("query")
|
|
2335
2955
|
{
|
|
2336
|
-
couchbase::operations::management::freeform_request req{};
|
|
2337
|
-
req.type = couchbase::service_type::query;
|
|
2956
|
+
couchbase::core::operations::management::freeform_request req{};
|
|
2957
|
+
req.type = couchbase::core::service_type::query;
|
|
2338
2958
|
req.method = "GET";
|
|
2339
2959
|
req.path = "/admin/ping";
|
|
2340
2960
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2341
|
-
|
|
2961
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2342
2962
|
REQUIRE(resp.status == 200);
|
|
2343
2963
|
REQUIRE_FALSE(resp.body.empty());
|
|
2344
2964
|
INFO(resp.body)
|
|
2345
|
-
auto result = couchbase::utils::json::parse(resp.body);
|
|
2965
|
+
auto result = couchbase::core::utils::json::parse(resp.body);
|
|
2346
2966
|
REQUIRE(result.is_object());
|
|
2347
2967
|
}
|
|
2348
2968
|
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2969
|
+
if (integration.cluster_version().supports_views()) {
|
|
2970
|
+
SECTION("view")
|
|
2971
|
+
{
|
|
2972
|
+
auto document_name = test::utils::uniq_id("design_document");
|
|
2973
|
+
auto view_name = test::utils::uniq_id("view");
|
|
2353
2974
|
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2975
|
+
couchbase::core::operations::management::freeform_request req{};
|
|
2976
|
+
req.type = couchbase::core::service_type::view;
|
|
2977
|
+
req.method = "POST";
|
|
2978
|
+
req.path = fmt::format("/{}/_design/{}/_view/{}", integration.ctx.bucket, document_name, view_name);
|
|
2979
|
+
req.body = R"({"keys":["foo","bar"]})";
|
|
2980
|
+
auto resp = test::utils::execute(integration.cluster, req);
|
|
2981
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2982
|
+
REQUIRE(resp.status == 404);
|
|
2983
|
+
REQUIRE_FALSE(resp.body.empty());
|
|
2984
|
+
auto result = couchbase::core::utils::json::parse(resp.body);
|
|
2985
|
+
INFO(resp.body)
|
|
2986
|
+
REQUIRE(result["error"].get_string() == "not_found");
|
|
2987
|
+
}
|
|
2366
2988
|
}
|
|
2367
2989
|
|
|
2368
2990
|
SECTION("management")
|
|
2369
2991
|
{
|
|
2370
|
-
couchbase::operations::management::freeform_request req{};
|
|
2371
|
-
req.type = couchbase::service_type::management;
|
|
2992
|
+
couchbase::core::operations::management::freeform_request req{};
|
|
2993
|
+
req.type = couchbase::core::service_type::management;
|
|
2372
2994
|
req.method = "GET";
|
|
2373
2995
|
req.path = "/pools";
|
|
2374
2996
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2375
|
-
|
|
2997
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2376
2998
|
REQUIRE(resp.status == 200);
|
|
2377
2999
|
REQUIRE_FALSE(resp.body.empty());
|
|
2378
|
-
auto result = couchbase::utils::json::parse(resp.body);
|
|
3000
|
+
auto result = couchbase::core::utils::json::parse(resp.body);
|
|
2379
3001
|
INFO(resp.body)
|
|
2380
3002
|
REQUIRE(result.find("uuid") != nullptr);
|
|
2381
3003
|
}
|
|
@@ -2385,18 +3007,18 @@ TEST_CASE("integration: freeform HTTP request", "[integration]")
|
|
|
2385
3007
|
{
|
|
2386
3008
|
auto scope_name = test::utils::uniq_id("freeform_scope");
|
|
2387
3009
|
|
|
2388
|
-
couchbase::operations::management::freeform_request req{};
|
|
2389
|
-
req.type = couchbase::service_type::management;
|
|
3010
|
+
couchbase::core::operations::management::freeform_request req{};
|
|
3011
|
+
req.type = couchbase::core::service_type::management;
|
|
2390
3012
|
req.method = "POST";
|
|
2391
3013
|
req.path = fmt::format("/pools/default/buckets/{}/scopes", integration.ctx.bucket);
|
|
2392
3014
|
req.headers["content-type"] = "application/x-www-form-urlencoded";
|
|
2393
|
-
req.body = fmt::format("name={}", couchbase::utils::string_codec::form_encode(scope_name));
|
|
3015
|
+
req.body = fmt::format("name={}", couchbase::core::utils::string_codec::form_encode(scope_name));
|
|
2394
3016
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2395
|
-
|
|
3017
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2396
3018
|
REQUIRE(resp.status == 200);
|
|
2397
3019
|
REQUIRE_FALSE(resp.headers.empty());
|
|
2398
3020
|
REQUIRE(resp.headers["content-type"].find("application/json") != std::string::npos);
|
|
2399
|
-
auto result = couchbase::utils::json::parse(resp.body);
|
|
3021
|
+
auto result = couchbase::core::utils::json::parse(resp.body);
|
|
2400
3022
|
REQUIRE(result.is_object());
|
|
2401
3023
|
REQUIRE(result.find("uid") != nullptr);
|
|
2402
3024
|
}
|
|
@@ -2406,27 +3028,27 @@ TEST_CASE("integration: freeform HTTP request", "[integration]")
|
|
|
2406
3028
|
SECTION("eventing")
|
|
2407
3029
|
{
|
|
2408
3030
|
|
|
2409
|
-
couchbase::operations::management::freeform_request req{};
|
|
2410
|
-
req.type = couchbase::service_type::eventing;
|
|
3031
|
+
couchbase::core::operations::management::freeform_request req{};
|
|
3032
|
+
req.type = couchbase::core::service_type::eventing;
|
|
2411
3033
|
req.method = "GET";
|
|
2412
3034
|
req.path = "/api/v1/functions";
|
|
2413
3035
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2414
|
-
|
|
3036
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2415
3037
|
REQUIRE(resp.status == 200);
|
|
2416
3038
|
REQUIRE_FALSE(resp.body.empty());
|
|
2417
|
-
auto result = couchbase::utils::json::parse(resp.body);
|
|
3039
|
+
auto result = couchbase::core::utils::json::parse(resp.body);
|
|
2418
3040
|
INFO(resp.body)
|
|
2419
3041
|
REQUIRE(result.is_array());
|
|
2420
3042
|
}
|
|
2421
3043
|
}
|
|
2422
3044
|
}
|
|
2423
3045
|
|
|
2424
|
-
static couchbase::operations::management::eventing_get_function_response
|
|
3046
|
+
static couchbase::core::operations::management::eventing_get_function_response
|
|
2425
3047
|
wait_for_function_created(test::utils::integration_test_guard& integration, const std::string& function_name)
|
|
2426
3048
|
{
|
|
2427
|
-
couchbase::operations::management::eventing_get_function_response resp{};
|
|
3049
|
+
couchbase::core::operations::management::eventing_get_function_response resp{};
|
|
2428
3050
|
test::utils::wait_until([&integration, &resp, function_name]() {
|
|
2429
|
-
couchbase::operations::management::eventing_get_function_request req{ function_name };
|
|
3051
|
+
couchbase::core::operations::management::eventing_get_function_request req{ function_name };
|
|
2430
3052
|
resp = test::utils::execute(integration.cluster, req);
|
|
2431
3053
|
return !resp.ctx.ec;
|
|
2432
3054
|
});
|
|
@@ -2436,11 +3058,11 @@ wait_for_function_created(test::utils::integration_test_guard& integration, cons
|
|
|
2436
3058
|
static bool
|
|
2437
3059
|
wait_for_function_reach_status(test::utils::integration_test_guard& integration,
|
|
2438
3060
|
const std::string& function_name,
|
|
2439
|
-
couchbase::management::eventing::function_status status)
|
|
3061
|
+
couchbase::core::management::eventing::function_status status)
|
|
2440
3062
|
{
|
|
2441
3063
|
return test::utils::wait_until(
|
|
2442
3064
|
[&integration, function_name, status]() {
|
|
2443
|
-
couchbase::operations::management::eventing_get_status_request req{};
|
|
3065
|
+
couchbase::core::operations::management::eventing_get_status_request req{};
|
|
2444
3066
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2445
3067
|
if (resp.ctx.ec) {
|
|
2446
3068
|
return false;
|
|
@@ -2473,39 +3095,39 @@ TEST_CASE("integration: eventing functions management", "[integration]")
|
|
|
2473
3095
|
auto function_name = test::utils::uniq_id("name");
|
|
2474
3096
|
|
|
2475
3097
|
{
|
|
2476
|
-
couchbase::operations::management::eventing_drop_function_request req{ function_name };
|
|
3098
|
+
couchbase::core::operations::management::eventing_drop_function_request req{ function_name };
|
|
2477
3099
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2478
3100
|
if (integration.cluster_version().is_cheshire_cat()) {
|
|
2479
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
3101
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_not_deployed);
|
|
2480
3102
|
} else {
|
|
2481
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
3103
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_not_found);
|
|
2482
3104
|
}
|
|
2483
3105
|
}
|
|
2484
3106
|
|
|
2485
3107
|
{
|
|
2486
|
-
couchbase::operations::management::eventing_get_function_request req{ function_name };
|
|
3108
|
+
couchbase::core::operations::management::eventing_get_function_request req{ function_name };
|
|
2487
3109
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2488
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
3110
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_not_found);
|
|
2489
3111
|
}
|
|
2490
3112
|
|
|
2491
3113
|
auto meta_bucket_name = test::utils::uniq_id("meta");
|
|
2492
3114
|
{
|
|
2493
3115
|
|
|
2494
|
-
couchbase::management::cluster::bucket_settings bucket_settings;
|
|
3116
|
+
couchbase::core::management::cluster::bucket_settings bucket_settings;
|
|
2495
3117
|
bucket_settings.name = meta_bucket_name;
|
|
2496
3118
|
bucket_settings.ram_quota_mb = 256;
|
|
2497
3119
|
|
|
2498
3120
|
{
|
|
2499
|
-
couchbase::operations::management::bucket_create_request req;
|
|
3121
|
+
couchbase::core::operations::management::bucket_create_request req;
|
|
2500
3122
|
req.bucket = bucket_settings;
|
|
2501
3123
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2502
|
-
|
|
3124
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2503
3125
|
}
|
|
2504
3126
|
}
|
|
2505
3127
|
|
|
2506
3128
|
{
|
|
2507
3129
|
auto resp = wait_for_bucket_created(integration, meta_bucket_name);
|
|
2508
|
-
|
|
3130
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2509
3131
|
}
|
|
2510
3132
|
|
|
2511
3133
|
std::string source_code = R"(
|
|
@@ -2519,38 +3141,38 @@ function OnDelete(meta, options) {
|
|
|
2519
3141
|
)";
|
|
2520
3142
|
|
|
2521
3143
|
{
|
|
2522
|
-
couchbase::operations::management::eventing_upsert_function_request req{};
|
|
3144
|
+
couchbase::core::operations::management::eventing_upsert_function_request req{};
|
|
2523
3145
|
req.function.source_keyspace.bucket = integration.ctx.bucket;
|
|
2524
3146
|
req.function.metadata_keyspace.bucket = meta_bucket_name;
|
|
2525
3147
|
req.function.name = function_name;
|
|
2526
3148
|
req.function.code = source_code;
|
|
2527
3149
|
req.function.settings.handler_headers = { "// generated by Couchbase C++ SDK" };
|
|
2528
|
-
req.function.constant_bindings.emplace_back(couchbase::management::eventing::function_constant_binding{ "PI", "3.14" });
|
|
2529
|
-
req.function.bucket_bindings.emplace_back(couchbase::management::eventing::function_bucket_binding{
|
|
2530
|
-
"data", { integration.ctx.bucket }, couchbase::management::eventing::function_bucket_access::read_write });
|
|
3150
|
+
req.function.constant_bindings.emplace_back(couchbase::core::management::eventing::function_constant_binding{ "PI", "3.14" });
|
|
3151
|
+
req.function.bucket_bindings.emplace_back(couchbase::core::management::eventing::function_bucket_binding{
|
|
3152
|
+
"data", { integration.ctx.bucket }, couchbase::core::management::eventing::function_bucket_access::read_write });
|
|
2531
3153
|
req.function.url_bindings.emplace_back(
|
|
2532
|
-
couchbase::management::eventing::function_url_binding{ "home", "https://couchbase.com" });
|
|
3154
|
+
couchbase::core::management::eventing::function_url_binding{ "home", "https://couchbase.com" });
|
|
2533
3155
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2534
|
-
|
|
3156
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2535
3157
|
}
|
|
2536
3158
|
|
|
2537
3159
|
{
|
|
2538
3160
|
auto resp = wait_for_function_created(integration, function_name);
|
|
2539
|
-
|
|
3161
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2540
3162
|
}
|
|
2541
3163
|
|
|
2542
3164
|
{
|
|
2543
|
-
couchbase::operations::management::eventing_get_all_functions_request req{};
|
|
3165
|
+
couchbase::core::operations::management::eventing_get_all_functions_request req{};
|
|
2544
3166
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2545
|
-
|
|
3167
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2546
3168
|
auto function = std::find_if(
|
|
2547
|
-
resp.functions.begin(), resp.functions.end(), [function_name](const auto& fun) { return function_name == fun.name; });
|
|
3169
|
+
resp.functions.begin(), resp.functions.end(), [&function_name](const auto& fun) { return function_name == fun.name; });
|
|
2548
3170
|
REQUIRE(function != resp.functions.end());
|
|
2549
3171
|
REQUIRE(function->code == source_code);
|
|
2550
3172
|
REQUIRE(function->source_keyspace.bucket == integration.ctx.bucket);
|
|
2551
3173
|
REQUIRE(function->metadata_keyspace.bucket == meta_bucket_name);
|
|
2552
|
-
REQUIRE(function->settings.deployment_status == couchbase::management::eventing::function_deployment_status::undeployed);
|
|
2553
|
-
REQUIRE(function->settings.processing_status == couchbase::management::eventing::function_processing_status::paused);
|
|
3174
|
+
REQUIRE(function->settings.deployment_status == couchbase::core::management::eventing::function_deployment_status::undeployed);
|
|
3175
|
+
REQUIRE(function->settings.processing_status == couchbase::core::management::eventing::function_processing_status::paused);
|
|
2554
3176
|
REQUIRE(!function->settings.handler_headers.empty());
|
|
2555
3177
|
REQUIRE(function->settings.handler_headers[0] == "// generated by Couchbase C++ SDK");
|
|
2556
3178
|
REQUIRE(!function->constant_bindings.empty());
|
|
@@ -2559,99 +3181,102 @@ function OnDelete(meta, options) {
|
|
|
2559
3181
|
REQUIRE(!function->bucket_bindings.empty());
|
|
2560
3182
|
REQUIRE(function->bucket_bindings[0].alias == "data");
|
|
2561
3183
|
REQUIRE(function->bucket_bindings[0].name.bucket == "default");
|
|
2562
|
-
REQUIRE(function->bucket_bindings[0].access == couchbase::management::eventing::function_bucket_access::read_write);
|
|
3184
|
+
REQUIRE(function->bucket_bindings[0].access == couchbase::core::management::eventing::function_bucket_access::read_write);
|
|
2563
3185
|
REQUIRE(!function->url_bindings.empty());
|
|
2564
3186
|
REQUIRE(function->url_bindings[0].alias == "home");
|
|
2565
3187
|
REQUIRE(function->url_bindings[0].hostname == "https://couchbase.com");
|
|
2566
|
-
REQUIRE(std::holds_alternative<couchbase::management::eventing::function_url_no_auth>(function->url_bindings[0].auth));
|
|
3188
|
+
REQUIRE(std::holds_alternative<couchbase::core::management::eventing::function_url_no_auth>(function->url_bindings[0].auth));
|
|
2567
3189
|
}
|
|
2568
3190
|
|
|
2569
3191
|
{
|
|
2570
|
-
couchbase::operations::management::eventing_get_status_request req{};
|
|
3192
|
+
couchbase::core::operations::management::eventing_get_status_request req{};
|
|
2571
3193
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2572
|
-
|
|
3194
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2573
3195
|
REQUIRE(resp.status.num_eventing_nodes > 0);
|
|
2574
|
-
auto function = std::find_if(resp.status.functions.begin(), resp.status.functions.end(), [function_name](const auto& fun) {
|
|
3196
|
+
auto function = std::find_if(resp.status.functions.begin(), resp.status.functions.end(), [&function_name](const auto& fun) {
|
|
2575
3197
|
return function_name == fun.name;
|
|
2576
3198
|
});
|
|
2577
3199
|
REQUIRE(function != resp.status.functions.end());
|
|
2578
|
-
REQUIRE(function->status == couchbase::management::eventing::function_status::undeployed);
|
|
2579
|
-
REQUIRE(function->deployment_status == couchbase::management::eventing::function_deployment_status::undeployed);
|
|
2580
|
-
REQUIRE(function->processing_status == couchbase::management::eventing::function_processing_status::paused);
|
|
3200
|
+
REQUIRE(function->status == couchbase::core::management::eventing::function_status::undeployed);
|
|
3201
|
+
REQUIRE(function->deployment_status == couchbase::core::management::eventing::function_deployment_status::undeployed);
|
|
3202
|
+
REQUIRE(function->processing_status == couchbase::core::management::eventing::function_processing_status::paused);
|
|
2581
3203
|
}
|
|
2582
3204
|
|
|
2583
3205
|
{
|
|
2584
|
-
couchbase::operations::management::eventing_undeploy_function_request req{ function_name };
|
|
3206
|
+
couchbase::core::operations::management::eventing_undeploy_function_request req{ function_name };
|
|
2585
3207
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2586
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
3208
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_not_deployed);
|
|
2587
3209
|
}
|
|
2588
3210
|
|
|
2589
3211
|
{
|
|
2590
|
-
couchbase::operations::management::eventing_deploy_function_request req{ function_name };
|
|
3212
|
+
couchbase::core::operations::management::eventing_deploy_function_request req{ function_name };
|
|
2591
3213
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2592
|
-
|
|
3214
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2593
3215
|
}
|
|
2594
3216
|
|
|
2595
|
-
REQUIRE(
|
|
3217
|
+
REQUIRE(
|
|
3218
|
+
wait_for_function_reach_status(integration, function_name, couchbase::core::management::eventing::function_status::deployed));
|
|
2596
3219
|
|
|
2597
3220
|
{
|
|
2598
|
-
couchbase::operations::management::eventing_drop_function_request req{ function_name };
|
|
3221
|
+
couchbase::core::operations::management::eventing_drop_function_request req{ function_name };
|
|
2599
3222
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2600
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
3223
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_deployed);
|
|
2601
3224
|
}
|
|
2602
3225
|
|
|
2603
3226
|
{
|
|
2604
|
-
couchbase::operations::management::eventing_resume_function_request req{ function_name };
|
|
3227
|
+
couchbase::core::operations::management::eventing_resume_function_request req{ function_name };
|
|
2605
3228
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2606
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
3229
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_deployed);
|
|
2607
3230
|
}
|
|
2608
3231
|
|
|
2609
3232
|
{
|
|
2610
|
-
couchbase::operations::management::eventing_pause_function_request req{ function_name };
|
|
3233
|
+
couchbase::core::operations::management::eventing_pause_function_request req{ function_name };
|
|
2611
3234
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2612
|
-
|
|
3235
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2613
3236
|
}
|
|
2614
3237
|
|
|
2615
|
-
REQUIRE(wait_for_function_reach_status(integration, function_name, couchbase::management::eventing::function_status::paused));
|
|
3238
|
+
REQUIRE(wait_for_function_reach_status(integration, function_name, couchbase::core::management::eventing::function_status::paused));
|
|
2616
3239
|
|
|
2617
3240
|
{
|
|
2618
|
-
couchbase::operations::management::eventing_pause_function_request req{ function_name };
|
|
3241
|
+
couchbase::core::operations::management::eventing_pause_function_request req{ function_name };
|
|
2619
3242
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2620
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
3243
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_paused);
|
|
2621
3244
|
}
|
|
2622
3245
|
|
|
2623
3246
|
{
|
|
2624
|
-
couchbase::operations::management::eventing_resume_function_request req{ function_name };
|
|
3247
|
+
couchbase::core::operations::management::eventing_resume_function_request req{ function_name };
|
|
2625
3248
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2626
|
-
|
|
3249
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2627
3250
|
}
|
|
2628
3251
|
|
|
2629
|
-
REQUIRE(
|
|
3252
|
+
REQUIRE(
|
|
3253
|
+
wait_for_function_reach_status(integration, function_name, couchbase::core::management::eventing::function_status::deployed));
|
|
2630
3254
|
|
|
2631
3255
|
{
|
|
2632
|
-
couchbase::operations::management::eventing_undeploy_function_request req{ function_name };
|
|
3256
|
+
couchbase::core::operations::management::eventing_undeploy_function_request req{ function_name };
|
|
2633
3257
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2634
|
-
|
|
3258
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2635
3259
|
}
|
|
2636
3260
|
|
|
2637
|
-
REQUIRE(
|
|
3261
|
+
REQUIRE(
|
|
3262
|
+
wait_for_function_reach_status(integration, function_name, couchbase::core::management::eventing::function_status::undeployed));
|
|
2638
3263
|
|
|
2639
3264
|
{
|
|
2640
|
-
couchbase::operations::management::eventing_drop_function_request req{ function_name };
|
|
3265
|
+
couchbase::core::operations::management::eventing_drop_function_request req{ function_name };
|
|
2641
3266
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2642
|
-
|
|
3267
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2643
3268
|
}
|
|
2644
3269
|
|
|
2645
3270
|
{
|
|
2646
|
-
couchbase::operations::management::eventing_get_function_request req{ function_name };
|
|
3271
|
+
couchbase::core::operations::management::eventing_get_function_request req{ function_name };
|
|
2647
3272
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2648
|
-
REQUIRE(resp.ctx.ec == couchbase::
|
|
3273
|
+
REQUIRE(resp.ctx.ec == couchbase::errc::management::eventing_function_not_found);
|
|
2649
3274
|
}
|
|
2650
3275
|
|
|
2651
3276
|
{
|
|
2652
|
-
couchbase::operations::management::bucket_drop_request req{ meta_bucket_name };
|
|
3277
|
+
couchbase::core::operations::management::bucket_drop_request req{ meta_bucket_name };
|
|
2653
3278
|
auto resp = test::utils::execute(integration.cluster, req);
|
|
2654
|
-
|
|
3279
|
+
REQUIRE_SUCCESS(resp.ctx.ec);
|
|
2655
3280
|
}
|
|
2656
3281
|
}
|
|
2657
3282
|
}
|