Skip to content

Commit

Permalink
Fix 6.8.0 release adding missing class alises (#1114)
Browse files Browse the repository at this point in the history
* Fix for #1112 issue. Adding endpoint aliases + IndicesNamespace::getAliases()

* Reverted array alias to class in src/autoload.php + added unit tests for missing class aliases in 6.8

* Fixed indentation in src/ autoload.php
  • Loading branch information
ezimuel authored Mar 22, 2021
1 parent a524a7d commit 285ed33
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 41 deletions.
11 changes: 11 additions & 0 deletions src/Elasticsearch/Namespaces/IndicesNamespace.php
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,17 @@ public function getAlias(array $params = [])

return $this->performRequest($endpoint);
}

/**
* Proxy to getAlias()
*
* @see https://github.com/elastic/elasticsearch-php/issues/1112
*/
public function getAliases(array $params = [])
{
return $this->getAlias($params);
}

/**
* $params['index'] = (list) A comma-separated list of index names
* $params['type'] = (list) A comma-separated list of document types
Expand Down
81 changes: 42 additions & 39 deletions src/autoload.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,47 +19,50 @@
* @see https://github.com/elastic/elasticsearch-php/issues/967
*/

$classesToAlias = [
'\Elasticsearch\Endpoints\Nodes\HotThreads' => '\Elasticsearch\Endpoints\Cluster\Nodes\HotThreads',
'\Elasticsearch\Endpoints\Nodes\Info' => '\Elasticsearch\Endpoints\Cluster\Nodes\Info',
'\Elasticsearch\Endpoints\Nodes\ReloadSecureSettings' => '\Elasticsearch\Endpoints\Cluster\Nodes\ReloadSecureSettings',
'\Elasticsearch\Endpoints\Nodes\Stats' => '\Elasticsearch\Endpoints\Cluster\Nodes\Stats',
'\Elasticsearch\Endpoints\Cluster\GetSettings' => '\Elasticsearch\Endpoints\Cluster\Settings\Get',
'\Elasticsearch\Endpoints\Cluster\PutSettings' => '\Elasticsearch\Endpoints\Cluster\Settings\Put',
'\Elasticsearch\Endpoints\Indices\DeleteAlias' => '\Elasticsearch\Endpoints\Indices\Alias\Delete',
'\Elasticsearch\Endpoints\Indices\ExistsAlias' => '\Elasticsearch\Endpoints\Indices\Alias\Exists',
'\Elasticsearch\Endpoints\Indices\GetAlias' => '\Elasticsearch\Endpoints\Indices\Alias\Get',
'\Elasticsearch\Endpoints\Indices\PutAlias' => '\Elasticsearch\Endpoints\Indices\Alias\Put',
'\Elasticsearch\Endpoints\Indices\ClearCache' => '\Elasticsearch\Endpoints\Indices\Cache\Clear',
'\Elasticsearch\Endpoints\Indices\GetMapping' => '\Elasticsearch\Endpoints\Indices\Mapping\Get',
'\Elasticsearch\Endpoints\Indices\GetFieldMapping' => '\Elasticsearch\Endpoints\Indices\Mapping\GetField',
'\Elasticsearch\Endpoints\Indices\PutMapping' => '\Elasticsearch\Endpoints\Indices\Mapping\Put',
'\Elasticsearch\Endpoints\Indices\GetSettings' => '\Elasticsearch\Endpoints\Indices\Settings\Get',
'\Elasticsearch\Endpoints\Indices\PutSettings' => '\Elasticsearch\Endpoints\Indices\Settings\Put',
'\Elasticsearch\Endpoints\Indices\GetTemplate' => '\Elasticsearch\Endpoints\Indices\Template\Get',
'\Elasticsearch\Endpoints\Indices\PutTemplate' => '\Elasticsearch\Endpoints\Indices\Template\Put',
'\Elasticsearch\Endpoints\Indices\ExistsTemplate' => '\Elasticsearch\Endpoints\Indices\Template\Exists',
'\Elasticsearch\Endpoints\Indices\DeleteTemplate' => '\Elasticsearch\Endpoints\Indices\Template\Delete',
'\Elasticsearch\Endpoints\Indices\ExistsType' => '\Elasticsearch\Endpoints\Indices\Type\Exists',
'\Elasticsearch\Endpoints\Indices\GetUpgrade' => '\Elasticsearch\Endpoints\Indices\Upgrade\Get',
'\Elasticsearch\Endpoints\Indices\Upgrade' => '\Elasticsearch\Endpoints\Indices\Upgrade\Post',
'\Elasticsearch\Endpoints\Indices\ValidateQuery' => '\Elasticsearch\Endpoints\Indices\Validate\Query',
'\Elasticsearch\Endpoints\Ingest\DeletePipeline' => '\Elasticsearch\Endpoints\Ingest\Pipeline\Delete',
'\Elasticsearch\Endpoints\Ingest\GetPipeline' => '\Elasticsearch\Endpoints\Ingest\Pipeline\Get',
'\Elasticsearch\Endpoints\Ingest\PutPipeline' => '\Elasticsearch\Endpoints\Ingest\Pipeline\Put',
'\Elasticsearch\Endpoints\Ingest\ProcessorGrok' => '\Elasticsearch\Endpoints\Ingest\Pipeline\ProcessorGrok',
'\Elasticsearch\Endpoints\GetScript' => '\Elasticsearch\Endpoints\Script\Get',
'\Elasticsearch\Endpoints\PutScript' => '\Elasticsearch\Endpoints\Script\Put',
'\Elasticsearch\Endpoints\DeleteScript' => '\Elasticsearch\Endpoints\Script\Delete',
'\Elasticsearch\Endpoints\Snapshot\CreateRepository' => '\Elasticsearch\Endpoints\Snapshot\Repository\Create',
'\Elasticsearch\Endpoints\Snapshot\DeleteRepository' => '\Elasticsearch\Endpoints\Snapshot\Repository\Delete',
'\Elasticsearch\Endpoints\Snapshot\GetRepository' => '\Elasticsearch\Endpoints\Snapshot\Repository\Get',
'\Elasticsearch\Endpoints\Snapshot\VerifyRepository' => '\Elasticsearch\Endpoints\Snapshot\Repository\Verify',
'\Elasticsearch\Endpoints\GetSource' => '\Elasticsearch\Endpoints\Source\Get',
'\Elasticsearch\Endpoints\Tasks\ListTasks' => '\Elasticsearch\Endpoints\Tasks\TasksList'
$aliasToClass = [
'\Elasticsearch\Endpoints\Cluster\Nodes\HotThreads' => '\Elasticsearch\Endpoints\Nodes\HotThreads',
'\Elasticsearch\Endpoints\Cluster\Nodes\Info' => '\Elasticsearch\Endpoints\Nodes\Info' ,
'\Elasticsearch\Endpoints\Cluster\Nodes\ReloadSecureSettings' => '\Elasticsearch\Endpoints\Nodes\ReloadSecureSettings',
'\Elasticsearch\Endpoints\Cluster\Nodes\Stats' => '\Elasticsearch\Endpoints\Nodes\Stats',
'\Elasticsearch\Endpoints\Cluster\Settings\Get' => '\Elasticsearch\Endpoints\Cluster\GetSettings',
'\Elasticsearch\Endpoints\Cluster\Settings\Put' => '\Elasticsearch\Endpoints\Cluster\PutSettings',
'\Elasticsearch\Endpoints\Indices\Alias\Delete' => '\Elasticsearch\Endpoints\Indices\DeleteAlias',
'\Elasticsearch\Endpoints\Indices\Alias\Exists' => '\Elasticsearch\Endpoints\Indices\ExistsAlias',
'\Elasticsearch\Endpoints\Indices\Alias\Get' => '\Elasticsearch\Endpoints\Indices\GetAlias',
'\Elasticsearch\Endpoints\Indices\Alias\Put' => '\Elasticsearch\Endpoints\Indices\PutAlias',
'\Elasticsearch\Endpoints\Indices\Aliases\Update' => '\Elasticsearch\Endpoints\Indices\UpdateAliases',
'\Elasticsearch\Endpoints\Indices\Cache\Clear' => '\Elasticsearch\Endpoints\Indices\ClearCache',
'\Elasticsearch\Endpoints\Indices\Exists\Types' => '\Elasticsearch\Endpoints\Indices\ExistsType',
'\Elasticsearch\Endpoints\Indices\Type\Exists' => '\Elasticsearch\Endpoints\Indices\ExistsType',
'\Elasticsearch\Endpoints\Indices\Field\Get' => '\Elasticsearch\Endpoints\Indices\GetFieldMapping',
'\Elasticsearch\Endpoints\Indices\Mapping\GetField' => '\Elasticsearch\Endpoints\Indices\GetFieldMapping',
'\Elasticsearch\Endpoints\Indices\Mapping\Get' => '\Elasticsearch\Endpoints\Indices\GetMapping',
'\Elasticsearch\Endpoints\Indices\Mapping\Put' => '\Elasticsearch\Endpoints\Indices\PutMapping',
'\Elasticsearch\Endpoints\Indices\Settings\Get' => '\Elasticsearch\Endpoints\Indices\GetSettings',
'\Elasticsearch\Endpoints\Indices\Settings\Put' => '\Elasticsearch\Endpoints\Indices\PutSettings',
'\Elasticsearch\Endpoints\Indices\Template\Get' => '\Elasticsearch\Endpoints\Indices\GetTemplate',
'\Elasticsearch\Endpoints\Indices\Template\Put' => '\Elasticsearch\Endpoints\Indices\PutTemplate',
'\Elasticsearch\Endpoints\Indices\Template\Exists' => '\Elasticsearch\Endpoints\Indices\ExistsTemplate',
'\Elasticsearch\Endpoints\Indices\Template\Delete' => '\Elasticsearch\Endpoints\Indices\DeleteTemplate',
'\Elasticsearch\Endpoints\Indices\Upgrade\Get' => '\Elasticsearch\Endpoints\Indices\GetUpgrade',
'\Elasticsearch\Endpoints\Indices\Upgrade\Post' => '\Elasticsearch\Endpoints\Indices\Upgrade',
'\Elasticsearch\Endpoints\Indices\Validate\Query' => '\Elasticsearch\Endpoints\Indices\ValidateQuery',
'\Elasticsearch\Endpoints\Ingest\Pipeline\Delete' => '\Elasticsearch\Endpoints\Ingest\DeletePipeline',
'\Elasticsearch\Endpoints\Ingest\Pipeline\Get' => '\Elasticsearch\Endpoints\Ingest\GetPipeline',
'\Elasticsearch\Endpoints\Ingest\Pipeline\Put' => '\Elasticsearch\Endpoints\Ingest\PutPipeline',
'\Elasticsearch\Endpoints\Ingest\Pipeline\ProcessorGrok' => '\Elasticsearch\Endpoints\Ingest\ProcessorGrok',
'\Elasticsearch\Endpoints\Script\Get' => '\Elasticsearch\Endpoints\GetScript',
'\Elasticsearch\Endpoints\Script\Put' => '\Elasticsearch\Endpoints\PutScript',
'\Elasticsearch\Endpoints\Script\Delete' => '\Elasticsearch\Endpoints\DeleteScript',
'\Elasticsearch\Endpoints\Snapshot\Repository\Create' => '\Elasticsearch\Endpoints\Snapshot\CreateRepository',
'\Elasticsearch\Endpoints\Snapshot\Repository\Delete' => '\Elasticsearch\Endpoints\Snapshot\DeleteRepository',
'\Elasticsearch\Endpoints\Snapshot\Repository\Get' => '\Elasticsearch\Endpoints\Snapshot\GetRepository',
'\Elasticsearch\Endpoints\Snapshot\Repository\Verify' => '\Elasticsearch\Endpoints\Snapshot\VerifyRepository',
'\Elasticsearch\Endpoints\Source\Get' => '\Elasticsearch\Endpoints\GetSource',
'\Elasticsearch\Endpoints\Tasks\TasksList' => '\Elasticsearch\Endpoints\Tasks\ListTasks'
];

foreach ($classesToAlias as $original => $alias) {
foreach ($aliasToClass as $alias => $original) {
if (!class_exists($alias, false)) {
class_alias($original, $alias);
}
Expand Down
15 changes: 13 additions & 2 deletions tests/Elasticsearch/Tests/BackwardCompatibleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

namespace Elasticsearch\Tests;

use Elasticsearch\Namespaces\IndicesNamespace;

/**
* Class BackwardCompatibleTest
*
Expand All @@ -30,14 +32,12 @@ class BackwardCompatibleTest extends \PHPUnit\Framework\TestCase
public function getClasses()
{
return [
//['Elasticsearch\Endpoints\TermVectors'],
['Elasticsearch\Endpoints\Delete'],
['Elasticsearch\Endpoints\ScriptsPainlessExecute'],
['Elasticsearch\Endpoints\Create'],
['Elasticsearch\Endpoints\Exists'],
['Elasticsearch\Endpoints\Get'],
['Elasticsearch\Endpoints\Explain'],
//['Elasticsearch\Endpoints\MTermVectors'],
['Elasticsearch\Endpoints\Search'],
['Elasticsearch\Endpoints\FieldCaps'],
['Elasticsearch\Endpoints\Msearch'],
Expand Down Expand Up @@ -90,6 +90,9 @@ public function getClasses()
['Elasticsearch\Endpoints\Indices\Alias\Exists'],
['Elasticsearch\Endpoints\Indices\Alias\Get'],
['Elasticsearch\Endpoints\Indices\Alias\Put'],
['Elasticsearch\Endpoints\Indices\Aliases\Update'],
['Elasticsearch\Endpoints\Indices\Exists\Types'],
['Elasticsearch\Endpoints\Indices\Field\Get'],
['Elasticsearch\Endpoints\Indices\Settings\Get'],
['Elasticsearch\Endpoints\Indices\Settings\Put'],
['Elasticsearch\Endpoints\Indices\Upgrade\Get'],
Expand Down Expand Up @@ -155,4 +158,12 @@ public function testOldClassNamespacesPreviousTo67($class)
{
$this->assertTrue(class_exists($class, true), sprintf("Class %s does not exist", $class));
}

/**
* @see https://github.com/elastic/elasticsearch-php/issues/1112
*/
public function testGetAliasesExistsInIndicesNamespace()
{
$this->assertTrue(method_exists(IndicesNamespace::class, 'getAliases'));
}
}

0 comments on commit 285ed33

Please sign in to comment.