Class MigrationUtils


  • public class MigrationUtils
    extends Object
    Author:
    dgaillard
    • Constructor Detail

      • MigrationUtils

        public MigrationUtils()
    • 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
      • 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
      • 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
      • 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