Browse Source

remove elasticsearch- from name of official plugins

This change fixes the plugin manager to trim `elasticsearch-` and `es-` prefixes from plugin names
for our official plugins. This restores the old behavior prior to #11805.

Closes #12143
jaymode 10 năm trước cách đây
mục cha
commit
3fd9f4b82e

+ 9 - 13
core/src/main/java/org/elasticsearch/plugins/PluginManager.java

@@ -759,19 +759,15 @@ public class PluginManager {
             }
             }
 
 
             if (isOfficialPlugin(repo, user, version)) {
             if (isOfficialPlugin(repo, user, version)) {
-                return new PluginHandle(repo, Version.CURRENT.number(), null, repo);
-            }
-
-            if (repo.startsWith("elasticsearch-")) {
-                // remove elasticsearch- prefix
-                String endname = repo.substring("elasticsearch-".length());
-                return new PluginHandle(endname, version, user, repo);
-            }
-
-            if (name.startsWith("es-")) {
-                // remove es- prefix
-                String endname = repo.substring("es-".length());
-                return new PluginHandle(endname, version, user, repo);
+                String endname = repo;
+                if (repo.startsWith("elasticsearch-")) {
+                    // remove elasticsearch- prefix
+                    endname = repo.substring("elasticsearch-".length());
+                } else if (name.startsWith("es-")) {
+                    // remove es- prefix
+                    endname = repo.substring("es-".length());
+                }
+                return new PluginHandle(endname, Version.CURRENT.number(), null, repo);
             }
             }
 
 
             return new PluginHandle(repo, version, user, repo);
             return new PluginHandle(repo, version, user, repo);

+ 12 - 0
core/src/test/java/org/elasticsearch/plugins/PluginManagerUnitTests.java

@@ -67,4 +67,16 @@ public class PluginManagerUnitTests extends ElasticsearchTestCase {
             pluginName + "-" + Version.CURRENT.number() + ".zip");
             pluginName + "-" + Version.CURRENT.number() + ".zip");
         assertThat(handle.urls().get(0), is(expected));
         assertThat(handle.urls().get(0), is(expected));
     }
     }
+
+    @Test
+    public void testTrimmingElasticsearchFromPluginName() throws IOException {
+        String randomName = randomAsciiOfLength(10);
+        String pluginName = randomFrom("elasticsearch-", "es-") + randomName;
+        PluginManager.PluginHandle handle = PluginManager.PluginHandle.parse(pluginName);
+        assertThat(handle.name, is(randomName));
+        assertThat(handle.urls(), hasSize(1));
+        URL expected = new URL("http", "download.elastic.co", "/org.elasticsearch.plugins/" + pluginName + "/" +
+                pluginName + "-" + Version.CURRENT.number() + ".zip");
+        assertThat(handle.urls().get(0), is(expected));
+    }
 }
 }