elasticsearch-api 7.17.11 → 8.0.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -10
- data/README.md +26 -15
- data/Rakefile +21 -56
- data/api-spec-testing/README.md +118 -0
- data/api-spec-testing/logging.rb +28 -0
- data/api-spec-testing/rspec_matchers.rb +312 -0
- data/api-spec-testing/test_file/action.rb +168 -0
- data/api-spec-testing/test_file/task_group.rb +340 -0
- data/api-spec-testing/test_file/test.rb +295 -0
- data/api-spec-testing/test_file.rb +173 -0
- data/api-spec-testing/wipe_cluster.rb +388 -0
- data/elasticsearch-api.gemspec +11 -19
- data/lib/elasticsearch/api/actions/async_search/delete.rb +51 -0
- data/lib/elasticsearch/api/actions/async_search/get.rb +54 -0
- data/lib/elasticsearch/api/actions/async_search/status.rb +51 -0
- data/lib/elasticsearch/api/actions/async_search/submit.rb +95 -0
- data/lib/elasticsearch/api/actions/autoscaling/delete_autoscaling_policy.rb +51 -0
- data/lib/elasticsearch/api/actions/autoscaling/get_autoscaling_capacity.rb +46 -0
- data/lib/elasticsearch/api/actions/autoscaling/get_autoscaling_policy.rb +51 -0
- data/lib/elasticsearch/api/actions/autoscaling/put_autoscaling_policy.rb +53 -0
- data/lib/elasticsearch/api/actions/bulk.rb +8 -21
- data/lib/elasticsearch/api/actions/cat/aliases.rb +7 -17
- data/lib/elasticsearch/api/actions/cat/allocation.rb +7 -18
- data/lib/elasticsearch/api/actions/cat/count.rb +7 -15
- data/lib/elasticsearch/api/actions/cat/fielddata.rb +7 -17
- data/lib/elasticsearch/api/actions/cat/health.rb +7 -17
- data/lib/elasticsearch/api/actions/cat/help.rb +7 -12
- data/lib/elasticsearch/api/actions/cat/indices.rb +7 -24
- data/lib/elasticsearch/api/actions/cat/master.rb +7 -17
- data/lib/elasticsearch/api/actions/cat/ml_data_frame_analytics.rb +61 -0
- data/lib/elasticsearch/api/actions/cat/ml_datafeeds.rb +61 -0
- data/lib/elasticsearch/api/actions/cat/ml_jobs.rb +62 -0
- data/lib/elasticsearch/api/actions/cat/ml_trained_models.rb +63 -0
- data/lib/elasticsearch/api/actions/cat/nodeattrs.rb +7 -17
- data/lib/elasticsearch/api/actions/cat/nodes.rb +7 -22
- data/lib/elasticsearch/api/actions/cat/pending_tasks.rb +7 -18
- data/lib/elasticsearch/api/actions/cat/plugins.rb +7 -18
- data/lib/elasticsearch/api/actions/cat/recovery.rb +7 -20
- data/lib/elasticsearch/api/actions/cat/repositories.rb +7 -17
- data/lib/elasticsearch/api/actions/cat/segments.rb +7 -16
- data/lib/elasticsearch/api/actions/cat/shards.rb +7 -20
- data/lib/elasticsearch/api/actions/cat/snapshots.rb +7 -18
- data/lib/elasticsearch/api/actions/cat/tasks.rb +11 -20
- data/lib/elasticsearch/api/actions/cat/templates.rb +7 -17
- data/lib/elasticsearch/api/actions/cat/thread_pool.rb +8 -19
- data/lib/elasticsearch/api/actions/cat/transforms.rb +62 -0
- data/lib/elasticsearch/api/actions/clear_scroll.rb +6 -3
- data/lib/elasticsearch/api/actions/close_point_in_time.rb +6 -3
- data/lib/elasticsearch/api/actions/cluster/allocation_explain.rb +8 -13
- data/lib/elasticsearch/api/actions/cluster/delete_component_template.rb +7 -12
- data/lib/elasticsearch/api/actions/cluster/delete_voting_config_exclusions.rb +7 -11
- data/lib/elasticsearch/api/actions/cluster/exists_component_template.rb +7 -12
- data/lib/elasticsearch/api/actions/cluster/get_component_template.rb +7 -12
- data/lib/elasticsearch/api/actions/cluster/get_settings.rb +7 -14
- data/lib/elasticsearch/api/actions/cluster/health.rb +7 -21
- data/lib/elasticsearch/api/actions/cluster/pending_tasks.rb +7 -12
- data/lib/elasticsearch/api/actions/cluster/post_voting_config_exclusions.rb +7 -13
- data/lib/elasticsearch/api/actions/cluster/put_component_template.rb +7 -13
- data/lib/elasticsearch/api/actions/cluster/put_settings.rb +7 -13
- data/lib/elasticsearch/api/actions/cluster/remote_info.rb +6 -3
- data/lib/elasticsearch/api/actions/cluster/reroute.rb +7 -16
- data/lib/elasticsearch/api/actions/cluster/state.rb +7 -18
- data/lib/elasticsearch/api/actions/cluster/stats.rb +7 -12
- data/lib/elasticsearch/api/actions/count.rb +9 -41
- data/lib/elasticsearch/api/actions/create.rb +1 -1
- data/lib/elasticsearch/api/actions/cross_cluster_replication/delete_auto_follow_pattern.rb +51 -0
- data/lib/elasticsearch/api/actions/cross_cluster_replication/follow.rb +54 -0
- data/lib/elasticsearch/api/actions/cross_cluster_replication/follow_info.rb +51 -0
- data/lib/elasticsearch/api/actions/cross_cluster_replication/follow_stats.rb +51 -0
- data/lib/elasticsearch/api/actions/cross_cluster_replication/forget_follower.rb +53 -0
- data/lib/elasticsearch/api/actions/cross_cluster_replication/get_auto_follow_pattern.rb +53 -0
- data/lib/elasticsearch/api/actions/cross_cluster_replication/pause_auto_follow_pattern.rb +51 -0
- data/lib/elasticsearch/api/actions/cross_cluster_replication/pause_follow.rb +51 -0
- data/lib/elasticsearch/api/actions/cross_cluster_replication/put_auto_follow_pattern.rb +53 -0
- data/lib/elasticsearch/api/actions/cross_cluster_replication/resume_auto_follow_pattern.rb +51 -0
- data/lib/elasticsearch/api/actions/cross_cluster_replication/resume_follow.rb +52 -0
- data/lib/elasticsearch/api/actions/cross_cluster_replication/stats.rb +46 -0
- data/lib/elasticsearch/api/actions/cross_cluster_replication/unfollow.rb +51 -0
- data/lib/elasticsearch/api/actions/dangling_indices/delete_dangling_index.rb +7 -13
- data/lib/elasticsearch/api/actions/dangling_indices/import_dangling_index.rb +7 -13
- data/lib/elasticsearch/api/actions/dangling_indices/list_dangling_indices.rb +6 -3
- data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/delete_transform.rb +59 -0
- data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/get_transform.rb +64 -0
- data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/get_transform_stats.rb +61 -0
- data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/preview_transform.rb +56 -0
- data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/put_transform.rb +61 -0
- data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/start_transform.rb +59 -0
- data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/stop_transform.rb +61 -0
- data/lib/elasticsearch/api/actions/data_frame_transform_deprecated/update_transform.rb +61 -0
- data/lib/elasticsearch/api/actions/delete.rb +13 -20
- data/lib/elasticsearch/api/actions/delete_by_query.rb +13 -56
- data/lib/elasticsearch/api/actions/delete_by_query_rethrottle.rb +7 -11
- data/lib/elasticsearch/api/actions/delete_script.rb +7 -12
- data/lib/elasticsearch/api/actions/enrich/delete_policy.rb +51 -0
- data/lib/elasticsearch/api/actions/enrich/execute_policy.rb +52 -0
- data/lib/elasticsearch/api/actions/enrich/get_policy.rb +53 -0
- data/lib/elasticsearch/api/actions/enrich/put_policy.rb +53 -0
- data/lib/elasticsearch/api/actions/enrich/stats.rb +46 -0
- data/lib/elasticsearch/api/actions/eql/delete.rb +51 -0
- data/lib/elasticsearch/api/actions/eql/get.rb +53 -0
- data/lib/elasticsearch/api/actions/eql/get_status.rb +51 -0
- data/lib/elasticsearch/api/actions/eql/search.rb +57 -0
- data/lib/elasticsearch/api/actions/exists.rb +6 -34
- data/lib/elasticsearch/api/actions/exists_source.rb +8 -20
- data/lib/elasticsearch/api/actions/explain.rb +9 -36
- data/lib/elasticsearch/api/actions/features/get_features.rb +7 -11
- data/lib/elasticsearch/api/actions/features/reset_features.rb +6 -3
- data/lib/elasticsearch/api/actions/field_caps.rb +8 -16
- data/lib/elasticsearch/api/actions/fleet/global_checkpoints.rb +55 -0
- data/lib/elasticsearch/api/actions/get.rb +14 -35
- data/lib/elasticsearch/api/actions/get_script.rb +7 -11
- data/lib/elasticsearch/api/actions/get_script_context.rb +6 -3
- data/lib/elasticsearch/api/actions/get_script_languages.rb +6 -3
- data/lib/elasticsearch/api/actions/get_source.rb +9 -33
- data/lib/elasticsearch/api/actions/graph/explore.rb +59 -0
- data/lib/elasticsearch/api/actions/index.rb +8 -34
- data/lib/elasticsearch/api/actions/index_lifecycle_management/delete_lifecycle.rb +51 -0
- data/lib/elasticsearch/api/actions/index_lifecycle_management/explain_lifecycle.rb +53 -0
- data/lib/elasticsearch/api/actions/index_lifecycle_management/get_lifecycle.rb +53 -0
- data/lib/elasticsearch/api/actions/index_lifecycle_management/get_status.rb +46 -0
- data/lib/elasticsearch/api/actions/index_lifecycle_management/migrate_to_data_tiers.rb +48 -0
- data/lib/elasticsearch/api/actions/index_lifecycle_management/move_to_step.rb +52 -0
- data/lib/elasticsearch/api/actions/index_lifecycle_management/put_lifecycle.rb +52 -0
- data/lib/elasticsearch/api/actions/index_lifecycle_management/remove_policy.rb +51 -0
- data/lib/elasticsearch/api/actions/index_lifecycle_management/retry.rb +51 -0
- data/lib/elasticsearch/api/actions/index_lifecycle_management/start.rb +46 -0
- data/lib/elasticsearch/api/actions/index_lifecycle_management/stop.rb +46 -0
- data/lib/elasticsearch/api/actions/indices/add_block.rb +7 -15
- data/lib/elasticsearch/api/actions/indices/analyze.rb +8 -12
- data/lib/elasticsearch/api/actions/indices/clear_cache.rb +7 -18
- data/lib/elasticsearch/api/actions/indices/clone.rb +7 -13
- data/lib/elasticsearch/api/actions/indices/close.rb +8 -17
- data/lib/elasticsearch/api/actions/indices/create.rb +7 -15
- data/lib/elasticsearch/api/actions/indices/create_data_stream.rb +51 -0
- data/lib/elasticsearch/api/actions/indices/data_streams_stats.rb +53 -0
- data/lib/elasticsearch/api/actions/indices/delete.rb +12 -16
- data/lib/elasticsearch/api/actions/indices/delete_alias.rb +7 -12
- data/lib/elasticsearch/api/actions/indices/delete_data_stream.rb +52 -0
- data/lib/elasticsearch/api/actions/indices/delete_index_template.rb +7 -16
- data/lib/elasticsearch/api/actions/indices/delete_template.rb +12 -13
- data/lib/elasticsearch/api/actions/indices/disk_usage.rb +7 -15
- data/lib/elasticsearch/api/actions/indices/exists.rb +4 -16
- data/lib/elasticsearch/api/actions/indices/exists_alias.rb +4 -14
- data/lib/elasticsearch/api/actions/indices/exists_index_template.rb +7 -16
- data/lib/elasticsearch/api/actions/indices/exists_template.rb +4 -13
- data/lib/elasticsearch/api/actions/indices/exists_type.rb +4 -14
- data/lib/elasticsearch/api/actions/indices/field_usage_stats.rb +7 -14
- data/lib/elasticsearch/api/actions/indices/flush.rb +7 -15
- data/lib/elasticsearch/api/actions/indices/forcemerge.rb +7 -16
- data/lib/elasticsearch/api/actions/indices/get.rb +7 -19
- data/lib/elasticsearch/api/actions/indices/get_alias.rb +7 -14
- data/lib/elasticsearch/api/actions/indices/get_data_stream.rb +54 -0
- data/lib/elasticsearch/api/actions/indices/get_field_mapping.rb +8 -30
- data/lib/elasticsearch/api/actions/indices/get_index_template.rb +8 -14
- data/lib/elasticsearch/api/actions/indices/get_mapping.rb +8 -30
- data/lib/elasticsearch/api/actions/indices/get_settings.rb +7 -17
- data/lib/elasticsearch/api/actions/indices/get_template.rb +7 -15
- data/lib/elasticsearch/api/actions/indices/migrate_to_data_stream.rb +51 -0
- data/lib/elasticsearch/api/actions/indices/modify_data_stream.rb +49 -0
- data/lib/elasticsearch/api/actions/indices/open.rb +7 -16
- data/lib/elasticsearch/api/actions/indices/promote_data_stream.rb +51 -0
- data/lib/elasticsearch/api/actions/indices/put_alias.rb +7 -12
- data/lib/elasticsearch/api/actions/indices/put_index_template.rb +7 -13
- data/lib/elasticsearch/api/actions/indices/put_mapping.rb +9 -33
- data/lib/elasticsearch/api/actions/indices/put_settings.rb +7 -17
- data/lib/elasticsearch/api/actions/indices/put_template.rb +7 -15
- data/lib/elasticsearch/api/actions/indices/recovery.rb +7 -12
- data/lib/elasticsearch/api/actions/indices/refresh.rb +7 -13
- data/lib/elasticsearch/api/actions/indices/{get_upgrade.rb → reload_search_analyzers.rb} +13 -26
- data/lib/elasticsearch/api/actions/indices/resolve_index.rb +7 -11
- data/lib/elasticsearch/api/actions/indices/rollover.rb +7 -16
- data/lib/elasticsearch/api/actions/indices/segments.rb +7 -14
- data/lib/elasticsearch/api/actions/indices/shard_stores.rb +7 -14
- data/lib/elasticsearch/api/actions/indices/shrink.rb +7 -15
- data/lib/elasticsearch/api/actions/indices/simulate_index_template.rb +7 -13
- data/lib/elasticsearch/api/actions/indices/simulate_template.rb +7 -13
- data/lib/elasticsearch/api/actions/indices/split.rb +7 -15
- data/lib/elasticsearch/api/actions/indices/stats.rb +25 -47
- data/lib/elasticsearch/api/actions/indices/{upgrade.rb → unfreeze.rb} +19 -28
- data/lib/elasticsearch/api/actions/indices/update_aliases.rb +7 -12
- data/lib/elasticsearch/api/actions/indices/validate_query.rb +8 -23
- data/lib/elasticsearch/api/actions/info.rb +6 -3
- data/lib/elasticsearch/api/actions/ingest/delete_pipeline.rb +7 -12
- data/lib/elasticsearch/api/actions/ingest/geo_ip_stats.rb +6 -3
- data/lib/elasticsearch/api/actions/ingest/get_pipeline.rb +7 -12
- data/lib/elasticsearch/api/actions/ingest/processor_grok.rb +6 -3
- data/lib/elasticsearch/api/actions/ingest/put_pipeline.rb +7 -14
- data/lib/elasticsearch/api/actions/ingest/simulate.rb +7 -11
- data/lib/elasticsearch/api/actions/knn_search.rb +60 -0
- data/lib/elasticsearch/api/actions/license/delete.rb +46 -0
- data/lib/elasticsearch/api/actions/license/get.rb +48 -0
- data/lib/elasticsearch/api/actions/license/get_basic_status.rb +46 -0
- data/lib/elasticsearch/api/actions/license/get_trial_status.rb +46 -0
- data/lib/elasticsearch/api/actions/license/post.rb +48 -0
- data/lib/elasticsearch/api/actions/license/post_start_basic.rb +47 -0
- data/lib/elasticsearch/api/actions/license/post_start_trial.rb +48 -0
- data/lib/elasticsearch/api/actions/logstash/delete_pipeline.rb +51 -0
- data/lib/elasticsearch/api/actions/logstash/get_pipeline.rb +51 -0
- data/lib/elasticsearch/api/actions/logstash/put_pipeline.rb +53 -0
- data/lib/elasticsearch/api/actions/machine_learning/close_job.rb +56 -0
- data/lib/elasticsearch/api/actions/machine_learning/delete_calendar.rb +51 -0
- data/lib/elasticsearch/api/actions/machine_learning/delete_calendar_event.rb +55 -0
- data/lib/elasticsearch/api/actions/machine_learning/delete_calendar_job.rb +55 -0
- data/lib/elasticsearch/api/actions/machine_learning/delete_data_frame_analytics.rb +53 -0
- data/lib/elasticsearch/api/actions/machine_learning/delete_datafeed.rb +52 -0
- data/lib/elasticsearch/api/actions/machine_learning/delete_expired_data.rb +56 -0
- data/lib/elasticsearch/api/actions/machine_learning/delete_filter.rb +51 -0
- data/lib/elasticsearch/api/actions/machine_learning/delete_forecast.rb +60 -0
- data/lib/elasticsearch/api/actions/machine_learning/delete_job.rb +53 -0
- data/lib/elasticsearch/api/actions/machine_learning/delete_model_snapshot.rb +55 -0
- data/lib/elasticsearch/api/actions/machine_learning/delete_trained_model.rb +51 -0
- data/lib/elasticsearch/api/actions/machine_learning/delete_trained_model_alias.rb +55 -0
- data/lib/elasticsearch/api/actions/machine_learning/estimate_model_memory.rb +49 -0
- data/lib/elasticsearch/api/actions/machine_learning/evaluate_data_frame.rb +49 -0
- data/lib/elasticsearch/api/actions/machine_learning/explain_data_frame_analytics.rb +59 -0
- data/lib/elasticsearch/api/actions/machine_learning/flush_job.rb +57 -0
- data/lib/elasticsearch/api/actions/machine_learning/forecast.rb +54 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_buckets.rb +73 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_calendar_events.rb +56 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_calendars.rb +61 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_categories.rb +67 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_data_frame_analytics.rb +57 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_data_frame_analytics_stats.rb +57 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_datafeed_stats.rb +55 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_datafeeds.rb +56 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_filters.rb +55 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_influencers.rb +65 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_job_stats.rb +55 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_jobs.rb +56 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_model_snapshots.rb +70 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_overall_buckets.rb +65 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_records.rb +65 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_trained_model_deployment_stats.rb +51 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_trained_models.rb +61 -0
- data/lib/elasticsearch/api/actions/machine_learning/get_trained_models_stats.rb +56 -0
- data/lib/elasticsearch/api/actions/machine_learning/infer_trained_model_deployment.rb +58 -0
- data/lib/elasticsearch/api/actions/machine_learning/info.rb +46 -0
- data/lib/elasticsearch/api/actions/machine_learning/open_job.rb +51 -0
- data/lib/elasticsearch/api/actions/machine_learning/post_calendar_events.rb +53 -0
- data/lib/elasticsearch/api/actions/machine_learning/post_data.rb +55 -0
- data/lib/elasticsearch/api/actions/machine_learning/preview_data_frame_analytics.rb +59 -0
- data/lib/elasticsearch/api/actions/machine_learning/preview_datafeed.rb +59 -0
- data/lib/elasticsearch/api/actions/machine_learning/put_calendar.rb +52 -0
- data/lib/elasticsearch/api/actions/machine_learning/put_calendar_job.rb +55 -0
- data/lib/elasticsearch/api/actions/machine_learning/put_data_frame_analytics.rb +53 -0
- data/lib/elasticsearch/api/actions/machine_learning/put_datafeed.rb +57 -0
- data/lib/elasticsearch/api/actions/machine_learning/put_filter.rb +53 -0
- data/lib/elasticsearch/api/actions/machine_learning/put_job.rb +57 -0
- data/lib/elasticsearch/api/actions/machine_learning/put_trained_model.rb +54 -0
- data/lib/elasticsearch/api/actions/machine_learning/put_trained_model_alias.rb +56 -0
- data/lib/elasticsearch/api/actions/machine_learning/put_trained_model_definition_part.rb +61 -0
- data/lib/elasticsearch/api/actions/machine_learning/put_trained_model_vocabulary.rb +57 -0
- data/lib/elasticsearch/api/actions/machine_learning/reset_job.rb +52 -0
- data/lib/elasticsearch/api/actions/machine_learning/revert_model_snapshot.rb +57 -0
- data/lib/elasticsearch/api/actions/machine_learning/set_upgrade_mode.rb +48 -0
- data/lib/elasticsearch/api/actions/machine_learning/start_data_frame_analytics.rb +53 -0
- data/lib/elasticsearch/api/actions/machine_learning/start_datafeed.rb +55 -0
- data/lib/elasticsearch/api/actions/machine_learning/start_trained_model_deployment.rb +57 -0
- data/lib/elasticsearch/api/actions/machine_learning/stop_data_frame_analytics.rb +55 -0
- data/lib/elasticsearch/api/actions/machine_learning/stop_datafeed.rb +56 -0
- data/lib/elasticsearch/api/actions/machine_learning/stop_trained_model_deployment.rb +55 -0
- data/lib/elasticsearch/api/actions/machine_learning/update_data_frame_analytics.rb +53 -0
- data/lib/elasticsearch/api/actions/machine_learning/update_datafeed.rb +57 -0
- data/lib/elasticsearch/api/actions/machine_learning/update_filter.rb +53 -0
- data/lib/elasticsearch/api/actions/machine_learning/update_job.rb +53 -0
- data/lib/elasticsearch/api/actions/machine_learning/update_model_snapshot.rb +57 -0
- data/lib/elasticsearch/api/actions/machine_learning/upgrade_job_snapshot.rb +57 -0
- data/lib/elasticsearch/api/actions/machine_learning/validate.rb +49 -0
- data/lib/elasticsearch/api/actions/machine_learning/validate_detector.rb +49 -0
- data/lib/elasticsearch/api/actions/mget.rb +9 -30
- data/lib/elasticsearch/api/actions/migration/deprecations.rb +53 -0
- data/lib/elasticsearch/api/actions/migration/get_feature_upgrade_status.rb +46 -0
- data/lib/elasticsearch/api/actions/migration/post_feature_upgrade.rb +46 -0
- data/lib/elasticsearch/api/actions/monitoring/bulk.rb +72 -0
- data/lib/elasticsearch/api/actions/msearch.rb +9 -29
- data/lib/elasticsearch/api/actions/msearch_template.rb +9 -27
- data/lib/elasticsearch/api/actions/mtermvectors.rb +14 -40
- data/lib/elasticsearch/api/actions/nodes/clear_repositories_metering_archive.rb +9 -4
- data/lib/elasticsearch/api/actions/nodes/get_repositories_metering_info.rb +6 -3
- data/lib/elasticsearch/api/actions/nodes/hot_threads.rb +10 -26
- data/lib/elasticsearch/api/actions/nodes/info.rb +8 -13
- data/lib/elasticsearch/api/actions/nodes/reload_secure_settings.rb +7 -11
- data/lib/elasticsearch/api/actions/nodes/stats.rb +10 -22
- data/lib/elasticsearch/api/actions/nodes/usage.rb +7 -11
- data/lib/elasticsearch/api/actions/open_point_in_time.rb +8 -16
- data/lib/elasticsearch/api/actions/ping.rb +3 -2
- data/lib/elasticsearch/api/actions/put_script.rb +7 -13
- data/lib/elasticsearch/api/actions/rank_eval.rb +7 -14
- data/lib/elasticsearch/api/actions/reindex.rb +7 -18
- data/lib/elasticsearch/api/actions/reindex_rethrottle.rb +7 -11
- data/lib/elasticsearch/api/actions/render_search_template.rb +7 -4
- data/lib/elasticsearch/api/actions/rollup/delete_job.rb +55 -0
- data/lib/elasticsearch/api/actions/rollup/get_jobs.rb +57 -0
- data/lib/elasticsearch/api/actions/rollup/get_rollup_caps.rb +57 -0
- data/lib/elasticsearch/api/actions/rollup/get_rollup_index_caps.rb +55 -0
- data/lib/elasticsearch/api/actions/rollup/put_job.rb +57 -0
- data/lib/elasticsearch/api/actions/rollup/rollup.rb +61 -0
- data/lib/elasticsearch/api/actions/rollup/rollup_search.rb +71 -0
- data/lib/elasticsearch/api/actions/rollup/start_job.rb +55 -0
- data/lib/elasticsearch/api/actions/rollup/stop_job.rb +57 -0
- data/lib/elasticsearch/api/actions/scripts_painless_execute.rb +7 -4
- data/lib/elasticsearch/api/actions/scroll.rb +8 -14
- data/lib/elasticsearch/api/actions/search.rb +10 -66
- data/lib/elasticsearch/api/actions/search_mvt.rb +8 -17
- data/lib/elasticsearch/api/actions/search_shards.rb +7 -16
- data/lib/elasticsearch/api/actions/search_template.rb +8 -34
- data/lib/elasticsearch/api/actions/searchable_snapshots/cache_stats.rb +57 -0
- data/lib/elasticsearch/api/actions/{indices/flush_synced.rb → searchable_snapshots/clear_cache.rb} +17 -28
- data/lib/elasticsearch/api/actions/searchable_snapshots/mount.rb +60 -0
- data/lib/elasticsearch/api/actions/searchable_snapshots/stats.rb +54 -0
- data/lib/elasticsearch/api/actions/security/authenticate.rb +46 -0
- data/lib/elasticsearch/api/actions/security/change_password.rb +57 -0
- data/lib/elasticsearch/api/actions/security/clear_api_key_cache.rb +51 -0
- data/lib/elasticsearch/api/actions/security/clear_cached_privileges.rb +51 -0
- data/lib/elasticsearch/api/actions/security/clear_cached_realms.rb +52 -0
- data/lib/elasticsearch/api/actions/security/clear_cached_roles.rb +51 -0
- data/lib/elasticsearch/api/actions/security/clear_cached_service_tokens.rb +59 -0
- data/lib/elasticsearch/api/actions/security/create_api_key.rb +50 -0
- data/lib/elasticsearch/api/actions/security/create_service_token.rb +63 -0
- data/lib/elasticsearch/api/actions/security/delete_privileges.rb +56 -0
- data/lib/elasticsearch/api/actions/security/delete_role.rb +52 -0
- data/lib/elasticsearch/api/actions/security/delete_role_mapping.rb +52 -0
- data/lib/elasticsearch/api/actions/security/delete_service_token.rb +60 -0
- data/lib/elasticsearch/api/actions/security/delete_user.rb +52 -0
- data/lib/elasticsearch/api/actions/security/disable_user.rb +52 -0
- data/lib/elasticsearch/api/actions/security/enable_user.rb +52 -0
- data/lib/elasticsearch/api/actions/security/enroll_kibana.rb +46 -0
- data/lib/elasticsearch/api/actions/security/enroll_node.rb +46 -0
- data/lib/elasticsearch/api/actions/security/get_api_key.rb +51 -0
- data/lib/elasticsearch/api/actions/security/get_builtin_privileges.rb +46 -0
- data/lib/elasticsearch/api/actions/security/get_privileges.rb +58 -0
- data/lib/elasticsearch/api/actions/security/get_role.rb +61 -0
- data/lib/elasticsearch/api/actions/security/get_role_mapping.rb +53 -0
- data/lib/elasticsearch/api/actions/security/get_service_accounts.rb +58 -0
- data/lib/elasticsearch/api/actions/security/get_service_credentials.rb +55 -0
- data/lib/elasticsearch/api/actions/security/get_token.rb +49 -0
- data/lib/elasticsearch/api/actions/security/get_user.rb +61 -0
- data/lib/elasticsearch/api/actions/security/get_user_privileges.rb +46 -0
- data/lib/elasticsearch/api/actions/security/grant_api_key.rb +50 -0
- data/lib/elasticsearch/api/actions/security/has_privileges.rb +56 -0
- data/lib/elasticsearch/api/actions/security/invalidate_api_key.rb +49 -0
- data/lib/elasticsearch/api/actions/security/invalidate_token.rb +49 -0
- data/lib/elasticsearch/api/actions/security/put_privileges.rb +50 -0
- data/lib/elasticsearch/api/actions/security/put_role.rb +54 -0
- data/lib/elasticsearch/api/actions/security/put_role_mapping.rb +54 -0
- data/lib/elasticsearch/api/actions/security/put_user.rb +54 -0
- data/lib/elasticsearch/api/actions/security/query_api_keys.rb +52 -0
- data/lib/elasticsearch/api/actions/security/saml_authenticate.rb +49 -0
- data/lib/elasticsearch/api/actions/security/saml_complete_logout.rb +49 -0
- data/lib/elasticsearch/api/actions/security/saml_invalidate.rb +49 -0
- data/lib/elasticsearch/api/actions/security/saml_logout.rb +49 -0
- data/lib/elasticsearch/api/actions/security/saml_prepare_authentication.rb +49 -0
- data/lib/elasticsearch/api/actions/security/saml_service_provider_metadata.rb +51 -0
- data/lib/elasticsearch/api/actions/shutdown/delete_node.rb +5 -2
- data/lib/elasticsearch/api/actions/shutdown/get_node.rb +5 -2
- data/lib/elasticsearch/api/actions/shutdown/put_node.rb +5 -2
- data/lib/elasticsearch/api/actions/snapshot/cleanup_repository.rb +7 -12
- data/lib/elasticsearch/api/actions/snapshot/clone.rb +7 -11
- data/lib/elasticsearch/api/actions/snapshot/create.rb +7 -12
- data/lib/elasticsearch/api/actions/snapshot/create_repository.rb +7 -13
- data/lib/elasticsearch/api/actions/snapshot/delete.rb +14 -14
- data/lib/elasticsearch/api/actions/snapshot/delete_repository.rb +12 -13
- data/lib/elasticsearch/api/actions/snapshot/get.rb +12 -30
- data/lib/elasticsearch/api/actions/snapshot/get_repository.rb +12 -13
- data/lib/elasticsearch/api/actions/snapshot/repository_analyze.rb +7 -21
- data/lib/elasticsearch/api/actions/snapshot/restore.rb +7 -12
- data/lib/elasticsearch/api/actions/snapshot/status.rb +12 -13
- data/lib/elasticsearch/api/actions/snapshot/verify_repository.rb +7 -12
- data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/delete_lifecycle.rb +51 -0
- data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/execute_lifecycle.rb +51 -0
- data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/execute_retention.rb +46 -0
- data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_lifecycle.rb +53 -0
- data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_stats.rb +46 -0
- data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/get_status.rb +46 -0
- data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/put_lifecycle.rb +52 -0
- data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/start.rb +46 -0
- data/lib/elasticsearch/api/actions/snapshot_lifecycle_management/stop.rb +46 -0
- data/lib/elasticsearch/api/actions/sql/clear_cursor.rb +49 -0
- data/lib/elasticsearch/api/actions/sql/delete_async.rb +51 -0
- data/lib/elasticsearch/api/actions/sql/get_async.rb +55 -0
- data/lib/elasticsearch/api/actions/sql/get_async_status.rb +51 -0
- data/lib/elasticsearch/api/actions/sql/query.rb +50 -0
- data/lib/elasticsearch/api/actions/sql/translate.rb +49 -0
- data/lib/elasticsearch/api/actions/ssl/certificates.rb +46 -0
- data/lib/elasticsearch/api/actions/tasks/cancel.rb +7 -14
- data/lib/elasticsearch/api/actions/tasks/get.rb +7 -12
- data/lib/elasticsearch/api/actions/tasks/list.rb +7 -17
- data/lib/elasticsearch/api/actions/terms_enum.rb +55 -0
- data/lib/elasticsearch/api/actions/termvectors.rb +13 -40
- data/lib/elasticsearch/api/actions/text_structure/find_structure.rb +70 -0
- data/lib/elasticsearch/api/actions/transform/delete_transform.rb +52 -0
- data/lib/elasticsearch/api/actions/transform/get_transform.rb +57 -0
- data/lib/elasticsearch/api/actions/transform/get_transform_stats.rb +54 -0
- data/lib/elasticsearch/api/actions/transform/preview_transform.rb +59 -0
- data/lib/elasticsearch/api/actions/transform/put_transform.rb +54 -0
- data/lib/elasticsearch/api/actions/transform/start_transform.rb +52 -0
- data/lib/elasticsearch/api/actions/transform/stop_transform.rb +56 -0
- data/lib/elasticsearch/api/actions/transform/update_transform.rb +54 -0
- data/lib/elasticsearch/api/actions/transform/upgrade_transforms.rb +47 -0
- data/lib/elasticsearch/api/actions/update.rb +12 -23
- data/lib/elasticsearch/api/actions/update_by_query.rb +12 -57
- data/lib/elasticsearch/api/actions/update_by_query_rethrottle.rb +7 -11
- data/lib/elasticsearch/api/actions/watcher/ack_watch.rb +58 -0
- data/lib/elasticsearch/api/actions/watcher/activate_watch.rb +51 -0
- data/lib/elasticsearch/api/actions/watcher/deactivate_watch.rb +51 -0
- data/lib/elasticsearch/api/actions/watcher/delete_watch.rb +59 -0
- data/lib/elasticsearch/api/actions/watcher/execute_watch.rb +55 -0
- data/lib/elasticsearch/api/actions/watcher/get_watch.rb +51 -0
- data/lib/elasticsearch/api/actions/watcher/put_watch.rb +56 -0
- data/lib/elasticsearch/api/actions/watcher/query_watches.rb +52 -0
- data/lib/elasticsearch/api/actions/watcher/start.rb +46 -0
- data/lib/elasticsearch/api/actions/watcher/stats.rb +54 -0
- data/lib/elasticsearch/api/actions/watcher/stop.rb +46 -0
- data/lib/elasticsearch/api/actions/xpack/info.rb +48 -0
- data/lib/elasticsearch/api/actions/xpack/usage.rb +47 -0
- data/lib/elasticsearch/api/namespace/async_search.rb +36 -0
- data/lib/elasticsearch/api/namespace/autoscaling.rb +36 -0
- data/lib/elasticsearch/api/namespace/cross_cluster_replication.rb +38 -0
- data/lib/elasticsearch/api/namespace/data_frame_transform_deprecated.rb +36 -0
- data/lib/elasticsearch/api/namespace/enrich.rb +36 -0
- data/lib/elasticsearch/api/namespace/eql.rb +36 -0
- data/lib/elasticsearch/api/namespace/fleet.rb +36 -0
- data/lib/elasticsearch/api/namespace/graph.rb +36 -0
- data/lib/elasticsearch/api/namespace/index_lifecycle_management.rb +38 -0
- data/lib/elasticsearch/api/namespace/ingest.rb +0 -1
- data/lib/elasticsearch/api/namespace/license.rb +36 -0
- data/lib/elasticsearch/api/namespace/logstash.rb +36 -0
- data/lib/elasticsearch/api/namespace/machine_learning.rb +38 -0
- data/lib/elasticsearch/api/namespace/migration.rb +36 -0
- data/lib/elasticsearch/api/namespace/monitoring.rb +36 -0
- data/lib/elasticsearch/api/namespace/rollup.rb +36 -0
- data/lib/elasticsearch/api/namespace/searchable_snapshots.rb +36 -0
- data/lib/elasticsearch/api/namespace/snapshot_lifecycle_management.rb +38 -0
- data/lib/elasticsearch/api/namespace/sql.rb +36 -0
- data/lib/elasticsearch/api/namespace/ssl.rb +36 -0
- data/lib/elasticsearch/api/namespace/text_structure.rb +36 -0
- data/lib/elasticsearch/api/namespace/transform.rb +36 -0
- data/lib/elasticsearch/api/namespace/watcher.rb +36 -0
- data/lib/elasticsearch/api/namespace/xpack.rb +36 -0
- data/lib/elasticsearch/api/response.rb +48 -0
- data/lib/elasticsearch/api/utils.rb +7 -60
- data/lib/elasticsearch/api/version.rb +1 -1
- data/lib/elasticsearch/api.rb +26 -21
- data/spec/elasticsearch/api/actions/bulk_spec.rb +8 -8
- data/spec/elasticsearch/api/actions/cat/aliases_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/allocation_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/count_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/fielddata_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/cat/health_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/help_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/indices_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/master_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/nodeattrs_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/nodes_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/pending_tasks_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/plugins_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/recovery_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/repositories_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/segments_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/cat/shards_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/snapshot_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/tasks_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/templates_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cat/thread_pool_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/clear_scroll_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/close_point_in_time_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cluster/allocation_explain_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cluster/get_settings_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cluster/health_spec.rb +3 -3
- data/spec/elasticsearch/api/actions/cluster/pending_tasks_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cluster/put_settings_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cluster/remote_info_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/cluster/reroute_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/cluster/state_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/cluster/stats_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/count_spec.rb +9 -6
- data/spec/elasticsearch/api/actions/create_document_spec.rb +8 -8
- data/spec/elasticsearch/api/actions/dangling_indices/delete_dangling_indices_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/dangling_indices/import_dangling_indices_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/dangling_indices/list_dangling_indices_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/data_frame/update_data_frame_transform_spec.rb +81 -0
- data/spec/elasticsearch/api/actions/delete_by_query_spec.rb +2 -19
- data/spec/elasticsearch/api/actions/delete_document_spec.rb +3 -16
- data/spec/elasticsearch/api/actions/delete_script_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/exists_document_spec.rb +10 -21
- data/spec/elasticsearch/api/actions/explain_document_spec.rb +9 -9
- data/spec/elasticsearch/api/actions/features/get_features_spec.rb +11 -7
- data/spec/elasticsearch/api/actions/features/reset_features_spec.rb +11 -7
- data/spec/elasticsearch/api/actions/field_caps_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/fleet/global_checkpoints_spec.rb +44 -0
- data/spec/elasticsearch/api/actions/get_document_source_spec.rb +6 -18
- data/spec/elasticsearch/api/actions/get_document_spec.rb +6 -31
- data/spec/elasticsearch/api/actions/get_script_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/index_document_spec.rb +10 -28
- data/spec/elasticsearch/api/actions/index_lifecycle_management/migrate_to_data_tiers_spec.rb +36 -0
- data/spec/elasticsearch/api/actions/indices/add_block_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/indices/analyze_spec.rb +3 -3
- data/spec/elasticsearch/api/actions/indices/clear_cache_spec.rb +4 -4
- data/spec/elasticsearch/api/actions/indices/clone_spec.rb +6 -6
- data/spec/elasticsearch/api/actions/indices/close_spec.rb +3 -3
- data/spec/elasticsearch/api/actions/indices/create_spec.rb +3 -3
- data/spec/elasticsearch/api/actions/indices/data_streams_stats_spec.rb +58 -0
- data/spec/elasticsearch/api/actions/indices/delete_alias_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/indices/delete_spec.rb +4 -4
- data/spec/elasticsearch/api/actions/indices/delete_template_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/indices/disk_usage_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/indices/field_usage_stats_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/indices/flush_spec.rb +5 -5
- data/spec/elasticsearch/api/actions/indices/forcemerge_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/indices/get_alias_spec.rb +3 -3
- data/spec/elasticsearch/api/actions/indices/get_field_mapping_spec.rb +2 -13
- data/spec/elasticsearch/api/actions/indices/get_mapping_spec.rb +7 -22
- data/spec/elasticsearch/api/actions/indices/get_settings_spec.rb +4 -4
- data/spec/elasticsearch/api/actions/indices/get_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/indices/open_spec.rb +3 -3
- data/spec/elasticsearch/api/actions/indices/put_alias_spec.rb +4 -4
- data/spec/elasticsearch/api/actions/indices/put_mapping_spec.rb +8 -14
- data/spec/elasticsearch/api/actions/indices/put_settings_spec.rb +5 -5
- data/spec/elasticsearch/api/actions/indices/put_template_spec.rb +3 -3
- data/spec/elasticsearch/api/actions/indices/recovery_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/indices/refresh_spec.rb +5 -5
- data/spec/elasticsearch/api/actions/indices/rollover_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/indices/segments_spec.rb +5 -5
- data/spec/elasticsearch/api/actions/indices/shard_stores_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/indices/shrink_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/indices/split_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/indices/stats_spec.rb +7 -12
- data/spec/elasticsearch/api/actions/indices/unfreeze_spec.rb +85 -0
- data/spec/elasticsearch/api/actions/indices/update_aliases_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/indices/validate_query_spec.rb +8 -8
- data/spec/elasticsearch/api/actions/info_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/ingest/delete_pipeline_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/ingest/geo_ip_stats_spec.rb +5 -1
- data/spec/elasticsearch/api/actions/ingest/get_pipeline_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/ingest/put_pipeline_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/ingest/simulate_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/json_builders_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/machine_learning/get_trained_model_deployment_stats_spec.rb +46 -0
- data/spec/elasticsearch/api/actions/machine_learning/infer_trained_model_deployment_spec.rb +46 -0
- data/spec/elasticsearch/api/actions/machine_learning/put_trained_model_definition_part_spec.rb +62 -0
- data/spec/elasticsearch/api/actions/machine_learning/put_trained_model_vocabulary_spec.rb +54 -0
- data/spec/elasticsearch/api/actions/machine_learning/reset_job_spec.rb +46 -0
- data/spec/elasticsearch/api/actions/machine_learning/set_upgrade_mode_spec.rb +51 -0
- data/spec/elasticsearch/api/actions/machine_learning/start_trained_model_deployment_spec.rb +46 -0
- data/spec/elasticsearch/api/actions/machine_learning/stop_trained_model_deployment_spec.rb +46 -0
- data/spec/elasticsearch/api/actions/mget_spec.rb +5 -20
- data/spec/elasticsearch/api/actions/migration/get_feature_upgrade_status_spec.rb +34 -0
- data/spec/elasticsearch/api/actions/migration/post_feature_upgrade_spec.rb +34 -0
- data/spec/elasticsearch/api/actions/msearch_spec.rb +16 -14
- data/spec/elasticsearch/api/actions/msearch_template_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/mtermvectors_spec.rb +4 -6
- data/spec/elasticsearch/api/actions/nodes/clear_repositories_metering_archive_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/nodes/get_repositories_metering_info_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/nodes/hot_threads_spec.rb +6 -6
- data/spec/elasticsearch/api/actions/nodes/info_spec.rb +6 -6
- data/spec/elasticsearch/api/actions/nodes/reload_secure_settings_spec.rb +5 -5
- data/spec/elasticsearch/api/actions/nodes/stats_spec.rb +4 -4
- data/spec/elasticsearch/api/actions/open_point_in_time_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/put_script_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/rank_eval_spec.rb +127 -0
- data/spec/elasticsearch/api/actions/reindex_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/render_search_template_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/scroll_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/search_mvt_spec.rb +3 -2
- data/spec/elasticsearch/api/actions/search_shards_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/search_spec.rb +2 -40
- data/spec/elasticsearch/api/actions/search_template_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/searchable_snapshots/cache_stats_spec.rb +44 -0
- data/spec/elasticsearch/api/actions/searchable_snapshots/clear_cache_spec.rb +44 -0
- data/spec/elasticsearch/api/actions/searchable_snapshots/mount_spec.rb +56 -0
- data/spec/elasticsearch/api/actions/searchable_snapshots/stats_spec.rb +43 -0
- data/spec/elasticsearch/api/actions/security/clear_cached_service_tokens_spec.rb +58 -0
- data/spec/elasticsearch/api/actions/security/create_api_key_spec.rb +79 -0
- data/spec/elasticsearch/api/actions/security/create_service_token_spec.rb +54 -0
- data/spec/elasticsearch/api/actions/security/delete_service_token_spec.rb +60 -0
- data/spec/elasticsearch/api/actions/security/enroll_kibana_spec.rb +34 -0
- data/spec/elasticsearch/api/actions/security/get_api_key_spec.rb +56 -0
- data/spec/elasticsearch/api/actions/{indices/upgrade_spec.rb → security/get_builtin_privileges_spec.rb} +4 -4
- data/spec/elasticsearch/api/actions/security/get_service_accounts_spec.rb +58 -0
- data/spec/elasticsearch/api/actions/security/get_service_credentials_spec.rb +53 -0
- data/spec/elasticsearch/api/actions/security/invalidate_api_key_spec.rb +38 -0
- data/spec/elasticsearch/api/actions/security/query_api_keys_spec.rb +48 -0
- data/spec/elasticsearch/api/actions/security/saml_authenticate_spec.rb +44 -0
- data/spec/elasticsearch/api/actions/security/saml_complete_logout_spec.rb +44 -0
- data/spec/elasticsearch/api/actions/security/saml_invalidate_spec.rb +44 -0
- data/spec/elasticsearch/api/actions/security/saml_logout_spec.rb +44 -0
- data/spec/elasticsearch/api/actions/security/saml_prepare_authentication_spec.rb +44 -0
- data/spec/elasticsearch/api/actions/security/saml_service_provider_metadata_spec.rb +46 -0
- data/spec/elasticsearch/api/actions/shutdown/delete_node_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/shutdown/get_node_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/shutdown/put_node_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/snapshot/clone_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/snapshot/create_repository_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/snapshot/create_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/snapshot/delete_repository_spec.rb +2 -2
- data/spec/elasticsearch/api/actions/snapshot/delete_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/snapshot/get_repository_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/snapshot/get_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/snapshot/repository_analize_spec.rb +2 -4
- data/spec/elasticsearch/api/actions/snapshot/restore_spec.rb +7 -10
- data/spec/elasticsearch/api/actions/snapshot/status_spec.rb +2 -3
- data/spec/elasticsearch/api/actions/snapshot/verify_repository_spec.rb +6 -7
- data/spec/elasticsearch/api/actions/sql/delete_async_spec.rb +46 -0
- data/spec/elasticsearch/api/actions/sql/get_async_spec.rb +46 -0
- data/spec/elasticsearch/api/actions/sql/get_async_stats_spec.rb +46 -0
- data/spec/elasticsearch/api/actions/tasks/cancel_spec.rb +7 -8
- data/spec/elasticsearch/api/actions/tasks/get_spec.rb +1 -1
- data/spec/elasticsearch/api/actions/tasks/list_spec.rb +6 -7
- data/spec/elasticsearch/api/actions/terms_enum_spec.rb +52 -0
- data/spec/elasticsearch/api/actions/termvectors_spec.rb +5 -5
- data/spec/elasticsearch/api/actions/update_by_query_spec.rb +6 -7
- data/spec/elasticsearch/api/actions/update_document_spec.rb +6 -20
- data/spec/elasticsearch/api/api_response_spec.rb +64 -0
- data/spec/elasticsearch/api/api_spec.rb +0 -3
- data/spec/elasticsearch/api/client_spec.rb +0 -4
- data/spec/elasticsearch/api/rest_api_yaml_spec.rb +78 -83
- data/spec/elasticsearch/api/utils_spec.rb +26 -77
- data/spec/rest_api_tests_helper.rb +91 -0
- data/spec/{skipped_tests.yml → skipped_tests_free.yml} +4 -9
- data/spec/skipped_tests_platinum.yml +59 -0
- data/spec/spec_helper.rb +9 -22
- data/spec/unit_tests_platinum/test_helper.rb +72 -0
- data/spec/unit_tests_platinum/unit/async_search/delete_test.rb +39 -0
- data/spec/unit_tests_platinum/unit/async_search/get_test.rb +39 -0
- data/spec/unit_tests_platinum/unit/async_search/status_test.rb +39 -0
- data/spec/unit_tests_platinum/unit/async_search/submit_test.rb +50 -0
- data/spec/unit_tests_platinum/unit/autoscaling/delete_autoscaling_policy_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/autoscaling/get_autoscaling_capacity_test.rb +40 -0
- data/spec/unit_tests_platinum/unit/autoscaling/get_autoscaling_policy_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/autoscaling/put_autoscaling_policy_test.rb +52 -0
- data/spec/unit_tests_platinum/unit/enrich/delete_policy_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/eql/delete_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/eql/get_status_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/eql/get_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/eql/search_test.rb +52 -0
- data/spec/unit_tests_platinum/unit/graph/explore_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/index_lifecycle_management/explain_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/index_lifecycle_management/get_status_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/index_lifecycle_management/move_to_step.rb +43 -0
- data/spec/unit_tests_platinum/unit/index_lifecycle_management/remove_policy_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/index_lifecycle_management/retry_policy_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/index_lifecycle_management/start_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/index_lifecycle_management/stop_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/indices/create_data_stream_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/indices/data_stream_stats_test.rb +54 -0
- data/spec/unit_tests_platinum/unit/indices/delete_data_stream_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/indices/get_data_stream_test.rb +50 -0
- data/spec/unit_tests_platinum/unit/indices/migrate_to_data_stream_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/indices/modify_data_stream_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/indices/promote_data_stream_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/info_test.rb +40 -0
- data/spec/unit_tests_platinum/unit/knn_search_test.rb +40 -0
- data/spec/unit_tests_platinum/unit/license/delete_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/license/get_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/license/post_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/logstash/delete_pipeline_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/logstash/get_pipeline_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/logstash/put_pipeline_test.rb +46 -0
- data/spec/unit_tests_platinum/unit/machine_learning/close_job_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/delete_datafeed_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/delete_expired_data_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/delete_filter_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/delete_forecast_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/delete_job_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/delete_model_alias_test.rb +40 -0
- data/spec/unit_tests_platinum/unit/machine_learning/delete_model_snapshot_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/flush_job_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/forecast_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/get_buckets_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/get_categories_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/get_datafeed_stats_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/get_datafeeds_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/get_filters_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/get_influencers_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/get_job_stats_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/get_jobs_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/get_model_snapshots_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/get_overall_buckets_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/get_records_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/open_job_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/post_data_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/preview_data_frame_analytics_test.rb +64 -0
- data/spec/unit_tests_platinum/unit/machine_learning/preview_datafeed_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/put_datafeed_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/put_filter_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/put_job_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/put_trained_model_alias_test.rb +40 -0
- data/spec/unit_tests_platinum/unit/machine_learning/revert_model_snapshot_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/start_datafeed_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/stop_datafeed_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/update_data_frame_analytics_test.rb +40 -0
- data/spec/unit_tests_platinum/unit/machine_learning/update_datafeed_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/update_filter_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/update_job_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/update_model_snapshot_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/upgrade_job_snapshot_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/validate_detector_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/machine_learning/validate_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/migration/deprecations_test.rb +42 -0
- data/spec/unit_tests_platinum/unit/monitoring/bulk_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/rollup/get_rollup_index_caps_test.rb +40 -0
- data/spec/unit_tests_platinum/unit/rollup/rollup_test.rb +58 -0
- data/spec/unit_tests_platinum/unit/security/authenticate_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/change_password_test.rb +55 -0
- data/spec/unit_tests_platinum/unit/security/clear_api_key_cache_test.rb +40 -0
- data/spec/unit_tests_platinum/unit/security/clear_cached_privileges_test.rb +40 -0
- data/spec/unit_tests_platinum/unit/security/clear_cached_realms_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/clear_cached_roles_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/delete_privileges_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/delete_role_mapping_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/delete_role_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/delete_user_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/disable_user_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/enable_user_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/get_privileges_test.rb +78 -0
- data/spec/unit_tests_platinum/unit/security/get_role_mapping_test.rb +54 -0
- data/spec/unit_tests_platinum/unit/security/get_role_test.rb +62 -0
- data/spec/unit_tests_platinum/unit/security/get_token_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/get_user_privileges_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/get_user_test.rb +61 -0
- data/spec/unit_tests_platinum/unit/security/grant_api_key_test.rb +41 -0
- data/spec/unit_tests_platinum/unit/security/has_privileges_test.rb +55 -0
- data/spec/unit_tests_platinum/unit/security/invalidate_token_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/put_privileges_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/put_role_mapping_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/put_role_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/security/put_user_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/ssl/certificates_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/text_structure/find_structure_test.rb +40 -0
- data/spec/unit_tests_platinum/unit/transform/upgrade_transforms_spec.rb +34 -0
- data/spec/unit_tests_platinum/unit/usage_test.rb +40 -0
- data/spec/unit_tests_platinum/unit/watcher/ack_watch_test.rb +55 -0
- data/spec/unit_tests_platinum/unit/watcher/activate_watch_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/watcher/deactivate_watch_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/watcher/delete_watch_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/watcher/execute_watch_test.rb +55 -0
- data/spec/unit_tests_platinum/unit/watcher/get_watch_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/watcher/put_watch_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/watcher/query_watches_test.rb +52 -0
- data/spec/unit_tests_platinum/unit/watcher/start_test.rb +41 -0
- data/spec/unit_tests_platinum/unit/watcher/stats_test.rb +43 -0
- data/spec/unit_tests_platinum/unit/watcher/stop_test.rb +43 -0
- data/utils/README.md +2 -10
- data/utils/thor/.rubocop.yml +0 -2
- data/utils/thor/generate_source.rb +26 -47
- data/utils/thor/generator/endpoint_specifics.rb +2 -30
- data/utils/thor/generator/files_helper.rb +24 -37
- data/utils/thor/templates/{_params_registry.erb → _body.erb} +15 -12
- data/utils/thor/templates/_documentation_top.erb +1 -2
- data/utils/thor/templates/_method_setup.erb +20 -32
- data/utils/thor/templates/_perform_request.erb +16 -22
- data/utils/thor/templates/method.erb +2 -7
- metadata +632 -86
- data/lib/elasticsearch/api/actions/cat/params_registry.rb +0 -60
- data/lib/elasticsearch/api/actions/cluster/params_registry.rb +0 -60
- data/lib/elasticsearch/api/actions/dangling_indices/params_registry.rb +0 -60
- data/lib/elasticsearch/api/actions/features/params_registry.rb +0 -60
- data/lib/elasticsearch/api/actions/indices/params_registry.rb +0 -60
- data/lib/elasticsearch/api/actions/ingest/params_registry.rb +0 -60
- data/lib/elasticsearch/api/actions/nodes/params_registry.rb +0 -60
- data/lib/elasticsearch/api/actions/params_registry.rb +0 -58
- data/lib/elasticsearch/api/actions/shutdown/params_registry.rb +0 -60
- data/lib/elasticsearch/api/actions/snapshot/params_registry.rb +0 -60
- data/lib/elasticsearch/api/actions/tasks/params_registry.rb +0 -60
- data/spec/elasticsearch/api/actions/indices/flush_synced_spec.rb +0 -90
- data/spec/rest_yaml_tests_helper.rb +0 -135
- /data/{LICENSE → LICENSE.txt} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99c344ac040a814342dad8d82f4f4b01fcb13fb8a98a1782bf381297efa53d99
|
4
|
+
data.tar.gz: 4b3778473c7384d433d9c9df4cf94b6e5f13b605c258e2f2781e4a1046272228
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79009142d3cdb47fbab8ade4b2d66949bc1ef81f33653f17c1db9eceb745e34440a87efca4b8253fae189c52172890f978a2c2a8d11b1013cc469bc6503f5f40
|
7
|
+
data.tar.gz: c30ef81f519d5d61acd0ffa37f34fbe267ac8acba5f4ff48e493a39f0724ef4b07116a4674e2cba8ae74febd55bfc168349e1a5e02336b67c778068c33b714bd
|
data/Gemfile
CHANGED
@@ -20,16 +20,8 @@ source 'https://rubygems.org'
|
|
20
20
|
# Specify your gem's dependencies in elasticsearch-api.gemspec
|
21
21
|
gemspec
|
22
22
|
|
23
|
-
if File.exist? File.expand_path("../../elasticsearch-transport", __FILE__)
|
24
|
-
gem 'elasticsearch-transport', path: File.expand_path("../../elasticsearch-transport", __FILE__), require: true
|
25
|
-
end
|
26
|
-
|
27
23
|
if File.exist? File.expand_path("../../elasticsearch/elasticsearch.gemspec", __FILE__)
|
28
|
-
gem 'elasticsearch', path: File.expand_path(
|
29
|
-
end
|
30
|
-
|
31
|
-
if File.exist? File.expand_path("../../elasticsearch-extensions", __FILE__)
|
32
|
-
gem 'elasticsearch-extensions', path: File.expand_path("../../elasticsearch-extensions", __FILE__), require: false
|
24
|
+
gem 'elasticsearch', path: File.expand_path('../../elasticsearch', __FILE__), require: false
|
33
25
|
end
|
34
26
|
|
35
27
|
group :development do
|
@@ -38,6 +30,6 @@ group :development do
|
|
38
30
|
if defined?(JRUBY_VERSION)
|
39
31
|
gem 'pry-nav'
|
40
32
|
else
|
41
|
-
gem 'pry-byebug'
|
33
|
+
gem 'pry-byebug'
|
42
34
|
end
|
43
35
|
end
|
data/README.md
CHANGED
@@ -1,36 +1,46 @@
|
|
1
1
|
# Elasticsearch::API
|
2
2
|
|
3
|
-
**This library is part of the [`elasticsearch-ruby`](https://github.com/elasticsearch/elasticsearch-ruby/) package;
|
3
|
+
**This library is part of the [`elasticsearch-ruby`](https://github.com/elasticsearch/elasticsearch-ruby/) package;
|
4
|
+
please refer to it, unless you want to use this library standalone.**
|
4
5
|
|
5
6
|
----
|
6
7
|
|
7
|
-
The `elasticsearch-api` library provides a Ruby implementation of
|
8
|
+
The `elasticsearch-api` library provides a Ruby implementation of
|
9
|
+
the [Elasticsearch](http://elasticsearch.com) REST API.
|
8
10
|
|
9
|
-
It does not provide an Elasticsearch client; see the
|
11
|
+
It does not provide an Elasticsearch client; see the
|
12
|
+
[`elasticsearch-transport`](https://github.com/elasticsearch/elasticsearch-ruby/tree/main/elasticsearch-transport) library.
|
10
13
|
|
11
|
-
|
14
|
+
We follow Ruby’s own maintenance policy and officially support all currently maintained versions per [Ruby Maintenance Branches](https://www.ruby-lang.org/en/downloads/branches/).
|
15
|
+
|
16
|
+
Language clients are forward compatible; meaning that clients support communicating with greater minor versions of Elasticsearch. Elastic language clients are also backwards compatible with lesser supported minor Elasticsearch versions.
|
12
17
|
|
13
18
|
## Installation
|
14
19
|
|
15
20
|
Install the package from [Rubygems](https://rubygems.org):
|
16
21
|
|
17
|
-
|
18
|
-
gem install elasticsearch-api
|
19
|
-
```
|
22
|
+
gem install elasticsearch-api
|
20
23
|
|
21
|
-
|
24
|
+
To use an unreleased version, either add it to your `Gemfile` for [Bundler](http://gembundler.com):
|
22
25
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
+
gem 'elasticsearch-api', git: 'git://github.com/elasticsearch/elasticsearch-ruby.git'
|
27
|
+
|
28
|
+
or install it from a source code checkout:
|
29
|
+
|
30
|
+
git clone https://github.com/elasticsearch/elasticsearch-ruby.git
|
31
|
+
cd elasticsearch-ruby/elasticsearch-api
|
32
|
+
bundle install
|
33
|
+
rake install
|
26
34
|
|
27
35
|
## Usage
|
28
36
|
|
29
|
-
The library is designed as a group of standalone Ruby modules, which can be mixed into a class
|
37
|
+
The library is designed as a group of standalone Ruby modules, which can be mixed into a class
|
38
|
+
providing connection to Elasticsearch -- an Elasticsearch client.
|
30
39
|
|
31
40
|
### Usage with the `elasticsearch` gem
|
32
41
|
|
33
|
-
**When you use the client from the [`elasticsearch-ruby`](https://github.com/elasticsearch/elasticsearch-ruby/) package,
|
42
|
+
**When you use the client from the [`elasticsearch-ruby`](https://github.com/elasticsearch/elasticsearch-ruby/) package,
|
43
|
+
the library modules have been already included**, so you just call the API methods:
|
34
44
|
|
35
45
|
```ruby
|
36
46
|
require 'elasticsearch'
|
@@ -44,7 +54,8 @@ client.search(index: 'myindex', body: { query: { match: { title: 'test' } } })
|
|
44
54
|
# => {"took"=>2, ..., "hits"=>{"total":5, ...}}
|
45
55
|
```
|
46
56
|
|
47
|
-
Full documentation
|
57
|
+
Full documentation and examples are included as RDoc annotations in the source code
|
58
|
+
and available online at <http://rubydoc.info/gems/elasticsearch-api>.
|
48
59
|
|
49
60
|
### Usage with a custom client
|
50
61
|
|
@@ -177,7 +188,7 @@ time rake test:unit
|
|
177
188
|
time rake test:integration
|
178
189
|
```
|
179
190
|
|
180
|
-
We run the test suite for Elasticsearch's Rest API tests. You can read more about this in [the test runner README](https://github.com/elastic/elasticsearch-ruby/tree/
|
191
|
+
We run the test suite for Elasticsearch's Rest API tests. You can read more about this in [the test runner README](https://github.com/elastic/elasticsearch-ruby/tree/main/api-spec-testing#rest-api-yaml-test-runner).
|
181
192
|
|
182
193
|
The `rest_api` needs the test files from Elasticsearch. You can run the rake task to download the test artifacts in the root folder of the project. This task needs a running cluster to determine which version and build hash of Elasticsearch to use and test against. `TEST_ES_SERVER=http://localhost:9200 rake elasticsearch:download_artifacts`. This will download the necessary files used for the integration tests to `./tmp`.
|
183
194
|
|
data/Rakefile
CHANGED
@@ -34,17 +34,34 @@ namespace :test do
|
|
34
34
|
|
35
35
|
# Unit tests - rake test:unit
|
36
36
|
#
|
37
|
+
desc 'Run unit tests'
|
37
38
|
task unit: :spec
|
38
39
|
RSpec::Core::RakeTask.new(:spec) do |t|
|
39
|
-
t.exclude_pattern = 'spec
|
40
|
+
t.exclude_pattern = 'spec/elasticsearch/api/rest_api_yaml_spec.rb'
|
40
41
|
end
|
41
42
|
|
42
|
-
|
43
|
+
namespace :platinum do
|
44
|
+
desc 'Run Platinum Rest API Spec tests'
|
45
|
+
RSpec::Core::RakeTask.new(:api) do |t|
|
46
|
+
ENV['TEST_SUITE'] = 'platinum'
|
47
|
+
Rake::Task['test:rest_api'].invoke
|
48
|
+
end
|
49
|
+
|
50
|
+
desc 'Run Platinum Unit tests - DEPRECATED: Will be migrated to RSpec'
|
51
|
+
Rake::TestTask.new(:unit) do |test|
|
52
|
+
test.libs << 'spec/unit_tests_platinum'
|
53
|
+
test.test_files = FileList['spec/unit_tests_platinum/unit/**/*_test.rb']
|
54
|
+
test.verbose = false
|
55
|
+
test.warning = false
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
desc 'Run Rest API Spec tests'
|
43
60
|
RSpec::Core::RakeTask.new(:rest_api) do |t|
|
44
|
-
t.pattern = 'spec
|
61
|
+
t.pattern = 'spec/elasticsearch/api/rest_api_yaml_spec.rb'
|
45
62
|
end
|
46
63
|
|
47
|
-
desc
|
64
|
+
desc 'Run integration tests'
|
48
65
|
task :integration do
|
49
66
|
Rake::Task['test:rest_api'].invoke
|
50
67
|
end
|
@@ -54,58 +71,6 @@ namespace :test do
|
|
54
71
|
Rake::Task['test:unit'].invoke
|
55
72
|
Rake::Task['test:integration'].invoke
|
56
73
|
end
|
57
|
-
|
58
|
-
def refresh_artifacts(build_hash, version_number)
|
59
|
-
unless build_hash
|
60
|
-
STDERR.puts "[!] Cannot determine checkout build hash -- server not running"
|
61
|
-
exit(1)
|
62
|
-
end
|
63
|
-
|
64
|
-
puts 'Downloading artifacts file...'
|
65
|
-
filename = 'tmp/artifacts.json'
|
66
|
-
`curl -s https://artifacts-api.elastic.co/v1/versions/#{version_number} -o #{filename}`
|
67
|
-
|
68
|
-
unless File.exist?("./#{filename}")
|
69
|
-
STDERR.puts '[!] Couldn\'t download artifacts file'
|
70
|
-
exit 1
|
71
|
-
end
|
72
|
-
|
73
|
-
artifacts = JSON.parse(File.read('./tmp/artifacts.json'))
|
74
|
-
|
75
|
-
build_hash_artifact = artifacts['version']['builds'].select do |a|
|
76
|
-
a.dig('projects', 'elasticsearch', 'commit_hash') == build_hash
|
77
|
-
end.first
|
78
|
-
# Dig into the elasticsearch packages, search for the rest-resources-zip package and catch the URL:
|
79
|
-
zip_url = build_hash_artifact.dig('projects', 'elasticsearch', 'packages').select { |k,v| k =~ /rest-resources-zip/ }.map { | _, v| v['url'] }.first
|
80
|
-
|
81
|
-
filename = zip_url.split('/').last
|
82
|
-
puts 'Downloading zip file:'
|
83
|
-
`curl -s #{zip_url} -o tmp/#{filename}`
|
84
|
-
|
85
|
-
unless File.exist?("./tmp/#{filename}")
|
86
|
-
STDERR.puts '[!] Couldn\'t download artifact'
|
87
|
-
exit 1
|
88
|
-
end
|
89
|
-
|
90
|
-
puts "Unzipping file #{filename}"
|
91
|
-
`unzip -o tmp/#{filename} -d tmp/`
|
92
|
-
end
|
93
|
-
|
94
|
-
namespace :cluster do
|
95
|
-
desc "Start Elasticsearch nodes for tests"
|
96
|
-
task :start do
|
97
|
-
$LOAD_PATH << File.expand_path('../../elasticsearch-transport/lib', __FILE__) << File.expand_path('../test', __FILE__)
|
98
|
-
require 'elasticsearch/extensions/test/cluster'
|
99
|
-
Elasticsearch::Extensions::Test::Cluster.start
|
100
|
-
end
|
101
|
-
|
102
|
-
desc "Stop Elasticsearch nodes for tests"
|
103
|
-
task :stop do
|
104
|
-
$LOAD_PATH << File.expand_path('../../elasticsearch-transport/lib', __FILE__) << File.expand_path('../test', __FILE__)
|
105
|
-
require 'elasticsearch/extensions/test/cluster'
|
106
|
-
Elasticsearch::Extensions::Test::Cluster.stop
|
107
|
-
end
|
108
|
-
end
|
109
74
|
end
|
110
75
|
|
111
76
|
# ----- Documentation tasks ---------------------------------------------------
|
@@ -0,0 +1,118 @@
|
|
1
|
+
# Rest API YAML Test Runner
|
2
|
+
|
3
|
+
The specs in `elasticsearch-api` automatically run the tests from [Elasticsearch's REST API Spec tests](https://github.com/elastic/elasticsearch/tree/main/rest-api-spec/src/main/resources/rest-api-spec/test#test-suite). The test runner is defined in the `spec` folder, starting with the `rest_api_yaml_spec.rb` file.
|
4
|
+
|
5
|
+
You can run the tests with Rake. The main task is `rake test:rest_api`. This task will evaluate the `TEST_SUITE` environment variable. It will run either the `free` or `platinum` tests suites depending on the value of `TEST_SUITE`. If you don't set this value, the task will run the `free` test suite by default. To run the `platinum` test suite use:
|
6
|
+
```
|
7
|
+
TEST_SUITE=platinum rake test:rest_api
|
8
|
+
```
|
9
|
+
|
10
|
+
Or the shortcut:
|
11
|
+
```
|
12
|
+
rake test:platinum:api
|
13
|
+
```
|
14
|
+
|
15
|
+
## REST API YAML Spec
|
16
|
+
|
17
|
+
The file that traverses the yaml files and loads a **TestFile** object per each of them:
|
18
|
+
`elasticsearch-api/spec/elasticsearch/api/rest_api_yaml_spec.rb`
|
19
|
+
|
20
|
+
You can use the SINGLE_TEST env variable to run just one test or one test directory. E.g.:
|
21
|
+
```
|
22
|
+
$ cd elasticsearch-api && SINGLE_TEST=indices.resolve_index/10_basic_resolve_index.yml TEST_ES_SERVER='http://localhost:9200' be rake test:rest_api
|
23
|
+
```
|
24
|
+
And:
|
25
|
+
```
|
26
|
+
$ cd elasticsearch-api && SINGLE_TEST=indices.resolve_index TEST_ES_SERVER='http://localhost:9200' be rake test:rest_api
|
27
|
+
```
|
28
|
+
|
29
|
+
## Skipped tests
|
30
|
+
|
31
|
+
We sometimes skip tests, generally due to limitations on how we run the CI server or for stuff that hasn't been completely implemented on the client yet. Skipped tests are located in `elasticsearch-api/spec/skipped_tests.yml`. You can run just the tests which are currently being skipped by running:
|
32
|
+
```
|
33
|
+
$ cd elasticsearch-api && TEST_SUITE=(free|platinum) RUN_SKIPPED_TESTS=true TEST_ES_SERVER='http://localhost:9200' be rake test:rest_api
|
34
|
+
```
|
35
|
+
|
36
|
+
## TestFile
|
37
|
+
Class representing a single test file. Contains setup, teardown and tests.
|
38
|
+
`../api-spec-testing/test_file.rb`
|
39
|
+
|
40
|
+
## Test
|
41
|
+
Every single test in the test file is represented in the Test object.
|
42
|
+
`../api-spec-testing/test_file/test.rb`
|
43
|
+
|
44
|
+
## TaskGroup
|
45
|
+
|
46
|
+
Tests are ordered in task groups, an array of TaskGroup objects.
|
47
|
+
`../api-spec-testing/test_file/task_group.rb`
|
48
|
+
|
49
|
+
Task Groups are a representation of a block of actions consisting of 'do' actions and their verifications. e.g.:
|
50
|
+
```yaml
|
51
|
+
- do:
|
52
|
+
index:
|
53
|
+
index: test-index
|
54
|
+
id: 1
|
55
|
+
body: { foo: bar }
|
56
|
+
|
57
|
+
- match: { _index: test-index }
|
58
|
+
- match: { _id: "1"}
|
59
|
+
- match: { _version: 1}
|
60
|
+
```
|
61
|
+
|
62
|
+
**Before** each test, the spec runner runs `clear_data` on the test_file. This clears indices, index templates, snapshots and repositories. For platinum it also clears roles, users, privileges, datafeeds, ml_jobs and more.
|
63
|
+
|
64
|
+
**After** each test, it runs the test file teardown and `clear_data` again.
|
65
|
+
|
66
|
+
For each TaskGroup, it sees what's in the task group definition and runs an expectation test.
|
67
|
+
|
68
|
+
## Action
|
69
|
+
|
70
|
+
This file is where the action is executed, where we call the client with the method from the test and save the response which is then used in the task group.
|
71
|
+
|
72
|
+
## Rest YAML tests Helper
|
73
|
+
|
74
|
+
`elasticsearch-api/spec/rest_yaml_tests_helper.rb`
|
75
|
+
|
76
|
+
- `ADMIN_CLIENT` is defined here.
|
77
|
+
- `SINGLE_TEST` is defined here.
|
78
|
+
- Skipped tests are listed here
|
79
|
+
|
80
|
+
## Spec Helper
|
81
|
+
|
82
|
+
- `DEFAULT_CLIENT` is defined here
|
83
|
+
|
84
|
+
## Enable Logging
|
85
|
+
|
86
|
+
To enable logging, set the environment `QUIET` to false before running the tests. In CI, this is located in the [Dockerfile](https://github.com/elastic/elasticsearch-ruby/blob/main/.ci/Dockerfile). The environment variable is evaluated in the Rest YAML tests Helper file.
|
87
|
+
|
88
|
+
# Features
|
89
|
+
|
90
|
+
## RSpec Matchers
|
91
|
+
|
92
|
+
The tests use custom [RSpec Matchers](https://www.rubydoc.info/gems/rspec-expectations/RSpec/Matchers) defined in `api-spec-testing/rspec_matchers.rb`.
|
93
|
+
|
94
|
+
From the [Rest API test docs](https://github.com/elastic/elasticsearch/tree/master/rest-api-spec/src/main/resources/rest-api-spec/test#do):
|
95
|
+
|
96
|
+
## `catch`
|
97
|
+
|
98
|
+
> If the arguments to `do` include `catch`, then we are expecting an error, which should be caught and tested.
|
99
|
+
|
100
|
+
In `rest_api_yaml_spec`, there's a check for `catch_exception?` per task_group. This checks if the `do` definitions have any `catch` definitions. If there is a `catch`, it'll send the request and use the `match_error` RSpec custom matcher to validate the expected error.
|
101
|
+
|
102
|
+
## `warnings`
|
103
|
+
|
104
|
+
>If the arguments to `do` include `warnings` then we are expecting a Warning header to come back from the request. If the arguments don’t include a warnings argument then we don’t expect the response to include a Warning header. The warnings must match exactly. Using it looks like this:
|
105
|
+
|
106
|
+
```
|
107
|
+
- do:
|
108
|
+
warnings:
|
109
|
+
- '[index] is deprecated'
|
110
|
+
- quotes are not required because yaml
|
111
|
+
- but this argument is always a list, never a single string
|
112
|
+
- no matter how many warnings you expect
|
113
|
+
get:
|
114
|
+
index: test
|
115
|
+
type: test
|
116
|
+
id: 1
|
117
|
+
```
|
118
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
2
|
+
# license agreements. See the NOTICE file distributed with
|
3
|
+
# this work for additional information regarding copyright
|
4
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
5
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
6
|
+
# not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
12
|
+
# software distributed under the License is distributed on an
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
14
|
+
# KIND, either express or implied. See the License for the
|
15
|
+
# specific language governing permissions and limitations
|
16
|
+
# under the License.
|
17
|
+
|
18
|
+
require 'logger'
|
19
|
+
|
20
|
+
module Elasticsearch
|
21
|
+
module RestAPIYAMLTests
|
22
|
+
module Logging
|
23
|
+
def logger
|
24
|
+
@logger ||= Logger.new($stdout)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,312 @@
|
|
1
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
2
|
+
# license agreements. See the NOTICE file distributed with
|
3
|
+
# this work for additional information regarding copyright
|
4
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
5
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
6
|
+
# not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing,
|
12
|
+
# software distributed under the License is distributed on an
|
13
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
14
|
+
# KIND, either express or implied. See the License for the
|
15
|
+
# specific language governing permissions and limitations
|
16
|
+
# under the License.
|
17
|
+
|
18
|
+
# Match the `length` of a field.
|
19
|
+
RSpec::Matchers.define :match_response_field_length do |expected_pairs, test|
|
20
|
+
match do |response|
|
21
|
+
expected_pairs.all? do |expected_key, expected_value|
|
22
|
+
# ssl test returns results at '$body' key. See ssl/10_basic.yml
|
23
|
+
expected_pairs = expected_pairs['$body'] if expected_pairs['$body']
|
24
|
+
|
25
|
+
split_key = TestFile::Test.split_and_parse_key(expected_key).collect do |k|
|
26
|
+
test.get_cached_value(k)
|
27
|
+
end
|
28
|
+
|
29
|
+
actual_value = split_key.inject(response) do |_response, key|
|
30
|
+
# If the key is an index, indicating element of a list
|
31
|
+
if _response.empty? && key == '$body'
|
32
|
+
_response
|
33
|
+
else
|
34
|
+
_response[key] || _response[key.to_s]
|
35
|
+
end
|
36
|
+
end
|
37
|
+
actual_value.size == expected_value
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# Validate that a field is `true`.
|
43
|
+
RSpec::Matchers.define :match_true_field do |field, test|
|
44
|
+
match do |response|
|
45
|
+
# Handle is_true: ''
|
46
|
+
return !!response if field == ''
|
47
|
+
|
48
|
+
split_key = TestFile::Test.split_and_parse_key(field).collect do |k|
|
49
|
+
test.get_cached_value(k)
|
50
|
+
end
|
51
|
+
!!TestFile::Test.find_value_in_document(split_key, response)
|
52
|
+
end
|
53
|
+
|
54
|
+
failure_message do |response|
|
55
|
+
"the response `#{response}` does not have `true` in the field `#{field}`"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# Validate that a field is `false`.
|
60
|
+
RSpec::Matchers.define :match_false_field do |field, test|
|
61
|
+
match do |response|
|
62
|
+
# Handle is_false: ''
|
63
|
+
return !response if field == ''
|
64
|
+
split_key = TestFile::Test.split_and_parse_key(field).collect do |k|
|
65
|
+
test.get_cached_value(k)
|
66
|
+
end
|
67
|
+
value_in_doc = TestFile::Test.find_value_in_document(split_key, response)
|
68
|
+
value_in_doc == 0 || !value_in_doc
|
69
|
+
end
|
70
|
+
|
71
|
+
failure_message do |response|
|
72
|
+
"the response `#{response}` does not have `false` in the field `#{field}`"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
# Validate that a field is `gte` than a given value.
|
77
|
+
RSpec::Matchers.define :match_gte_field do |expected_pairs, test|
|
78
|
+
match do |response|
|
79
|
+
expected_pairs.all? do |expected_key, expected_value|
|
80
|
+
|
81
|
+
split_key = TestFile::Test.split_and_parse_key(expected_key).collect do |k|
|
82
|
+
test.get_cached_value(k)
|
83
|
+
end
|
84
|
+
actual_value = split_key.inject(response) do |_response, key|
|
85
|
+
|
86
|
+
# If the key is an index, indicating element of a list
|
87
|
+
if _response.empty? && key == '$body'
|
88
|
+
_response
|
89
|
+
else
|
90
|
+
_response[key] || _response[key]
|
91
|
+
end
|
92
|
+
end
|
93
|
+
actual_value >= test.get_cached_value(expected_value)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
# Validate that a field is `gt` than a given value.
|
99
|
+
RSpec::Matchers.define :match_gt_field do |expected_pairs, test|
|
100
|
+
match do |response|
|
101
|
+
expected_pairs.all? do |expected_key, expected_value|
|
102
|
+
|
103
|
+
split_key = TestFile::Test.split_and_parse_key(expected_key).collect do |k|
|
104
|
+
test.get_cached_value(k)
|
105
|
+
end
|
106
|
+
|
107
|
+
actual_value = split_key.inject(response) do |_response, key|
|
108
|
+
# If the key is an index, indicating element of a list
|
109
|
+
if _response.empty? && key == '$body'
|
110
|
+
_response
|
111
|
+
else
|
112
|
+
_response[key] || _response[key.to_s]
|
113
|
+
end
|
114
|
+
end
|
115
|
+
actual_value > test.get_cached_value(expected_value)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
# Validate that a field is `lte` than a given value.
|
121
|
+
RSpec::Matchers.define :match_lte_field do |expected_pairs, test|
|
122
|
+
match do |response|
|
123
|
+
expected_pairs.all? do |expected_key, expected_value|
|
124
|
+
|
125
|
+
split_key = TestFile::Test.split_and_parse_key(expected_key).collect do |k|
|
126
|
+
test.get_cached_value(k)
|
127
|
+
end
|
128
|
+
|
129
|
+
actual_value = split_key.inject(response) do |_response, key|
|
130
|
+
# If the key is an index, indicating element of a list
|
131
|
+
if _response.empty? && key == '$body'
|
132
|
+
_response
|
133
|
+
else
|
134
|
+
_response[key] || _response[key.to_s]
|
135
|
+
end
|
136
|
+
end
|
137
|
+
actual_value <= test.get_cached_value(expected_value)
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
# Validate that a field is `lt` than a given value.
|
143
|
+
RSpec::Matchers.define :match_lt_field do |expected_pairs, test|
|
144
|
+
match do |response|
|
145
|
+
expected_pairs.all? do |expected_key, expected_value|
|
146
|
+
|
147
|
+
split_key = TestFile::Test.split_and_parse_key(expected_key).collect do |k|
|
148
|
+
test.get_cached_value(k)
|
149
|
+
end
|
150
|
+
|
151
|
+
actual_value = split_key.inject(response) do |_response, key|
|
152
|
+
# If the key is an index, indicating element of a list
|
153
|
+
if _response.empty? && key == '$body'
|
154
|
+
_response
|
155
|
+
else
|
156
|
+
_response[key] || _response[key.to_s]
|
157
|
+
end
|
158
|
+
end
|
159
|
+
actual_value < test.get_cached_value(expected_value)
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
# Match an arbitrary field of a response to a given value.
|
165
|
+
RSpec::Matchers.define :match_response do |pairs, test|
|
166
|
+
match do |response|
|
167
|
+
pairs = sanitize_pairs(pairs)
|
168
|
+
compare_pairs(pairs, response, test).empty?
|
169
|
+
end
|
170
|
+
|
171
|
+
failure_message do |response|
|
172
|
+
"the expected response pair/value(s) #{@mismatched_pairs}" +
|
173
|
+
" does not match the pair/value(s) in the response #{response}"
|
174
|
+
end
|
175
|
+
|
176
|
+
def sanitize_pairs(expected_pairs)
|
177
|
+
# sql test returns results at '$body' key. See sql/translate.yml
|
178
|
+
@pairs ||= expected_pairs['$body'] ? expected_pairs['$body'] : expected_pairs
|
179
|
+
end
|
180
|
+
|
181
|
+
def compare_pairs(expected_pairs, response, test)
|
182
|
+
@mismatched_pairs = {}
|
183
|
+
if expected_pairs.is_a?(String)
|
184
|
+
@mismatched_pairs = expected_pairs unless compare_string_response(expected_pairs, response)
|
185
|
+
else
|
186
|
+
compare_hash(expected_pairs, response, test)
|
187
|
+
end
|
188
|
+
@mismatched_pairs
|
189
|
+
end
|
190
|
+
|
191
|
+
def compare_hash(expected_pairs, actual_hash, test)
|
192
|
+
expected_pairs.each do |expected_key, expected_value|
|
193
|
+
# Find the value to compare in the response
|
194
|
+
split_key = TestFile::Test.split_and_parse_key(expected_key).collect do |k|
|
195
|
+
# Sometimes the expected *key* is a cached value from a previous request.
|
196
|
+
test.get_cached_value(k)
|
197
|
+
end
|
198
|
+
# We now accept 'nested.keys' so let's try the previous implementation and if that doesn't
|
199
|
+
# work, try with the nested key, otherwise, raise exception.
|
200
|
+
begin
|
201
|
+
actual_value = TestFile::Test.find_value_in_document(split_key, actual_hash)
|
202
|
+
rescue TypeError => e
|
203
|
+
actual_value = TestFile::Test.find_value_in_document(expected_key, actual_hash)
|
204
|
+
rescue StandardError => e
|
205
|
+
raise e
|
206
|
+
end
|
207
|
+
# When the expected_key is ''
|
208
|
+
actual_value = actual_hash if split_key.empty?
|
209
|
+
# Sometimes the key includes dots. See watcher/put_watch/60_put_watch_with_action_condition.yml
|
210
|
+
actual_value = TestFile::Test.find_value_in_document(expected_key, actual_hash) if actual_value.nil?
|
211
|
+
|
212
|
+
# Sometimes the expected *value* is a cached value from a previous request.
|
213
|
+
# See test api_key/10_basic.yml
|
214
|
+
expected_value = test.get_cached_value(expected_value)
|
215
|
+
|
216
|
+
case expected_value
|
217
|
+
when Hash
|
218
|
+
compare_hash(expected_value, actual_value, test)
|
219
|
+
when Array
|
220
|
+
unless compare_array(expected_value, actual_value, test, actual_hash)
|
221
|
+
@mismatched_pairs.merge!(expected_key => expected_value)
|
222
|
+
end
|
223
|
+
when String
|
224
|
+
unless compare_string(expected_value, actual_value, test, actual_hash)
|
225
|
+
@mismatched_pairs.merge!(expected_key => expected_value)
|
226
|
+
end
|
227
|
+
else
|
228
|
+
unless expected_value == actual_value
|
229
|
+
@mismatched_pairs.merge!(expected_key => expected_value)
|
230
|
+
end
|
231
|
+
end
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
def compare_string(expected, actual_value, test, response)
|
236
|
+
# When you must match a regex. For example:
|
237
|
+
# match: {task: '/.+:\d+/'}
|
238
|
+
if expected[0] == '/' && expected[-1] == '/'
|
239
|
+
parsed = expected
|
240
|
+
expected.scan(/\$\{([a-z_0-9]+)\}/) do |match|
|
241
|
+
parsed = parsed.gsub(/\$\{?#{match.first}\}?/, test.cached_values[match.first])
|
242
|
+
end
|
243
|
+
/#{parsed.tr("/", "")}/ =~ actual_value
|
244
|
+
elsif !!(expected.match?(/^-?[0-9]{1}\.[0-9]+E[0-9]+/))
|
245
|
+
# When the value in the yaml test is a big number, the format is
|
246
|
+
# different from what Ruby uses, so we transform X.XXXXEXX to X.XXXXXe+XX
|
247
|
+
# to be able to compare the values
|
248
|
+
actual_value.to_s == expected.gsub('E', 'e+')
|
249
|
+
elsif expected == '' && actual_value != ''
|
250
|
+
actual_value == response
|
251
|
+
else
|
252
|
+
expected == actual_value
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
def compare_array(expected, actual, test, response)
|
257
|
+
expected.each_with_index do |value, i|
|
258
|
+
case value
|
259
|
+
when Hash
|
260
|
+
return false unless compare_hash(value, actual[i], test)
|
261
|
+
when Array
|
262
|
+
return false unless compare_array(value, actual[i], test, response)
|
263
|
+
when String
|
264
|
+
return false unless compare_string(value, actual[i], test, response)
|
265
|
+
end
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
269
|
+
def compare_string_response(expected_string, response)
|
270
|
+
regexp = Regexp.new(expected_string.strip[1..-2], Regexp::EXTENDED|Regexp::MULTILINE)
|
271
|
+
regexp =~ response
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
# Match that a request returned a given error.
|
276
|
+
RSpec::Matchers.define :match_error do |expected_error|
|
277
|
+
match do |actual_error|
|
278
|
+
# Remove surrounding '/' in string representing Regex
|
279
|
+
expected_error = expected_error.chomp("/")
|
280
|
+
expected_error = expected_error[1..-1] if expected_error =~ /^\//
|
281
|
+
message = actual_error.message.tr("\\","")
|
282
|
+
|
283
|
+
case expected_error
|
284
|
+
when 'request_timeout'
|
285
|
+
message =~ /\[408\]/
|
286
|
+
when 'missing'
|
287
|
+
message =~ /\[404\]/
|
288
|
+
when 'conflict'
|
289
|
+
message =~ /\[409\]/
|
290
|
+
when 'request'
|
291
|
+
message =~ /\[500\]/
|
292
|
+
when 'bad_request'
|
293
|
+
message =~ /\[400\]/
|
294
|
+
when 'param'
|
295
|
+
message =~ /\[400\]/ ||
|
296
|
+
actual_error.is_a?(ArgumentError)
|
297
|
+
when 'unauthorized'
|
298
|
+
actual_error.is_a?(Elastic::Transport::Transport::Errors::Unauthorized)
|
299
|
+
when 'forbidden'
|
300
|
+
actual_error.is_a?(Elastic::Transport::Transport::Errors::Forbidden)
|
301
|
+
when /error parsing field/
|
302
|
+
message =~ /\[400\]/ ||
|
303
|
+
actual_error.is_a?(Elastic::Transport::Transport::Errors::BadRequest)
|
304
|
+
else
|
305
|
+
message =~ /#{expected_error}/
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
309
|
+
failure_message do |actual_error|
|
310
|
+
"the error `#{actual_error}` does not match the expected error `#{expected_error}`"
|
311
|
+
end
|
312
|
+
end
|