Class MigrationUtils

java.lang.Object
org.apache.unomi.shell.migration.utils.MigrationUtils

public class MigrationUtils extends Object
Author:
dgaillard
  • Constructor Details

    • MigrationUtils

      public MigrationUtils()
  • Method Details

    • 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
    • configureAlias

      public static void configureAlias(org.apache.http.impl.client.CloseableHttpClient httpClient, String esAddress, String alias, String writeIndex, Set<String> readIndices, String configureAliasBody, MigrationContext context) 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 server
      esAddress - the address of the Elasticsearch server
      indexName - the name of the index where documents should be updated
      requestBody - 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 server
      esAddress - the address of the Elasticsearch server
      indexName - the name of the index from which documents should be deleted
      requestBody - 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