opensearch-api 1.0.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 +7 -0
- checksums.yaml.gz.sig +0 -0
- data/.gitignore +17 -0
- data/Gemfile +48 -0
- data/LICENSE +202 -0
- data/README.md +194 -0
- data/Rakefile +131 -0
- data/lib/opensearch/api/actions/abort_benchmark.rb +49 -0
- data/lib/opensearch/api/actions/benchmark.rb +89 -0
- data/lib/opensearch/api/actions/bulk.rb +97 -0
- data/lib/opensearch/api/actions/cat/aliases.rb +79 -0
- data/lib/opensearch/api/actions/cat/allocation.rb +81 -0
- data/lib/opensearch/api/actions/cat/count.rb +75 -0
- data/lib/opensearch/api/actions/cat/fielddata.rb +77 -0
- data/lib/opensearch/api/actions/cat/health.rb +72 -0
- data/lib/opensearch/api/actions/cat/help.rb +61 -0
- data/lib/opensearch/api/actions/cat/indices.rb +91 -0
- data/lib/opensearch/api/actions/cat/master.rb +71 -0
- data/lib/opensearch/api/actions/cat/nodeattrs.rb +71 -0
- data/lib/opensearch/api/actions/cat/nodes.rb +80 -0
- data/lib/opensearch/api/actions/cat/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/cat/pending_tasks.rb +74 -0
- data/lib/opensearch/api/actions/cat/plugins.rb +73 -0
- data/lib/opensearch/api/actions/cat/recovery.rb +84 -0
- data/lib/opensearch/api/actions/cat/repositories.rb +72 -0
- data/lib/opensearch/api/actions/cat/segments.rb +76 -0
- data/lib/opensearch/api/actions/cat/shards.rb +83 -0
- data/lib/opensearch/api/actions/cat/snapshots.rb +80 -0
- data/lib/opensearch/api/actions/cat/tasks.rb +77 -0
- data/lib/opensearch/api/actions/cat/templates.rb +78 -0
- data/lib/opensearch/api/actions/cat/thread_pool.rb +82 -0
- data/lib/opensearch/api/actions/clear_scroll.rb +62 -0
- data/lib/opensearch/api/actions/close_point_in_time.rb +50 -0
- data/lib/opensearch/api/actions/cluster/allocation_explain.rb +67 -0
- data/lib/opensearch/api/actions/cluster/delete_component_template.rb +66 -0
- data/lib/opensearch/api/actions/cluster/delete_voting_config_exclusions.rb +59 -0
- data/lib/opensearch/api/actions/cluster/exists_component_template.rb +68 -0
- data/lib/opensearch/api/actions/cluster/get_component_template.rb +68 -0
- data/lib/opensearch/api/actions/cluster/get_settings.rb +65 -0
- data/lib/opensearch/api/actions/cluster/health.rb +86 -0
- data/lib/opensearch/api/actions/cluster/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/cluster/pending_tasks.rb +62 -0
- data/lib/opensearch/api/actions/cluster/post_voting_config_exclusions.rb +63 -0
- data/lib/opensearch/api/actions/cluster/put_component_template.rb +70 -0
- data/lib/opensearch/api/actions/cluster/put_settings.rb +66 -0
- data/lib/opensearch/api/actions/cluster/remote_info.rb +51 -0
- data/lib/opensearch/api/actions/cluster/reroute.rb +70 -0
- data/lib/opensearch/api/actions/cluster/state.rb +85 -0
- data/lib/opensearch/api/actions/cluster/stats.rb +68 -0
- data/lib/opensearch/api/actions/count.rb +101 -0
- data/lib/opensearch/api/actions/create.rb +61 -0
- data/lib/opensearch/api/actions/dangling_indices/delete_dangling_index.rb +68 -0
- data/lib/opensearch/api/actions/dangling_indices/import_dangling_index.rb +67 -0
- data/lib/opensearch/api/actions/dangling_indices/list_dangling_indices.rb +51 -0
- data/lib/opensearch/api/actions/dangling_indices/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/delete.rb +96 -0
- data/lib/opensearch/api/actions/delete_by_query.rb +140 -0
- data/lib/opensearch/api/actions/delete_by_query_rethrottle.rb +62 -0
- data/lib/opensearch/api/actions/delete_by_rethrottle.rb +55 -0
- data/lib/opensearch/api/actions/delete_script.rb +64 -0
- data/lib/opensearch/api/actions/exists.rb +101 -0
- data/lib/opensearch/api/actions/exists_source.rb +96 -0
- data/lib/opensearch/api/actions/explain.rb +106 -0
- data/lib/opensearch/api/actions/features/get_features.rb +59 -0
- data/lib/opensearch/api/actions/features/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/features/reset_features.rb +55 -0
- data/lib/opensearch/api/actions/field_caps.rb +78 -0
- data/lib/opensearch/api/actions/get.rb +100 -0
- data/lib/opensearch/api/actions/get_script.rb +62 -0
- data/lib/opensearch/api/actions/get_script_context.rb +53 -0
- data/lib/opensearch/api/actions/get_script_languages.rb +53 -0
- data/lib/opensearch/api/actions/get_source.rb +94 -0
- data/lib/opensearch/api/actions/index.rb +103 -0
- data/lib/opensearch/api/actions/indices/add_block.rb +76 -0
- data/lib/opensearch/api/actions/indices/analyze.rb +71 -0
- data/lib/opensearch/api/actions/indices/clear_cache.rb +79 -0
- data/lib/opensearch/api/actions/indices/clone.rb +73 -0
- data/lib/opensearch/api/actions/indices/close.rb +74 -0
- data/lib/opensearch/api/actions/indices/create.rb +71 -0
- data/lib/opensearch/api/actions/indices/delete.rb +76 -0
- data/lib/opensearch/api/actions/indices/delete_alias.rb +72 -0
- data/lib/opensearch/api/actions/indices/delete_index_template.rb +66 -0
- data/lib/opensearch/api/actions/indices/delete_template.rb +70 -0
- data/lib/opensearch/api/actions/indices/disk_usage.rb +76 -0
- data/lib/opensearch/api/actions/indices/exists.rb +79 -0
- data/lib/opensearch/api/actions/indices/exists_alias.rb +82 -0
- data/lib/opensearch/api/actions/indices/exists_index_template.rb +70 -0
- data/lib/opensearch/api/actions/indices/exists_template.rb +73 -0
- data/lib/opensearch/api/actions/indices/exists_type.rb +79 -0
- data/lib/opensearch/api/actions/indices/field_usage_stats.rb +74 -0
- data/lib/opensearch/api/actions/indices/flush.rb +74 -0
- data/lib/opensearch/api/actions/indices/flush_synced.rb +79 -0
- data/lib/opensearch/api/actions/indices/forcemerge.rb +76 -0
- data/lib/opensearch/api/actions/indices/get.rb +78 -0
- data/lib/opensearch/api/actions/indices/get_alias.rb +79 -0
- data/lib/opensearch/api/actions/indices/get_field_mapping.rb +92 -0
- data/lib/opensearch/api/actions/indices/get_index_template.rb +70 -0
- data/lib/opensearch/api/actions/indices/get_mapping.rb +88 -0
- data/lib/opensearch/api/actions/indices/get_settings.rb +85 -0
- data/lib/opensearch/api/actions/indices/get_template.rb +72 -0
- data/lib/opensearch/api/actions/indices/get_upgrade.rb +75 -0
- data/lib/opensearch/api/actions/indices/open.rb +74 -0
- data/lib/opensearch/api/actions/indices/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/indices/put_alias.rb +73 -0
- data/lib/opensearch/api/actions/indices/put_index_template.rb +70 -0
- data/lib/opensearch/api/actions/indices/put_mapping.rb +91 -0
- data/lib/opensearch/api/actions/indices/put_settings.rb +81 -0
- data/lib/opensearch/api/actions/indices/put_template.rb +72 -0
- data/lib/opensearch/api/actions/indices/recovery.rb +68 -0
- data/lib/opensearch/api/actions/indices/refresh.rb +70 -0
- data/lib/opensearch/api/actions/indices/resolve_index.rb +68 -0
- data/lib/opensearch/api/actions/indices/rollover.rb +81 -0
- data/lib/opensearch/api/actions/indices/segments.rb +72 -0
- data/lib/opensearch/api/actions/indices/shard_stores.rb +72 -0
- data/lib/opensearch/api/actions/indices/shrink.rb +75 -0
- data/lib/opensearch/api/actions/indices/simulate_index_template.rb +69 -0
- data/lib/opensearch/api/actions/indices/simulate_template.rb +71 -0
- data/lib/opensearch/api/actions/indices/split.rb +75 -0
- data/lib/opensearch/api/actions/indices/stats.rb +100 -0
- data/lib/opensearch/api/actions/indices/update_aliases.rb +64 -0
- data/lib/opensearch/api/actions/indices/upgrade.rb +79 -0
- data/lib/opensearch/api/actions/indices/validate_query.rb +104 -0
- data/lib/opensearch/api/actions/info.rb +49 -0
- data/lib/opensearch/api/actions/ingest/delete_pipeline.rb +66 -0
- data/lib/opensearch/api/actions/ingest/geo_ip_stats.rb +51 -0
- data/lib/opensearch/api/actions/ingest/get_pipeline.rb +68 -0
- data/lib/opensearch/api/actions/ingest/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/ingest/processor_grok.rb +51 -0
- data/lib/opensearch/api/actions/ingest/put_pipeline.rb +68 -0
- data/lib/opensearch/api/actions/ingest/simulate.rb +69 -0
- data/lib/opensearch/api/actions/mget.rb +91 -0
- data/lib/opensearch/api/actions/msearch.rb +112 -0
- data/lib/opensearch/api/actions/msearch_template.rb +96 -0
- data/lib/opensearch/api/actions/mtermvectors.rb +107 -0
- data/lib/opensearch/api/actions/nodes/hot_threads.rb +81 -0
- data/lib/opensearch/api/actions/nodes/info.rb +75 -0
- data/lib/opensearch/api/actions/nodes/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/nodes/reload_secure_settings.rb +67 -0
- data/lib/opensearch/api/actions/nodes/shutdown.rb +65 -0
- data/lib/opensearch/api/actions/nodes/stats.rb +96 -0
- data/lib/opensearch/api/actions/nodes/usage.rb +73 -0
- data/lib/opensearch/api/actions/open_point_in_time.rb +72 -0
- data/lib/opensearch/api/actions/params_registry.rb +67 -0
- data/lib/opensearch/api/actions/ping.rb +57 -0
- data/lib/opensearch/api/actions/put_script.rb +74 -0
- data/lib/opensearch/api/actions/rank_eval.rb +77 -0
- data/lib/opensearch/api/actions/reindex.rb +76 -0
- data/lib/opensearch/api/actions/reindex_rethrottle.rb +62 -0
- data/lib/opensearch/api/actions/remote/info.rb +45 -0
- data/lib/opensearch/api/actions/render_search_template.rb +62 -0
- data/lib/opensearch/api/actions/scripts_painless_execute.rb +59 -0
- data/lib/opensearch/api/actions/scroll.rb +78 -0
- data/lib/opensearch/api/actions/search.rb +165 -0
- data/lib/opensearch/api/actions/search_shards.rb +74 -0
- data/lib/opensearch/api/actions/search_template.rb +101 -0
- data/lib/opensearch/api/actions/shutdown/delete_node.rb +60 -0
- data/lib/opensearch/api/actions/shutdown/get_node.rb +62 -0
- data/lib/opensearch/api/actions/shutdown/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/shutdown/put_node.rb +62 -0
- data/lib/opensearch/api/actions/snapshot/cleanup_repository.rb +66 -0
- data/lib/opensearch/api/actions/snapshot/clone.rb +74 -0
- data/lib/opensearch/api/actions/snapshot/create.rb +71 -0
- data/lib/opensearch/api/actions/snapshot/create_repository.rb +70 -0
- data/lib/opensearch/api/actions/snapshot/delete.rb +72 -0
- data/lib/opensearch/api/actions/snapshot/delete_repository.rb +70 -0
- data/lib/opensearch/api/actions/snapshot/get.rb +80 -0
- data/lib/opensearch/api/actions/snapshot/get_features.rb +59 -0
- data/lib/opensearch/api/actions/snapshot/get_repository.rb +72 -0
- data/lib/opensearch/api/actions/snapshot/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/snapshot/repository_analyze.rb +84 -0
- data/lib/opensearch/api/actions/snapshot/restore.rb +71 -0
- data/lib/opensearch/api/actions/snapshot/status.rb +77 -0
- data/lib/opensearch/api/actions/snapshot/verify_repository.rb +66 -0
- data/lib/opensearch/api/actions/tasks/cancel.rb +76 -0
- data/lib/opensearch/api/actions/tasks/get.rb +68 -0
- data/lib/opensearch/api/actions/tasks/list.rb +75 -0
- data/lib/opensearch/api/actions/tasks/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/termvectors.rb +115 -0
- data/lib/opensearch/api/actions/update.rb +106 -0
- data/lib/opensearch/api/actions/update_by_query.rb +144 -0
- data/lib/opensearch/api/actions/update_by_query_rethrottle.rb +62 -0
- data/lib/opensearch/api/namespace/cat.rb +45 -0
- data/lib/opensearch/api/namespace/cluster.rb +46 -0
- data/lib/opensearch/api/namespace/common.rb +53 -0
- data/lib/opensearch/api/namespace/dangling_indices.rb +44 -0
- data/lib/opensearch/api/namespace/features.rb +45 -0
- data/lib/opensearch/api/namespace/indices.rb +46 -0
- data/lib/opensearch/api/namespace/ingest.rb +46 -0
- data/lib/opensearch/api/namespace/nodes.rb +46 -0
- data/lib/opensearch/api/namespace/remote.rb +46 -0
- data/lib/opensearch/api/namespace/security.rb +45 -0
- data/lib/opensearch/api/namespace/shutdown.rb +46 -0
- data/lib/opensearch/api/namespace/snapshot.rb +46 -0
- data/lib/opensearch/api/namespace/tasks.rb +46 -0
- data/lib/opensearch/api/utils.rb +297 -0
- data/lib/opensearch/api/version.rb +31 -0
- data/lib/opensearch/api.rb +101 -0
- data/lib/opensearch-api.rb +27 -0
- data/opensearch-api.gemspec +92 -0
- data/spec/opensearch/api/actions/abort_benchmark_spec.rb +43 -0
- data/spec/opensearch/api/actions/benchmark_spec.rb +43 -0
- data/spec/opensearch/api/actions/bulk_spec.rb +148 -0
- data/spec/opensearch/api/actions/cat/aliases_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/allocation_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/count_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/fielddata_spec.rb +61 -0
- data/spec/opensearch/api/actions/cat/health_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/help_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/indices_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/master_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/nodeattrs_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/nodes_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/pending_tasks_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/plugins_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/recovery_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/repositories_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/segments_spec.rb +58 -0
- data/spec/opensearch/api/actions/cat/shards_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/snapshot_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/tasks_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/templates_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/thread_pool_spec.rb +44 -0
- data/spec/opensearch/api/actions/clear_scroll_spec.rb +61 -0
- data/spec/opensearch/api/actions/close_point_in_time_spec.rb +43 -0
- data/spec/opensearch/api/actions/cluster/allocation_explain_spec.rb +44 -0
- data/spec/opensearch/api/actions/cluster/get_settings_spec.rb +44 -0
- data/spec/opensearch/api/actions/cluster/health_spec.rb +78 -0
- data/spec/opensearch/api/actions/cluster/pending_tasks_spec.rb +44 -0
- data/spec/opensearch/api/actions/cluster/put_settings_spec.rb +44 -0
- data/spec/opensearch/api/actions/cluster/remote_info_spec.rb +44 -0
- data/spec/opensearch/api/actions/cluster/reroute_spec.rb +61 -0
- data/spec/opensearch/api/actions/cluster/state_spec.rb +61 -0
- data/spec/opensearch/api/actions/cluster/stats_spec.rb +44 -0
- data/spec/opensearch/api/actions/count_spec.rb +78 -0
- data/spec/opensearch/api/actions/create_document_spec.rb +95 -0
- data/spec/opensearch/api/actions/dangling_indices/delete_dangling_indices_spec.rb +57 -0
- data/spec/opensearch/api/actions/dangling_indices/import_dangling_indices_spec.rb +57 -0
- data/spec/opensearch/api/actions/dangling_indices/list_dangling_indices_spec.rb +45 -0
- data/spec/opensearch/api/actions/delete_by_query_spec.rb +89 -0
- data/spec/opensearch/api/actions/delete_document_spec.rb +121 -0
- data/spec/opensearch/api/actions/delete_script_spec.rb +46 -0
- data/spec/opensearch/api/actions/exists_document_spec.rb +136 -0
- data/spec/opensearch/api/actions/explain_document_spec.rb +108 -0
- data/spec/opensearch/api/actions/features/get_features_spec.rb +43 -0
- data/spec/opensearch/api/actions/features/reset_features_spec.rb +43 -0
- data/spec/opensearch/api/actions/field_caps_spec.rb +44 -0
- data/spec/opensearch/api/actions/get_document_source_spec.rb +110 -0
- data/spec/opensearch/api/actions/get_document_spec.rb +133 -0
- data/spec/opensearch/api/actions/get_script_spec.rb +59 -0
- data/spec/opensearch/api/actions/hashie_spec.rb +98 -0
- data/spec/opensearch/api/actions/index_document_spec.rb +146 -0
- data/spec/opensearch/api/actions/indices/add_block_spec.rb +72 -0
- data/spec/opensearch/api/actions/indices/analyze_spec.rb +77 -0
- data/spec/opensearch/api/actions/indices/clear_cache_spec.rb +89 -0
- data/spec/opensearch/api/actions/indices/clone_spec.rb +131 -0
- data/spec/opensearch/api/actions/indices/close_spec.rb +94 -0
- data/spec/opensearch/api/actions/indices/create_spec.rb +94 -0
- data/spec/opensearch/api/actions/indices/delete_alias_spec.rb +92 -0
- data/spec/opensearch/api/actions/indices/delete_spec.rb +117 -0
- data/spec/opensearch/api/actions/indices/delete_template_spec.rb +95 -0
- data/spec/opensearch/api/actions/indices/disk_usage_spec.rb +57 -0
- data/spec/opensearch/api/actions/indices/exists_alias_spec.rb +117 -0
- data/spec/opensearch/api/actions/indices/exists_spec.rb +117 -0
- data/spec/opensearch/api/actions/indices/exists_template_spec.rb +102 -0
- data/spec/opensearch/api/actions/indices/exists_type_spec.rb +117 -0
- data/spec/opensearch/api/actions/indices/field_usage_stats_spec.rb +55 -0
- data/spec/opensearch/api/actions/indices/flush_spec.rb +100 -0
- data/spec/opensearch/api/actions/indices/flush_synced_spec.rb +99 -0
- data/spec/opensearch/api/actions/indices/forcemerge_spec.rb +44 -0
- data/spec/opensearch/api/actions/indices/get_alias_spec.rb +70 -0
- data/spec/opensearch/api/actions/indices/get_field_mapping_spec.rb +70 -0
- data/spec/opensearch/api/actions/indices/get_mapping_spec.rb +92 -0
- data/spec/opensearch/api/actions/indices/get_settings_spec.rb +81 -0
- data/spec/opensearch/api/actions/indices/get_spec.rb +63 -0
- data/spec/opensearch/api/actions/indices/open_spec.rb +74 -0
- data/spec/opensearch/api/actions/indices/put_alias_spec.rb +98 -0
- data/spec/opensearch/api/actions/indices/put_mapping_spec.rb +111 -0
- data/spec/opensearch/api/actions/indices/put_settings_spec.rb +117 -0
- data/spec/opensearch/api/actions/indices/put_template_spec.rb +116 -0
- data/spec/opensearch/api/actions/indices/recovery_spec.rb +44 -0
- data/spec/opensearch/api/actions/indices/refresh_spec.rb +100 -0
- data/spec/opensearch/api/actions/indices/rollover_spec.rb +67 -0
- data/spec/opensearch/api/actions/indices/segments_spec.rb +100 -0
- data/spec/opensearch/api/actions/indices/shard_stores_spec.rb +44 -0
- data/spec/opensearch/api/actions/indices/shrink_spec.rb +51 -0
- data/spec/opensearch/api/actions/indices/split_spec.rb +44 -0
- data/spec/opensearch/api/actions/indices/stats_spec.rb +133 -0
- data/spec/opensearch/api/actions/indices/update_aliases_spec.rb +76 -0
- data/spec/opensearch/api/actions/indices/upgrade_spec.rb +44 -0
- data/spec/opensearch/api/actions/indices/validate_query_spec.rb +131 -0
- data/spec/opensearch/api/actions/info_spec.rb +44 -0
- data/spec/opensearch/api/actions/ingest/delete_pipeline_spec.rb +69 -0
- data/spec/opensearch/api/actions/ingest/geo_ip_stats_spec.rb +43 -0
- data/spec/opensearch/api/actions/ingest/get_pipeline_spec.rb +59 -0
- data/spec/opensearch/api/actions/ingest/put_pipeline_spec.rb +69 -0
- data/spec/opensearch/api/actions/ingest/simulate_spec.rb +58 -0
- data/spec/opensearch/api/actions/json_builders_spec.rb +93 -0
- data/spec/opensearch/api/actions/mget_spec.rb +111 -0
- data/spec/opensearch/api/actions/msearch_spec.rb +160 -0
- data/spec/opensearch/api/actions/msearch_template_spec.rb +102 -0
- data/spec/opensearch/api/actions/mtermvectors_spec.rb +55 -0
- data/spec/opensearch/api/actions/nodes/hot_threads_spec.rb +70 -0
- data/spec/opensearch/api/actions/nodes/info_spec.rb +111 -0
- data/spec/opensearch/api/actions/nodes/reload_secure_settings_spec.rb +93 -0
- data/spec/opensearch/api/actions/nodes/shutdown_spec.rb +85 -0
- data/spec/opensearch/api/actions/nodes/stats_spec.rb +85 -0
- data/spec/opensearch/api/actions/open_point_in_time_spec.rb +53 -0
- data/spec/opensearch/api/actions/ping_spec.rb +85 -0
- data/spec/opensearch/api/actions/put_script_spec.rb +65 -0
- data/spec/opensearch/api/actions/reindex_spec.rb +44 -0
- data/spec/opensearch/api/actions/remote/info_spec.rb +44 -0
- data/spec/opensearch/api/actions/render_search_template_spec.rb +61 -0
- data/spec/opensearch/api/actions/scroll_spec.rb +61 -0
- data/spec/opensearch/api/actions/search_shards_spec.rb +44 -0
- data/spec/opensearch/api/actions/search_spec.rb +143 -0
- data/spec/opensearch/api/actions/search_template_spec.rb +43 -0
- data/spec/opensearch/api/actions/shutdown/delete_node_spec.rb +53 -0
- data/spec/opensearch/api/actions/shutdown/get_node_spec.rb +55 -0
- data/spec/opensearch/api/actions/shutdown/put_node_spec.rb +59 -0
- data/spec/opensearch/api/actions/snapshot/clone_spec.rb +76 -0
- data/spec/opensearch/api/actions/snapshot/create_repository_spec.rb +60 -0
- data/spec/opensearch/api/actions/snapshot/create_spec.rb +60 -0
- data/spec/opensearch/api/actions/snapshot/delete_repository_spec.rb +59 -0
- data/spec/opensearch/api/actions/snapshot/delete_spec.rb +60 -0
- data/spec/opensearch/api/actions/snapshot/get_features_spec.rb +47 -0
- data/spec/opensearch/api/actions/snapshot/get_repository_spec.rb +44 -0
- data/spec/opensearch/api/actions/snapshot/get_spec.rb +60 -0
- data/spec/opensearch/api/actions/snapshot/repository_analize_spec.rb +57 -0
- data/spec/opensearch/api/actions/snapshot/restore_spec.rb +60 -0
- data/spec/opensearch/api/actions/snapshot/status_spec.rb +59 -0
- data/spec/opensearch/api/actions/snapshot/verify_repository_spec.rb +44 -0
- data/spec/opensearch/api/actions/tasks/cancel_spec.rb +59 -0
- data/spec/opensearch/api/actions/tasks/get_spec.rb +44 -0
- data/spec/opensearch/api/actions/tasks/list_spec.rb +48 -0
- data/spec/opensearch/api/actions/termvectors_spec.rb +75 -0
- data/spec/opensearch/api/actions/update_by_query_spec.rb +44 -0
- data/spec/opensearch/api/actions/update_document_spec.rb +131 -0
- data/spec/opensearch/api/api_spec.rb +52 -0
- data/spec/opensearch/api/client_spec.rb +55 -0
- data/spec/opensearch/api/rest_api_yaml_spec.rb +169 -0
- data/spec/opensearch/api/utils_spec.rb +439 -0
- data/spec/rest_yaml_tests_helper.rb +89 -0
- data/spec/skipped_tests.yml +29 -0
- data/spec/spec_helper.rb +84 -0
- data.tar.gz.sig +0 -0
- metadata +860 -0
- metadata.gz.sig +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'spec_helper'
|
|
28
|
+
|
|
29
|
+
describe 'client.tasks#get' do
|
|
30
|
+
|
|
31
|
+
let(:expected_args) do
|
|
32
|
+
[
|
|
33
|
+
'GET',
|
|
34
|
+
'_tasks/foo1',
|
|
35
|
+
{},
|
|
36
|
+
nil,
|
|
37
|
+
{}
|
|
38
|
+
]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'performs the request' do
|
|
42
|
+
expect(client_double.tasks.get(task_id: 'foo1')).to eq({})
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'spec_helper'
|
|
28
|
+
|
|
29
|
+
describe 'client.tasks#list' do
|
|
30
|
+
|
|
31
|
+
let(:expected_args) do
|
|
32
|
+
[
|
|
33
|
+
'GET',
|
|
34
|
+
url,
|
|
35
|
+
{},
|
|
36
|
+
nil,
|
|
37
|
+
{}
|
|
38
|
+
]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
let(:url) do
|
|
42
|
+
'_tasks'
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it 'performs the request' do
|
|
46
|
+
expect(client_double.tasks.list).to eq({})
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'spec_helper'
|
|
28
|
+
|
|
29
|
+
describe 'client#termvectors' do
|
|
30
|
+
let(:expected_args) do
|
|
31
|
+
[
|
|
32
|
+
'POST',
|
|
33
|
+
url,
|
|
34
|
+
params,
|
|
35
|
+
body,
|
|
36
|
+
{}
|
|
37
|
+
]
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
let(:url) do
|
|
41
|
+
'foo/bar/123/_termvectors'
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
let(:params) do
|
|
45
|
+
{}
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
let(:body) do
|
|
49
|
+
{}
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
let(:client) do
|
|
53
|
+
Class.new { include OpenSearch::API }.new
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it 'requires the :index argument' do
|
|
57
|
+
expect {
|
|
58
|
+
client.termvectors(type: 'bar', id: '1')
|
|
59
|
+
}.to raise_exception(ArgumentError)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it 'performs the request' do
|
|
63
|
+
expect(client_double.termvectors(index: 'foo', type: 'bar', id: '123', body: {})).to eq({})
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
context 'when the older api name \'termvector\' is used' do
|
|
67
|
+
let(:url) do
|
|
68
|
+
'foo/bar/123/_termvector'
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it 'performs the request' do
|
|
72
|
+
expect(client_double.termvector(index: 'foo', type: 'bar', id: '123', body: {})).to eq({})
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'spec_helper'
|
|
28
|
+
|
|
29
|
+
describe 'client#update_by_query' do
|
|
30
|
+
|
|
31
|
+
let(:expected_args) do
|
|
32
|
+
[
|
|
33
|
+
'POST',
|
|
34
|
+
'foo/_update_by_query',
|
|
35
|
+
{},
|
|
36
|
+
nil,
|
|
37
|
+
{}
|
|
38
|
+
]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'performs the request' do
|
|
42
|
+
expect(client_double.update_by_query(index: 'foo')).to eq({})
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'spec_helper'
|
|
28
|
+
|
|
29
|
+
describe 'client#update' do
|
|
30
|
+
|
|
31
|
+
let(:expected_args) do
|
|
32
|
+
[
|
|
33
|
+
'POST',
|
|
34
|
+
url,
|
|
35
|
+
params,
|
|
36
|
+
body,
|
|
37
|
+
{}
|
|
38
|
+
]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
let(:body) do
|
|
42
|
+
{ doc: { } }
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
let(:url) do
|
|
46
|
+
'foo/bar/1/_update'
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
let(:client) do
|
|
50
|
+
Class.new { include OpenSearch::API }.new
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
let(:params) do
|
|
54
|
+
{}
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it 'requires the :index argument' do
|
|
58
|
+
expect {
|
|
59
|
+
client.update(type: 'bar', id: '1')
|
|
60
|
+
}.to raise_exception(ArgumentError)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it 'requires the :id argument' do
|
|
64
|
+
expect {
|
|
65
|
+
client.update(index: 'foo', type: 'bar')
|
|
66
|
+
}.to raise_exception(ArgumentError)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it 'performs the request' do
|
|
70
|
+
expect(client_double.update(index: 'foo', type: 'bar', id: '1', body: { doc: {} })).to eq({})
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
context 'when URL parameters are provided' do
|
|
74
|
+
|
|
75
|
+
let(:url) do
|
|
76
|
+
'foo/bar/1/_update'
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
let(:body) do
|
|
80
|
+
{}
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it 'performs the request' do
|
|
84
|
+
expect(client_double.update(index: 'foo', type: 'bar', id: '1', body: {}))
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
context 'when invalid parameters are specified' do
|
|
89
|
+
|
|
90
|
+
it 'raises an ArgumentError' do
|
|
91
|
+
expect {
|
|
92
|
+
client.update(index: 'foo', type: 'bar', id: '1', body: { doc: {} }, qwertypoiuy: 'asdflkjhg')
|
|
93
|
+
}.to raise_exception(ArgumentError)
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
context 'when the request needs to be URL-escaped' do
|
|
98
|
+
|
|
99
|
+
let(:url) do
|
|
100
|
+
'foo%5Ebar/bar%2Fbam/1/_update'
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
let(:body) do
|
|
104
|
+
{}
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
it 'escapes the parts' do
|
|
108
|
+
expect(client_double.update(index: 'foo^bar', type: 'bar/bam', id: '1', body: {}))
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
context 'when a NotFound exception is raised' do
|
|
113
|
+
|
|
114
|
+
before do
|
|
115
|
+
allow(client).to receive(:perform_request).and_raise(NotFound)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
it 'raises it to the user' do
|
|
119
|
+
expect {
|
|
120
|
+
client.update(index: 'foo', type: 'bar', id: 'XXX', body: {})
|
|
121
|
+
}.to raise_exception(NotFound)
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
context 'when the :ignore parameter is specified' do
|
|
125
|
+
|
|
126
|
+
it 'does not raise the error to the user' do
|
|
127
|
+
expect(client.update(index: 'foo', type: 'bar', id: 'XXX', body: {}, ignore: 404)).to eq(false)
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'spec_helper'
|
|
28
|
+
|
|
29
|
+
describe OpenSearch::API do
|
|
30
|
+
|
|
31
|
+
describe '#settings' do
|
|
32
|
+
|
|
33
|
+
it 'allows access to settings' do
|
|
34
|
+
expect(described_class.settings).not_to be_nil
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'has a default serializer' do
|
|
38
|
+
expect(OpenSearch::API.serializer).to eq(MultiJson)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
context 'when settings are changed' do
|
|
42
|
+
|
|
43
|
+
before do
|
|
44
|
+
OpenSearch::API.settings[:foo] = 'bar'
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it 'changes the settings' do
|
|
48
|
+
expect(OpenSearch::API.settings[:foo]).to eq('bar')
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'spec_helper'
|
|
28
|
+
|
|
29
|
+
describe 'API Client' do
|
|
30
|
+
|
|
31
|
+
let(:client) do
|
|
32
|
+
Class.new { include OpenSearch::API }.new
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe '#cluster' do
|
|
36
|
+
|
|
37
|
+
it 'responds to the method' do
|
|
38
|
+
expect(client.respond_to?(:cluster)).to be(true)
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe '#indices' do
|
|
43
|
+
|
|
44
|
+
it 'responds to the method' do
|
|
45
|
+
expect(client.respond_to?(:indices)).to be(true)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
describe '#bulk' do
|
|
50
|
+
|
|
51
|
+
it 'responds to the method' do
|
|
52
|
+
expect(client.respond_to?(:bulk)).to be(true)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'spec_helper'
|
|
28
|
+
require 'rest_yaml_tests_helper'
|
|
29
|
+
|
|
30
|
+
describe 'Rest API YAML tests' do
|
|
31
|
+
if REST_API_YAML_FILES.empty?
|
|
32
|
+
logger = Logger.new($stdout)
|
|
33
|
+
logger.error 'No test files found!'
|
|
34
|
+
logger.info 'Use rake rake opensearch:download_artifacts in the root directory of the project to download the test artifacts.'
|
|
35
|
+
exit 1
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Traverse YAML files and create TestFile object:
|
|
39
|
+
REST_API_YAML_FILES.each do |file|
|
|
40
|
+
begin
|
|
41
|
+
test_file = OpenSearch::RestAPIYAMLTests::TestFile.new(file, ADMIN_CLIENT, REST_API_YAML_SKIP_FEATURES)
|
|
42
|
+
rescue SkipTestsException => _e
|
|
43
|
+
# If the test file has a `skip` at the top level that applies to this
|
|
44
|
+
# version of Elasticsearch, continue with the next text.
|
|
45
|
+
logger = Logger.new($stdout)
|
|
46
|
+
logger.info "Skipping #{file} due to 'skip all'."
|
|
47
|
+
next
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
context "#{file.gsub("#{YAML_FILES_DIRECTORY}/", '')}" do
|
|
51
|
+
test_file.tests.each do |test|
|
|
52
|
+
context "#{test.description}" do
|
|
53
|
+
if test.skip_test?(ADMIN_CLIENT)
|
|
54
|
+
skip 'Test contains feature(s) not yet supported or version is not satisfied'
|
|
55
|
+
else
|
|
56
|
+
let(:client) do
|
|
57
|
+
DEFAULT_CLIENT
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Runs once before each test in a test file
|
|
61
|
+
before(:all) do
|
|
62
|
+
OpenSearch::RestAPIYAMLTests::TestFile.wipe_cluster(ADMIN_CLIENT)
|
|
63
|
+
test_file.setup
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
after(:all) do
|
|
67
|
+
test_file.teardown
|
|
68
|
+
OpenSearch::RestAPIYAMLTests::TestFile.wipe_cluster(ADMIN_CLIENT)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
test.task_groups.each do |task_group|
|
|
72
|
+
before do
|
|
73
|
+
task_group.run(client)
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
# 'catch' is in the task group definition
|
|
77
|
+
if task_group.catch_exception?
|
|
78
|
+
it 'sends the request and throws the expected error' do
|
|
79
|
+
expect(task_group.exception).to match_error(task_group.expected_exception_message)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# 'match' on error description is in the task group definition
|
|
83
|
+
if task_group.has_match_clauses?
|
|
84
|
+
task_group.match_clauses.each do |match|
|
|
85
|
+
it 'contains the expected error in the request response' do
|
|
86
|
+
expect(task_group.exception.message).to match(Regexp.new(Regexp.escape(match['match'].values.first.to_s)))
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
else
|
|
91
|
+
# 'match' is in the task group definition
|
|
92
|
+
if task_group.has_match_clauses?
|
|
93
|
+
task_group.match_clauses.each do |match|
|
|
94
|
+
it "has the expected value (#{match['match'].values.join(',')}) in the response field (#{match['match'].keys.join(',')})" do
|
|
95
|
+
expect(task_group.response).to match_response(match['match'], test)
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# 'length' is in the task group definition
|
|
101
|
+
if task_group.has_length_match_clauses?
|
|
102
|
+
task_group.length_match_clauses.each do |match|
|
|
103
|
+
it "the '#{match['length'].keys.join(',')}' field have the expected length" do
|
|
104
|
+
expect(task_group.response).to match_response_field_length(match['length'], test)
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# 'is_true' is in the task group definition
|
|
110
|
+
if task_group.has_true_clauses?
|
|
111
|
+
task_group.true_clauses.each do |match|
|
|
112
|
+
it "sends the request and the '#{match['is_true']}' field is set to true" do
|
|
113
|
+
expect(task_group.response).to match_true_field(match['is_true'], test)
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
# 'is_false' is in the task group definition
|
|
119
|
+
if task_group.has_false_clauses?
|
|
120
|
+
task_group.false_clauses.each do |match|
|
|
121
|
+
it "sends the request and the '#{match['is_false']}' field is set to true" do
|
|
122
|
+
expect(task_group.response).to match_false_field(match['is_false'], test)
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# 'gte' is in the task group definition
|
|
128
|
+
if task_group.has_gte_clauses?
|
|
129
|
+
task_group.gte_clauses.each do |match|
|
|
130
|
+
it "sends the request and the '#{match['gte']}' field is greater than or equal to the expected value" do
|
|
131
|
+
expect(task_group.response).to match_gte_field(match['gte'], test)
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
# 'gt' is in the task group definition
|
|
137
|
+
if task_group.has_gt_clauses?
|
|
138
|
+
task_group.gt_clauses.each do |match|
|
|
139
|
+
it "sends the request and the '#{match['gt']}' field is greater than the expected value" do
|
|
140
|
+
expect(task_group.response).to match_gt_field(match['gt'], test)
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
# 'lte' is in the task group definition
|
|
146
|
+
if task_group.has_lte_clauses?
|
|
147
|
+
task_group.lte_clauses.each do |match|
|
|
148
|
+
it "sends the request and the '#{match['lte']}' field is less than or equal to the expected value" do
|
|
149
|
+
expect(task_group.response).to match_lte_field(match['lte'], test)
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
# 'lt' is in the task group definition
|
|
155
|
+
if task_group.has_lt_clauses?
|
|
156
|
+
task_group.lt_clauses.each do |match|
|
|
157
|
+
it "sends the request and the '#{match['lt']}' field is less than the expected value" do
|
|
158
|
+
expect(task_group.response).to match_lt_field(match['lt'], test)
|
|
159
|
+
end
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
end
|