Skip to content

Commit adba49c

Browse files
committed
Fix pre 7.2 endpoint class name with aliases + reapply fix #947
1 parent 830a6f6 commit adba49c

File tree

4 files changed

+223
-2
lines changed

4 files changed

+223
-2
lines changed

composer.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@
3333
"monolog/monolog": "Allows for client-level logging and tracing"
3434
},
3535
"autoload": {
36+
"files": [
37+
"src/autoload.php"
38+
],
3639
"psr-4": {
3740
"Elasticsearch\\": "src/Elasticsearch/"
3841
}

src/Elasticsearch/Namespaces/IndicesNamespace.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,20 @@ public function getAlias(array $params = [])
435435
$endpoint->setIndex($index);
436436

437437
return $this->performRequest($endpoint);
438-
} /**
438+
}
439+
440+
/**
441+
* Alias function to getAlias()
442+
*
443+
* @deprecated added to prevent BC break introduced in 7.2.0
444+
* @see https://github.com/elastic/elasticsearch-php/issues/940
445+
*/
446+
public function getAliases(array $params = [])
447+
{
448+
return $this->getAlias($params);
449+
}
450+
451+
/**
439452
* $params['fields'] = (list) A comma-separated list of fields (Required)
440453
* $params['index'] = (list) A comma-separated list of index names
441454
* $params['type'] = DEPRECATED (list) A comma-separated list of document types
@@ -450,7 +463,6 @@ public function getAlias(array $params = [])
450463
* @return array
451464
* @see https://www.elastic.co/guide/en/elasticsearch/reference/master/indices-get-field-mapping.html
452465
*/
453-
454466
public function getFieldMapping(array $params = [])
455467
{
456468
$fields = $this->extractArgument($params, 'fields');

src/autoload.php

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
<?php
2+
/**
3+
* File required since elasticsearch-php 7.4.1 for aliasing
4+
* to the previous endpoint class names.
5+
*
6+
* @see https://github.com/elastic/elasticsearch-php/issues/967
7+
*
8+
* NOTE: This file will be removed with elasticsearch-php 8.0.0
9+
*/
10+
declare(strict_types = 1);
11+
12+
use Elasticsearch\Endpoints;
13+
14+
class_alias(Endpoints\Cat\Nodeattrs::class, '\Elasticsearch\Endpoints\Cat\NodeAttrs');
15+
class_alias(Endpoints\Cluster\GetSettings::class, '\Elasticsearch\Endpoints\Cluster\Settings\Get');
16+
class_alias(Endpoints\Cluster\PutSettings::class, '\Elasticsearch\Endpoints\Cluster\Settings\Put');
17+
class_alias(Endpoints\Indices\DeleteAlias::class, '\Elasticsearch\Endpoints\Indices\Alias\Delete');
18+
class_alias(Endpoints\Indices\ExistsAlias::class, '\Elasticsearch\Endpoints\Indices\Alias\Exists');
19+
class_alias(Endpoints\Indices\GetAlias::class, '\Elasticsearch\Endpoints\Indices\Alias\Get');
20+
class_alias(Endpoints\Indices\PutAlias::class, '\Elasticsearch\Endpoints\Indices\Alias\Put');
21+
class_alias(Endpoints\Indices\UpdateAliases::class, '\Elasticsearch\Endpoints\Indices\Aliases\Update');
22+
class_alias(Endpoints\Indices\ClearCache::class, '\Elasticsearch\Endpoints\Indices\Cache\Clear');
23+
class_alias(Endpoints\Indices\Forcemerge::class, '\Elasticsearch\Endpoints\Indices\ForceMerge');
24+
class_alias(Endpoints\Indices\GetMapping::class, '\Elasticsearch\Endpoints\Indices\Mapping\Get');
25+
class_alias(Endpoints\Indices\GetFieldMapping::class, '\Elasticsearch\Endpoints\Indices\Mapping\GetField');
26+
class_alias(Endpoints\Indices\PutMapping::class, '\Elasticsearch\Endpoints\Indices\Mapping\Put');
27+
class_alias(Endpoints\Indices\GetSettings::class, '\Elasticsearch\Endpoints\Indices\Settings\Get');
28+
class_alias(Endpoints\Indices\PutSettings::class, '\Elasticsearch\Endpoints\Indices\Settings\Put');
29+
class_alias(Endpoints\Indices\GetTemplate::class, '\Elasticsearch\Endpoints\Indices\Template\Get');
30+
class_alias(Endpoints\Indices\PutTemplate::class, '\Elasticsearch\Endpoints\Indices\Template\Put');
31+
class_alias(Endpoints\Indices\ExistsTemplate::class, '\Elasticsearch\Endpoints\Indices\Template\Exists');
32+
class_alias(Endpoints\Indices\DeleteTemplate::class, '\Elasticsearch\Endpoints\Indices\Template\Delete');
33+
class_alias(Endpoints\Indices\ExistsType::class, '\Elasticsearch\Endpoints\Indices\Type\Exists');
34+
class_alias(Endpoints\Indices\GetUpgrade::class, '\Elasticsearch\Endpoints\Indices\Upgrade\Get');
35+
class_alias(Endpoints\Indices\Upgrade::class, '\Elasticsearch\Endpoints\Indices\Upgrade\Post');
36+
class_alias(Endpoints\Indices\ValidateQuery::class, '\Elasticsearch\Endpoints\Indices\Validate\Query');
37+
class_alias(Endpoints\Ingest\DeletePipeline::class, '\Elasticsearch\Endpoints\Ingest\Pipeline\Delete');
38+
class_alias(Endpoints\Ingest\GetPipeline::class, '\Elasticsearch\Endpoints\Ingest\Pipeline\Get');
39+
class_alias(Endpoints\Ingest\PutPipeline::class, '\Elasticsearch\Endpoints\Ingest\Pipeline\Put');
40+
class_alias(Endpoints\Ingest\ProcessorGrok::class, '\Elasticsearch\Endpoints\Ingest\Pipeline\ProcessorGrok');
41+
class_alias(Endpoints\Mtermvectors::class, '\Elasticsearch\Endpoints\MTermVectors');
42+
class_alias(Endpoints\GetScript::class, '\Elasticsearch\Endpoints\Script\Get');
43+
class_alias(Endpoints\PutScript::class, '\Elasticsearch\Endpoints\Script\Put');
44+
class_alias(Endpoints\DeleteScript::class, '\Elasticsearch\Endpoints\Script\Delete');
45+
class_alias(Endpoints\Snapshot\CreateRepository::class, '\Elasticsearch\Endpoints\Snapshot\Repository\Create');
46+
class_alias(Endpoints\Snapshot\DeleteRepository::class, '\Elasticsearch\Endpoints\Snapshot\Repository\Delete');
47+
class_alias(Endpoints\Snapshot\GetRepository::class, '\Elasticsearch\Endpoints\Snapshot\Repository\Get');
48+
class_alias(Endpoints\Snapshot\VerifyRepository::class, '\Elasticsearch\Endpoints\Snapshot\Repository\Verify');
49+
class_alias(Endpoints\GetSource::class, '\Elasticsearch\Endpoints\Source\Get');
50+
class_alias(Endpoints\ExistsSource::class, '\Elasticsearch\Endpoints\Source\Exists');
51+
class_alias(Endpoints\Tasks\ListTasks::class, '\Elasticsearch\Endpoints\Tasks\TasksList');
52+
class_alias(Endpoints\Termvectors::class, '\Elasticsearch\Endpoints\TermVectors');
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
<?php
2+
declare(strict_types = 1);
3+
4+
namespace Elasticsearch\Tests;
5+
6+
/**
7+
* Class BackwardCompatibleTest
8+
*
9+
* @category Tests
10+
* @package Elasticsearch
11+
* @subpackage Tests
12+
* @author Enrico Zimuel <[email protected]>
13+
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache2
14+
* @link http://elasticsearch.org
15+
*/
16+
class BackwardCompatibleTest extends \PHPUnit\Framework\TestCase
17+
{
18+
/**
19+
* List of endpoints in elasticsearch-php 7.2 branch
20+
*/
21+
public function getClasses()
22+
{
23+
return [
24+
['Elasticsearch\Endpoints\MTermVectors'],
25+
['Elasticsearch\Endpoints\Tasks\Get'],
26+
['Elasticsearch\Endpoints\Tasks\Cancel'],
27+
['Elasticsearch\Endpoints\Tasks\TasksList'],
28+
['Elasticsearch\Endpoints\Ping'],
29+
['Elasticsearch\Endpoints\ScriptsPainlessExecute'],
30+
['Elasticsearch\Endpoints\DeleteByQuery'],
31+
['Elasticsearch\Endpoints\Scroll'],
32+
['Elasticsearch\Endpoints\Explain'],
33+
['Elasticsearch\Endpoints\Get'],
34+
['Elasticsearch\Endpoints\UpdateByQueryRethrottle'],
35+
['Elasticsearch\Endpoints\Delete'],
36+
['Elasticsearch\Endpoints\SearchShards'],
37+
['Elasticsearch\Endpoints\Mget'],
38+
['Elasticsearch\Endpoints\Source\Get'],
39+
['Elasticsearch\Endpoints\Source\Exists'],
40+
['Elasticsearch\Endpoints\Bulk'],
41+
['Elasticsearch\Endpoints\Cluster\PendingTasks'],
42+
['Elasticsearch\Endpoints\Cluster\Health'],
43+
['Elasticsearch\Endpoints\Cluster\Settings\Get'],
44+
['Elasticsearch\Endpoints\Cluster\Settings\Put'],
45+
['Elasticsearch\Endpoints\Cluster\Reroute'],
46+
['Elasticsearch\Endpoints\Cluster\State'],
47+
['Elasticsearch\Endpoints\Cluster\RemoteInfo'],
48+
['Elasticsearch\Endpoints\Cluster\Stats'],
49+
['Elasticsearch\Endpoints\Cluster\AllocationExplain'],
50+
['Elasticsearch\Endpoints\ClearScroll'],
51+
['Elasticsearch\Endpoints\Script\Get'],
52+
['Elasticsearch\Endpoints\Script\Delete'],
53+
['Elasticsearch\Endpoints\Script\Put'],
54+
['Elasticsearch\Endpoints\Exists'],
55+
['Elasticsearch\Endpoints\Index'],
56+
['Elasticsearch\Endpoints\UpdateByQuery'],
57+
['Elasticsearch\Endpoints\Ingest\Pipeline\Get'],
58+
['Elasticsearch\Endpoints\Ingest\Pipeline\Delete'],
59+
['Elasticsearch\Endpoints\Ingest\Pipeline\Put'],
60+
['Elasticsearch\Endpoints\Ingest\Pipeline\ProcessorGrok'],
61+
['Elasticsearch\Endpoints\Ingest\Simulate'],
62+
['Elasticsearch\Endpoints\SearchTemplate'],
63+
['Elasticsearch\Endpoints\FieldCaps'],
64+
['Elasticsearch\Endpoints\Snapshot\Get'],
65+
['Elasticsearch\Endpoints\Snapshot\Delete'],
66+
['Elasticsearch\Endpoints\Snapshot\Restore'],
67+
['Elasticsearch\Endpoints\Snapshot\Create'],
68+
['Elasticsearch\Endpoints\Snapshot\Status'],
69+
['Elasticsearch\Endpoints\Snapshot\Repository\Verify'],
70+
['Elasticsearch\Endpoints\Snapshot\Repository\Get'],
71+
['Elasticsearch\Endpoints\Snapshot\Repository\Delete'],
72+
['Elasticsearch\Endpoints\Snapshot\Repository\Create'],
73+
['Elasticsearch\Endpoints\Count'],
74+
['Elasticsearch\Endpoints\Create'],
75+
['Elasticsearch\Endpoints\Info'],
76+
['Elasticsearch\Endpoints\Indices\Type\Exists'],
77+
['Elasticsearch\Endpoints\Indices\ForceMerge'],
78+
['Elasticsearch\Endpoints\Indices\Flush'],
79+
['Elasticsearch\Endpoints\Indices\Analyze'],
80+
['Elasticsearch\Endpoints\Indices\Rollover'],
81+
['Elasticsearch\Endpoints\Indices\Get'],
82+
['Elasticsearch\Endpoints\Indices\Template\Get'],
83+
['Elasticsearch\Endpoints\Indices\Template\Delete'],
84+
['Elasticsearch\Endpoints\Indices\Template\Exists'],
85+
['Elasticsearch\Endpoints\Indices\Template\Put'],
86+
['Elasticsearch\Endpoints\Indices\Delete'],
87+
['Elasticsearch\Endpoints\Indices\FlushSynced'],
88+
['Elasticsearch\Endpoints\Indices\Refresh'],
89+
['Elasticsearch\Endpoints\Indices\Exists'],
90+
['Elasticsearch\Endpoints\Indices\Cache\Clear'],
91+
['Elasticsearch\Endpoints\Indices\Settings\Get'],
92+
['Elasticsearch\Endpoints\Indices\Settings\Put'],
93+
['Elasticsearch\Endpoints\Indices\Create'],
94+
['Elasticsearch\Endpoints\Indices\Close'],
95+
['Elasticsearch\Endpoints\Indices\ShardStores'],
96+
['Elasticsearch\Endpoints\Indices\Stats'],
97+
['Elasticsearch\Endpoints\Indices\Validate\Query'],
98+
['Elasticsearch\Endpoints\Indices\Alias\Get'],
99+
['Elasticsearch\Endpoints\Indices\Alias\Delete'],
100+
['Elasticsearch\Endpoints\Indices\Alias\Exists'],
101+
['Elasticsearch\Endpoints\Indices\Alias\Put'],
102+
['Elasticsearch\Endpoints\Indices\Open'],
103+
['Elasticsearch\Endpoints\Indices\Segments'],
104+
['Elasticsearch\Endpoints\Indices\Upgrade\Get'],
105+
['Elasticsearch\Endpoints\Indices\Upgrade\Post'],
106+
['Elasticsearch\Endpoints\Indices\Aliases\Update'],
107+
['Elasticsearch\Endpoints\Indices\Recovery'],
108+
['Elasticsearch\Endpoints\Indices\Shrink'],
109+
['Elasticsearch\Endpoints\Indices\Split'],
110+
['Elasticsearch\Endpoints\Indices\Mapping\Get'],
111+
['Elasticsearch\Endpoints\Indices\Mapping\Put'],
112+
['Elasticsearch\Endpoints\Indices\Mapping\GetField'],
113+
['Elasticsearch\Endpoints\Reindex'],
114+
['Elasticsearch\Endpoints\DeleteByQueryRethrottle'],
115+
['Elasticsearch\Endpoints\MsearchTemplate'],
116+
['Elasticsearch\Endpoints\TermVectors'],
117+
['Elasticsearch\Endpoints\AbstractEndpoint'],
118+
['Elasticsearch\Endpoints\RenderSearchTemplate'],
119+
['Elasticsearch\Endpoints\Update'],
120+
['Elasticsearch\Endpoints\Search'],
121+
['Elasticsearch\Endpoints\ReindexRethrottle'],
122+
['Elasticsearch\Endpoints\RankEval'],
123+
['Elasticsearch\Endpoints\Msearch'],
124+
['Elasticsearch\Endpoints\Cat\ThreadPool'],
125+
['Elasticsearch\Endpoints\Cat\Fielddata'],
126+
['Elasticsearch\Endpoints\Cat\Master'],
127+
['Elasticsearch\Endpoints\Cat\NodeAttrs'],
128+
['Elasticsearch\Endpoints\Cat\Aliases'],
129+
['Elasticsearch\Endpoints\Cat\PendingTasks'],
130+
['Elasticsearch\Endpoints\Cat\Templates'],
131+
['Elasticsearch\Endpoints\Cat\Allocation'],
132+
['Elasticsearch\Endpoints\Cat\Plugins'],
133+
['Elasticsearch\Endpoints\Cat\Health'],
134+
['Elasticsearch\Endpoints\Cat\Count'],
135+
['Elasticsearch\Endpoints\Cat\Shards'],
136+
['Elasticsearch\Endpoints\Cat\Repositories'],
137+
['Elasticsearch\Endpoints\Cat\Nodes'],
138+
['Elasticsearch\Endpoints\Cat\Tasks'],
139+
['Elasticsearch\Endpoints\Cat\Segments'],
140+
['Elasticsearch\Endpoints\Cat\Help'],
141+
['Elasticsearch\Endpoints\Cat\Recovery'],
142+
['Elasticsearch\Endpoints\Cat\Snapshots'],
143+
['Elasticsearch\Endpoints\Cat\Indices']
144+
];
145+
}
146+
147+
/**
148+
* @dataProvider getClasses
149+
*/
150+
public function testOldClassNamespacesPreviousTo72($class)
151+
{
152+
$this->assertTrue(class_exists($class), sprintf("Class %s does not exist", $class));
153+
}
154+
}

0 commit comments

Comments
 (0)