Class MigrationUtils
- java.lang.Object
-
- org.apache.unomi.shell.migration.utils.MigrationUtils
-
public class MigrationUtils extends Object
- Author:
- dgaillard
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
MigrationUtils.ScrollCallback
-
Constructor Summary
Constructors Constructor Description MigrationUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static String
buildIndexCreationRequest(String baseIndexSettings, String mapping, MigrationContext context, boolean isMonthlyIndex)
static String
buildIndexCreationRequestWithRollover(String baseIndexSettings, String mapping, MigrationContext context, String lifeCycleName, String rolloverAlias)
static String
buildRolloverPolicyCreationRequest(String baseRequest, MigrationContext migrationContext)
static void
bulkUpdate(org.apache.http.impl.client.CloseableHttpClient httpClient, String url, String jsonData)
static void
cleanAllIndexWithRollover(org.apache.http.impl.client.CloseableHttpClient httpClient, org.osgi.framework.BundleContext bundleContext, String esAddress, String prefix, String indexName)
static org.json.JSONObject
continueQueryWithScroll(org.apache.http.impl.client.CloseableHttpClient httpClient, String url, String scrollId)
static void
deleteByQuery(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String indexName, String requestBody)
Deletes documents from an index based on a specified query.static void
deleteIndex(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String indexName)
static String
extractMappingFromBundles(org.osgi.framework.BundleContext bundleContext, String fileName)
static String
getFileWithoutComments(org.osgi.framework.BundleContext bundleContext, String resource)
static Set<String>
getIndexesPrefixedBy(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String prefix)
static boolean
indexExists(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String indexName)
static void
moveToIndex(org.apache.http.impl.client.CloseableHttpClient httpClient, org.osgi.framework.BundleContext bundleContext, String esAddress, String sourceIndexName, String targetIndexName, String painlessScript)
static org.json.JSONObject
queryWithScroll(org.apache.http.impl.client.CloseableHttpClient httpClient, String url)
static void
reIndex(org.apache.http.impl.client.CloseableHttpClient httpClient, org.osgi.framework.BundleContext bundleContext, String esAddress, String indexName, String newIndexSettings, String painlessScript, MigrationContext migrationContext, String migrationUniqueName)
static String
resourceAsString(org.osgi.framework.BundleContext bundleContext, String resource)
static void
scrollQuery(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String queryURL, String query, String scrollDuration, MigrationUtils.ScrollCallback scrollCallback)
static void
updateByQuery(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String indexName, String requestBody)
Updates documents in an index based on a specified query.static void
waitForTaskToFinish(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String taskId, MigrationContext migrationContext)
static void
waitForYellowStatus(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, MigrationContext migrationContext)
Utility method that waits for the ES cluster to be in yellow status
-
-
-
Method Detail
-
queryWithScroll
public static org.json.JSONObject queryWithScroll(org.apache.http.impl.client.CloseableHttpClient httpClient, String url) throws IOException
- Throws:
IOException
-
continueQueryWithScroll
public static org.json.JSONObject continueQueryWithScroll(org.apache.http.impl.client.CloseableHttpClient httpClient, String url, String scrollId) throws IOException
- Throws:
IOException
-
bulkUpdate
public static void bulkUpdate(org.apache.http.impl.client.CloseableHttpClient httpClient, String url, String jsonData) throws IOException
- Throws:
IOException
-
resourceAsString
public static String resourceAsString(org.osgi.framework.BundleContext bundleContext, String resource)
-
getFileWithoutComments
public static String getFileWithoutComments(org.osgi.framework.BundleContext bundleContext, String resource)
-
indexExists
public static boolean indexExists(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String indexName) throws IOException
- Throws:
IOException
-
getIndexesPrefixedBy
public static Set<String> getIndexesPrefixedBy(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String prefix) throws IOException
- Throws:
IOException
-
cleanAllIndexWithRollover
public static void cleanAllIndexWithRollover(org.apache.http.impl.client.CloseableHttpClient httpClient, org.osgi.framework.BundleContext bundleContext, String esAddress, String prefix, String indexName) throws IOException
- Throws:
IOException
-
extractMappingFromBundles
public static String extractMappingFromBundles(org.osgi.framework.BundleContext bundleContext, String fileName) throws IOException
- Throws:
IOException
-
buildIndexCreationRequest
public static String buildIndexCreationRequest(String baseIndexSettings, String mapping, MigrationContext context, boolean isMonthlyIndex) throws IOException
- Throws:
IOException
-
buildIndexCreationRequestWithRollover
public static String buildIndexCreationRequestWithRollover(String baseIndexSettings, String mapping, MigrationContext context, String lifeCycleName, String rolloverAlias) throws IOException
- Throws:
IOException
-
buildRolloverPolicyCreationRequest
public static String buildRolloverPolicyCreationRequest(String baseRequest, MigrationContext migrationContext) throws IOException
- Throws:
IOException
-
moveToIndex
public static void moveToIndex(org.apache.http.impl.client.CloseableHttpClient httpClient, org.osgi.framework.BundleContext bundleContext, String esAddress, String sourceIndexName, String targetIndexName, String painlessScript) throws Exception
- Throws:
Exception
-
deleteIndex
public static void deleteIndex(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String indexName) throws Exception
- Throws:
Exception
-
reIndex
public static void reIndex(org.apache.http.impl.client.CloseableHttpClient httpClient, org.osgi.framework.BundleContext bundleContext, String esAddress, String indexName, String newIndexSettings, String painlessScript, MigrationContext migrationContext, String migrationUniqueName) throws Exception
- Throws:
Exception
-
scrollQuery
public static void scrollQuery(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String queryURL, String query, String scrollDuration, MigrationUtils.ScrollCallback scrollCallback) throws IOException
- Throws:
IOException
-
waitForYellowStatus
public static void waitForYellowStatus(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, MigrationContext migrationContext) throws Exception
Utility method that waits for the ES cluster to be in yellow status- Throws:
Exception
-
updateByQuery
public static void updateByQuery(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String indexName, String requestBody) throws Exception
Updates documents in an index based on a specified query.This method sends a request to update documents that match the provided query in the specified index. The update operation is performed asynchronously, and the method waits for the task to complete before returning.
- Parameters:
httpClient
- the CloseableHttpClient used to send the request to the Elasticsearch serveresAddress
- the address of the Elasticsearch serverindexName
- the name of the index where documents should be updatedrequestBody
- the JSON body containing the query and update instructions for the documents- Throws:
Exception
- if there is an error during the HTTP request or while waiting for the task to finish
-
deleteByQuery
public static void deleteByQuery(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String indexName, String requestBody) throws Exception
Deletes documents from an index based on a specified query.This method sends a request to the Elasticsearch cluster to delete documents that match the provided query in the specified index. The deletion operation is performed asynchronously, and the method waits for the task to complete before returning.
- Parameters:
httpClient
- the CloseableHttpClient used to send the request to the Elasticsearch serveresAddress
- the address of the Elasticsearch serverindexName
- the name of the index from which documents should be deletedrequestBody
- the JSON body containing the query that defines which documents to delete- Throws:
Exception
- if there is an error during the HTTP request or while waiting for the task to finish
-
waitForTaskToFinish
public static void waitForTaskToFinish(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String taskId, MigrationContext migrationContext) throws IOException
- Throws:
IOException
-
-