nvazquez commented on a change in pull request #5382:
URL: https://github.com/apache/cloudstack/pull/5382#discussion_r828686620
##########
File path:
engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41520to41600.java
##########
@@ -33,6 +33,9 @@
import org.apache.log4j.Logger;
import com.cloud.utils.exception.CloudRuntimeException;
+import java.math.BigInteger;
+import java.util.UUID;
+
public class Upgrade41520to41600 implements DbUpgrade,
DbUpgradeSystemVmTemplate {
Review comment:
This logic should be moved to `Upgrade41610to41700`
##########
File path:
engine/schema/src/main/java/com/cloud/upgrade/dao/Upgrade41520to41600.java
##########
@@ -75,6 +78,29 @@ public void performDataMigration(Connection conn) {
generateUuidForExistingSshKeyPairs(conn);
populateAnnotationPermissions(conn);
correctGuestOsIdsInHypervisorMapping(conn);
+ fixWrongPoolUuid(conn);
+ }
+
+ public void fixWrongPoolUuid(Connection conn) {
+ LOG.debug("Replacement of faulty pool uuids");
+ try (PreparedStatement pstmt = conn.prepareStatement("SELECT id,uuid
FROM storage_pool "
+ + "WHERE uuid NOT LIKE \"%-%-%-%\" AND removed IS NULL;");
ResultSet rs = pstmt.executeQuery()) {
+ PreparedStatement updateStmt = conn.prepareStatement("update
storage_pool set uuid = ? where id = ?");
+ while (rs.next()) {
+ UUID poolUuid = new UUID(
+ new BigInteger(rs.getString(2).substring(0, 16),
16).longValue(),
+ new BigInteger(rs.getString(2).substring(16),
16).longValue()
+ );
+ updateStmt.setLong(2, rs.getLong(1));
+ updateStmt.setString(1, poolUuid.toString());
+ updateStmt.addBatch();
+ }
+ updateStmt.executeBatch();
Review comment:
Sorry if not correct, but in case the result set is empty wouldn't this
fail since the parameters are not set? Or does this method check the parameters
before executing?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]