Skip to content

Commit

Permalink
Merge branch 'feature/point_in_time' of https://github.com/opensearch…
Browse files Browse the repository at this point in the history
…-project/OpenSearch into delete_pit
  • Loading branch information
bharath-techie committed Jun 27, 2022
2 parents 93f8db7 + 15fe7e7 commit 17a824e
Show file tree
Hide file tree
Showing 410 changed files with 5,716 additions and 1,638 deletions.
1 change: 1 addition & 0 deletions .ci/bwcVersions
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,4 @@ BWC_VERSION:
- "2.0.1"
- "2.0.2"
- "2.1.0"
- "2.2.0"
50 changes: 47 additions & 3 deletions buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import com.github.jengelman.gradle.plugins.shadow.ShadowExtension;
import groovy.util.Node;
import groovy.util.NodeList;

import org.opensearch.gradle.info.BuildParams;
import org.opensearch.gradle.precommit.PomValidationPrecommitPlugin;
import org.opensearch.gradle.util.Util;
Expand All @@ -55,6 +56,9 @@
import org.gradle.api.tasks.bundling.Jar;
import org.gradle.language.base.plugins.LifecycleBasePlugin;

import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.util.concurrent.Callable;

import static org.opensearch.gradle.util.GradleUtils.maybeConfigure;
Expand Down Expand Up @@ -146,9 +150,49 @@ public String call() throws Exception {

private static void addScmInfo(XmlProvider xml) {
Node root = xml.asNode();
root.appendNode("url", Util.urlFromOrigin(BuildParams.getGitOrigin()));
Node scmNode = root.appendNode("scm");
scmNode.appendNode("url", BuildParams.getGitOrigin());
Node url = null, scm = null;

for (final Object child : root.children()) {
if (child instanceof Node) {
final Node node = (Node) child;
final Object name = node.name();

try {
// For Gradle 6.8 and below, the class is groovy.xml.QName
// For Gradle 7.4 and above, the class is groovy.namespace.QName
if (name != null && name.getClass().getSimpleName().equals("QName")) {
final MethodHandle handle = MethodHandles.publicLookup()
.findVirtual(name.getClass(), "matches", MethodType.methodType(boolean.class, Object.class))
.bindTo(name);

if ((boolean) handle.invoke("url")) {
url = node;
} else if ((boolean) handle.invoke("scm")) {
scm = node;
}
}
} catch (final Throwable ex) {
// Not a suitable QName type we could use ...
}

if ("url".equals(name)) {
url = node;
} else if ("scm".equals(name)) {
scm = node;
}
}
}

// Only include URL section if it is not provided in the POM already
if (url == null) {
root.appendNode("url", Util.urlFromOrigin(BuildParams.getGitOrigin()));
}

// Only include SCM section if it is not provided in the POM already
if (scm == null) {
Node scmNode = root.appendNode("scm");
scmNode.appendNode("url", BuildParams.getGitOrigin());
}
}

/** Adds a javadocJar task to generate a jar containing javadocs. */
Expand Down
118 changes: 100 additions & 18 deletions buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,26 +52,62 @@ public void tearDown() {

@Test
public void testZipPublish() throws IOException, XmlPullParserException {
Project project = ProjectBuilder.builder().build();
String zipPublishTask = "publishPluginZipPublicationToZipStagingRepository";
// Apply the opensearch.pluginzip plugin
project.getPluginManager().apply("opensearch.pluginzip");
// Check if the plugin has been applied to the project
assertTrue(project.getPluginManager().hasPlugin("opensearch.pluginzip"));
// Check if the project has the task from class PublishToMavenRepository after plugin apply
assertNotNull(project.getTasks().withType(PublishToMavenRepository.class));
// Create a mock bundlePlugin task
Zip task = project.getTasks().create("bundlePlugin", Zip.class);
Publish.configMaven(project);
// Check if the main task publishPluginZipPublicationToZipStagingRepository exists after plugin apply
assertTrue(project.getTasks().getNames().contains(zipPublishTask));
assertNotNull("Task to generate: ", project.getTasks().getByName(zipPublishTask));
// Run Gradle functional tests, but calling a build.gradle file, that resembles the plugin publish behavior
prepareProjectForPublishTask(zipPublishTask);

// Generate the build.gradle file
String buildFileContent = "apply plugin: 'maven-publish' \n"
+ "apply plugin: 'java' \n"
+ "publishing {\n"
+ " repositories {\n"
+ " maven {\n"
+ " url = 'local-staging-repo/'\n"
+ " name = 'zipStaging'\n"
+ " }\n"
+ " }\n"
+ " publications {\n"
+ " pluginZip(MavenPublication) {\n"
+ " groupId = 'org.opensearch.plugin' \n"
+ " artifactId = 'sample-plugin' \n"
+ " version = '2.0.0.0' \n"
+ " artifact('sample-plugin.zip') \n"
+ " }\n"
+ " }\n"
+ "}";
writeString(projectDir.newFile("build.gradle"), buildFileContent);
// Execute the task publishPluginZipPublicationToZipStagingRepository
List<String> allArguments = new ArrayList<String>();
allArguments.add("build");
allArguments.add(zipPublishTask);
GradleRunner runner = GradleRunner.create();
runner.forwardOutput();
runner.withPluginClasspath();
runner.withArguments(allArguments);
runner.withProjectDir(projectDir.getRoot());
BuildResult result = runner.build();
// Check if task publishMavenzipPublicationToZipstagingRepository has ran well
assertEquals(SUCCESS, result.task(":" + zipPublishTask).getOutcome());
// check if the zip has been published to local staging repo
assertTrue(
new File(projectDir.getRoot(), "local-staging-repo/org/opensearch/plugin/sample-plugin/2.0.0.0/sample-plugin-2.0.0.0.zip")
.exists()
);
assertEquals(SUCCESS, result.task(":" + "build").getOutcome());
// Parse the maven file and validate the groupID to org.opensearch.plugin
MavenXpp3Reader reader = new MavenXpp3Reader();
Model model = reader.read(
new FileReader(
new File(projectDir.getRoot(), "local-staging-repo/org/opensearch/plugin/sample-plugin/2.0.0.0/sample-plugin-2.0.0.0.pom")
)
);
assertEquals(model.getGroupId(), "org.opensearch.plugin");
}

@Test
public void testZipPublishWithPom() throws IOException, XmlPullParserException {
String zipPublishTask = "publishPluginZipPublicationToZipStagingRepository";
Project project = prepareProjectForPublishTask(zipPublishTask);

// Create a sample plugin zip file
File sampleZip = new File(projectDir.getRoot(), "sample-plugin.zip");
Files.createFile(sampleZip.toPath());
writeString(projectDir.newFile("settings.gradle"), "");
// Generate the build.gradle file
String buildFileContent = "apply plugin: 'maven-publish' \n"
+ "apply plugin: 'java' \n"
Expand All @@ -88,6 +124,26 @@ public void testZipPublish() throws IOException, XmlPullParserException {
+ " artifactId = 'sample-plugin' \n"
+ " version = '2.0.0.0' \n"
+ " artifact('sample-plugin.zip') \n"
+ " pom {\n"
+ " name = 'sample-plugin'\n"
+ " description = 'sample-description'\n"
+ " licenses {\n"
+ " license {\n"
+ " name = \"The Apache License, Version 2.0\"\n"
+ " url = \"http://www.apache.org/licenses/LICENSE-2.0.txt\"\n"
+ " }\n"
+ " }\n"
+ " developers {\n"
+ " developer {\n"
+ " name = 'opensearch'\n"
+ " url = 'https://github.com/opensearch-project/OpenSearch'\n"
+ " }\n"
+ " }\n"
+ " url = 'https://github.com/opensearch-project/OpenSearch'\n"
+ " scm {\n"
+ " url = 'https://github.com/opensearch-project/OpenSearch'\n"
+ " }\n"
+ " }"
+ " }\n"
+ " }\n"
+ "}";
Expand Down Expand Up @@ -118,6 +174,32 @@ public void testZipPublish() throws IOException, XmlPullParserException {
)
);
assertEquals(model.getGroupId(), "org.opensearch.plugin");
assertEquals(model.getUrl(), "https://github.com/opensearch-project/OpenSearch");
}

protected Project prepareProjectForPublishTask(String zipPublishTask) throws IOException {
Project project = ProjectBuilder.builder().build();

// Apply the opensearch.pluginzip plugin
project.getPluginManager().apply("opensearch.pluginzip");
// Check if the plugin has been applied to the project
assertTrue(project.getPluginManager().hasPlugin("opensearch.pluginzip"));
// Check if the project has the task from class PublishToMavenRepository after plugin apply
assertNotNull(project.getTasks().withType(PublishToMavenRepository.class));
// Create a mock bundlePlugin task
Zip task = project.getTasks().create("bundlePlugin", Zip.class);
Publish.configMaven(project);
// Check if the main task publishPluginZipPublicationToZipStagingRepository exists after plugin apply
assertTrue(project.getTasks().getNames().contains(zipPublishTask));
assertNotNull("Task to generate: ", project.getTasks().getByName(zipPublishTask));
// Run Gradle functional tests, but calling a build.gradle file, that resembles the plugin publish behavior

// Create a sample plugin zip file
File sampleZip = new File(projectDir.getRoot(), "sample-plugin.zip");
Files.createFile(sampleZip.toPath());
writeString(projectDir.newFile("settings.gradle"), "");

return project;
}

private void writeString(File file, String string) throws IOException {
Expand Down
3 changes: 3 additions & 0 deletions buildSrc/version.properties
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ httpasyncclient = 4.1.4
commonslogging = 1.2
commonscodec = 1.13

# plugin dependencies
aws = 1.12.247

# when updating this version, you need to ensure compatibility with:
# - plugins/ingest-attachment (transitive dependency, check the upstream POM)
# - distribution/tools/plugin-cli
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
import org.opensearch.action.admin.cluster.settings.ClusterGetSettingsResponse;
import org.opensearch.action.admin.cluster.settings.ClusterUpdateSettingsRequest;
import org.opensearch.action.admin.cluster.settings.ClusterUpdateSettingsResponse;
import org.opensearch.action.support.clustermanager.AcknowledgedResponse;
import org.opensearch.action.support.master.AcknowledgedResponse;
import org.opensearch.client.cluster.RemoteInfoRequest;
import org.opensearch.client.cluster.RemoteInfoResponse;
import org.opensearch.client.indices.ComponentTemplatesExistRequest;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ static Request clusterPutSettings(ClusterUpdateSettingsRequest clusterUpdateSett

RequestConverters.Params parameters = new RequestConverters.Params();
parameters.withTimeout(clusterUpdateSettingsRequest.timeout());
parameters.withClusterManagerTimeout(clusterUpdateSettingsRequest.masterNodeTimeout());
parameters.withClusterManagerTimeout(clusterUpdateSettingsRequest.clusterManagerNodeTimeout());
request.addParameters(parameters.asMap());
request.setEntity(RequestConverters.createEntity(clusterUpdateSettingsRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE));
return request;
Expand All @@ -69,7 +69,7 @@ static Request clusterGetSettings(ClusterGetSettingsRequest clusterGetSettingsRe
RequestConverters.Params parameters = new RequestConverters.Params();
parameters.withLocal(clusterGetSettingsRequest.local());
parameters.withIncludeDefaults(clusterGetSettingsRequest.includeDefaults());
parameters.withClusterManagerTimeout(clusterGetSettingsRequest.masterNodeTimeout());
parameters.withClusterManagerTimeout(clusterGetSettingsRequest.clusterManagerNodeTimeout());
request.addParameters(parameters.asMap());
return request;
}
Expand All @@ -88,7 +88,7 @@ static Request clusterHealth(ClusterHealthRequest healthRequest) {
.withWaitForNodes(healthRequest.waitForNodes())
.withWaitForEvents(healthRequest.waitForEvents())
.withTimeout(healthRequest.timeout())
.withClusterManagerTimeout(healthRequest.masterNodeTimeout())
.withClusterManagerTimeout(healthRequest.clusterManagerNodeTimeout())
.withLocal(healthRequest.local())
.withLevel(healthRequest.level());
request.addParameters(params.asMap());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
import org.opensearch.action.admin.indices.template.delete.DeleteIndexTemplateRequest;
import org.opensearch.action.admin.indices.validate.query.ValidateQueryRequest;
import org.opensearch.action.admin.indices.validate.query.ValidateQueryResponse;
import org.opensearch.action.support.clustermanager.AcknowledgedResponse;
import org.opensearch.action.support.master.AcknowledgedResponse;
import org.opensearch.client.indices.AnalyzeRequest;
import org.opensearch.client.indices.AnalyzeResponse;
import org.opensearch.client.indices.CloseIndexRequest;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ static Request deleteIndex(DeleteIndexRequest deleteIndexRequest) {

RequestConverters.Params parameters = new RequestConverters.Params();
parameters.withTimeout(deleteIndexRequest.timeout());
parameters.withClusterManagerTimeout(deleteIndexRequest.masterNodeTimeout());
parameters.withClusterManagerTimeout(deleteIndexRequest.clusterManagerNodeTimeout());
parameters.withIndicesOptions(deleteIndexRequest.indicesOptions());
request.addParameters(parameters.asMap());
return request;
Expand All @@ -131,7 +131,7 @@ static Request openIndex(OpenIndexRequest openIndexRequest) {

RequestConverters.Params parameters = new RequestConverters.Params();
parameters.withTimeout(openIndexRequest.timeout());
parameters.withClusterManagerTimeout(openIndexRequest.masterNodeTimeout());
parameters.withClusterManagerTimeout(openIndexRequest.clusterManagerNodeTimeout());
parameters.withWaitForActiveShards(openIndexRequest.waitForActiveShards());
parameters.withIndicesOptions(openIndexRequest.indicesOptions());
request.addParameters(parameters.asMap());
Expand Down Expand Up @@ -168,7 +168,7 @@ static Request updateAliases(IndicesAliasesRequest indicesAliasesRequest) throws

RequestConverters.Params parameters = new RequestConverters.Params();
parameters.withTimeout(indicesAliasesRequest.timeout());
parameters.withClusterManagerTimeout(indicesAliasesRequest.masterNodeTimeout());
parameters.withClusterManagerTimeout(indicesAliasesRequest.clusterManagerNodeTimeout());
request.addParameters(parameters.asMap());
request.setEntity(RequestConverters.createEntity(indicesAliasesRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE));
return request;
Expand Down Expand Up @@ -349,7 +349,7 @@ private static Request resize(org.opensearch.action.admin.indices.shrink.ResizeR

RequestConverters.Params params = new RequestConverters.Params();
params.withTimeout(resizeRequest.timeout());
params.withClusterManagerTimeout(resizeRequest.masterNodeTimeout());
params.withClusterManagerTimeout(resizeRequest.clusterManagerNodeTimeout());
params.withWaitForActiveShards(resizeRequest.getTargetIndexRequest().waitForActiveShards());
request.addParameters(params.asMap());
request.setEntity(RequestConverters.createEntity(resizeRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE));
Expand Down Expand Up @@ -386,7 +386,7 @@ static Request getSettings(GetSettingsRequest getSettingsRequest) {
params.withIndicesOptions(getSettingsRequest.indicesOptions());
params.withLocal(getSettingsRequest.local());
params.withIncludeDefaults(getSettingsRequest.includeDefaults());
params.withClusterManagerTimeout(getSettingsRequest.masterNodeTimeout());
params.withClusterManagerTimeout(getSettingsRequest.clusterManagerNodeTimeout());
request.addParameters(params.asMap());
return request;
}
Expand Down Expand Up @@ -429,7 +429,7 @@ static Request indexPutSettings(UpdateSettingsRequest updateSettingsRequest) thr

RequestConverters.Params parameters = new RequestConverters.Params();
parameters.withTimeout(updateSettingsRequest.timeout());
parameters.withClusterManagerTimeout(updateSettingsRequest.masterNodeTimeout());
parameters.withClusterManagerTimeout(updateSettingsRequest.clusterManagerNodeTimeout());
parameters.withIndicesOptions(updateSettingsRequest.indicesOptions());
parameters.withPreserveExisting(updateSettingsRequest.isPreserveExisting());
request.addParameters(parameters.asMap());
Expand All @@ -443,7 +443,7 @@ static Request putTemplate(PutIndexTemplateRequest putIndexTemplateRequest) thro
.build();
Request request = new Request(HttpPut.METHOD_NAME, endpoint);
RequestConverters.Params params = new RequestConverters.Params();
params.withClusterManagerTimeout(putIndexTemplateRequest.masterNodeTimeout());
params.withClusterManagerTimeout(putIndexTemplateRequest.clusterManagerNodeTimeout());
if (putIndexTemplateRequest.create()) {
params.putParam("create", Boolean.TRUE.toString());
}
Expand Down Expand Up @@ -587,7 +587,7 @@ static Request deleteTemplate(DeleteIndexTemplateRequest deleteIndexTemplateRequ
String endpoint = new RequestConverters.EndpointBuilder().addPathPartAsIs("_template").addPathPart(name).build();
Request request = new Request(HttpDelete.METHOD_NAME, endpoint);
RequestConverters.Params params = new RequestConverters.Params();
params.withClusterManagerTimeout(deleteIndexTemplateRequest.masterNodeTimeout());
params.withClusterManagerTimeout(deleteIndexTemplateRequest.clusterManagerNodeTimeout());
request.addParameters(params.asMap());
return request;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
import org.opensearch.action.ingest.PutPipelineRequest;
import org.opensearch.action.ingest.SimulatePipelineRequest;
import org.opensearch.action.ingest.SimulatePipelineResponse;
import org.opensearch.action.support.clustermanager.AcknowledgedResponse;
import org.opensearch.action.support.master.AcknowledgedResponse;

import java.io.IOException;
import java.util.Collections;
Expand Down
Loading

0 comments on commit 17a824e

Please sign in to comment.