Skip to content

Commit

Permalink
[Extensions] Adds supports to read extension dependencies (#6137) (#6167
Browse files Browse the repository at this point in the history
)

* Adds supports to read extension dependencies


(cherry picked from commit 2f9a475)

Signed-off-by: Sarat Vemulapalli <[email protected]>
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
  • Loading branch information
1 parent 31e0d0b commit 7df021b
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,22 @@ private ExtensionsSettings readFromExtensionsYml(Path filePath) throws IOExcepti
List<HashMap<String, ?>> unreadExtensions = new ArrayList<>((Collection<HashMap<String, ?>>) obj.get("extensions"));
List<Extension> readExtensions = new ArrayList<Extension>();
for (HashMap<String, ?> extensionMap : unreadExtensions) {
// Parse extension dependencies
List<ExtensionDependency> extensionDependencyList = new ArrayList<ExtensionDependency>();
if (extensionMap.get("dependencies") != null) {
List<HashMap<String, ?>> extensionDependencies = new ArrayList<>(
(Collection<HashMap<String, ?>>) extensionMap.get("dependencies")
);
for (HashMap<String, ?> dependency : extensionDependencies) {
extensionDependencyList.add(
new ExtensionDependency(
dependency.get("uniqueId").toString(),
Version.fromString(dependency.get("version").toString())
)
);
}
}
// Create extension read from yml config
readExtensions.add(
new Extension(
extensionMap.get("name").toString(),
Expand All @@ -573,7 +589,8 @@ private ExtensionsSettings readFromExtensionsYml(Path filePath) throws IOExcepti
extensionMap.get("port").toString(),
extensionMap.get("version").toString(),
extensionMap.get("opensearchVersion").toString(),
extensionMap.get("minimumCompatibleVersion").toString()
extensionMap.get("minimumCompatibleVersion").toString(),
extensionDependencyList
)
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ public Extension(
String port,
String version,
String opensearchVersion,
String minimumCompatibleVersion
String minimumCompatibleVersion,
List<ExtensionDependency> dependencies
) {
this.name = name;
this.uniqueId = uniqueId;
Expand All @@ -61,6 +62,7 @@ public Extension(
this.version = version;
this.opensearchVersion = opensearchVersion;
this.minimumCompatibleVersion = minimumCompatibleVersion;
this.dependencies = dependencies;
}

public Extension() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ public class ExtensionsManagerTests extends OpenSearchTestCase {
" minimumCompatibleVersion: '" + Version.CURRENT.toString() + "'",
" dependencies:",
" - uniqueId: 'uniqueid0'",
" - version: '2.0.0'"
" version: '2.0.0'"
);

private DiscoveryExtensionNode extensionNode;
Expand Down Expand Up @@ -236,8 +236,7 @@ public void testDiscover() throws Exception {
assertEquals(extension.getAttributes(), initializedExtension.getAttributes());
assertEquals(extension.getVersion(), initializedExtension.getVersion());
assertEquals(extension.getMinimumCompatibleVersion(), initializedExtension.getMinimumCompatibleVersion());
// TODO: Will fail due to bug : https://github.com/opensearch-project/OpenSearch/issues/6115
// assertEquals(extension.getDependencies(), initializedExtension.getDependencies());
assertEquals(extension.getDependencies(), initializedExtension.getDependencies());
}
}

Expand Down Expand Up @@ -272,10 +271,10 @@ public void testNonUniqueExtensionsDiscovery() throws Exception {
assertEquals(extension.getAttributes(), initializedExtension.getAttributes());
assertEquals(extension.getVersion(), initializedExtension.getVersion());
assertEquals(extension.getMinimumCompatibleVersion(), initializedExtension.getMinimumCompatibleVersion());
assertEquals(extension.getDependencies(), initializedExtension.getDependencies());
}
assertTrue(expectedExtensions.containsAll(emptyList()));
// TODO: Will fail due to bug : https://github.com/opensearch-project/OpenSearch/issues/6115
// assertEquals(extension.getDependencies(), initializedExtension.getDependencies());
assertTrue(expectedExtensions.containsAll(emptyList()));
}

public void testDiscoveryExtension() throws Exception {
Expand Down

0 comments on commit 7df021b

Please sign in to comment.