Преглед на файлове

AMBARI-17710. Error for Pig view after upgrade to 2.4.0.0 [PersistenceException: Can't initialize data store for view PIG].(Gaurav Nagar via pallavkul)

Pallav Kulshreshtha преди 9 години
родител
ревизия
8ca3d7dd30

+ 11 - 0
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java

@@ -421,6 +421,7 @@ public class UpgradeCatalog240 extends AbstractUpgradeCatalog {
     addSliderClientConfig();
     updateRequestScheduleEntityUserIds();
     updateRecoveryConfigurationDML();
+    updatePigSmokeTestEntityClass();
   }
 
   /**
@@ -2904,4 +2905,14 @@ public class UpgradeCatalog240 extends AbstractUpgradeCatalog {
       }
     }
   }
+
+  /**
+   * Update somketestentity class for pig view in viewentity table
+   */
+  protected void updatePigSmokeTestEntityClass() throws SQLException {
+    String updateSQL = "UPDATE viewentity " +
+      "SET class_name = 'org.apache.ambari.view.pig.persistence.SmokeTestEntity' " +
+      "WHERE class_name = 'org.apache.ambari.view.pig.persistence.DataStoreStorage$SmokeTestEntity'";
+    dbAccessor.executeUpdate(updateSQL);
+  }
 }

+ 9 - 0
ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog240Test.java

@@ -595,6 +595,9 @@ public class UpgradeCatalog240Test {
     Capture<String> capturedTezViewUpdate = newCapture();
     expect(dbAccessor.executeUpdate(capture(capturedTezViewUpdate))).andReturn(1).once();
 
+    Capture<String> capturedPigSmokeTestEntityUpdate = newCapture();
+    expect(dbAccessor.executeUpdate(capture(capturedPigSmokeTestEntityUpdate))).andReturn(1).once();
+
     UpgradeCatalog240 upgradeCatalog240 = createMockBuilder(UpgradeCatalog240.class)
             .addMockedMethod(addNewConfigurationsFromXml)
             .addMockedMethod(updateAlerts)
@@ -692,6 +695,12 @@ public class UpgradeCatalog240Test {
     Assert.assertNotNull(capturedTezViewUpdate.getValue());
     Assert.assertEquals("UPDATE viewinstanceproperty SET name = 'yarn.ats.url' where name = 'yarn.timeline-server.url'",
       capturedTezViewUpdate.getValue());
+
+    Assert.assertNotNull(capturedPigSmokeTestEntityUpdate.getValue());
+    Assert.assertEquals("UPDATE viewentity " +
+        "SET class_name = 'org.apache.ambari.view.pig.persistence.SmokeTestEntity' " +
+        "WHERE class_name = 'org.apache.ambari.view.pig.persistence.DataStoreStorage$SmokeTestEntity'",
+      capturedPigSmokeTestEntityUpdate.getValue());
   }
 
   @Test