From 22ef08154dc89ccce27121578cabfa3b5030220d Mon Sep 17 00:00:00 2001 From: Vishesh Date: Sun, 14 Jul 2024 14:58:36 +0530 Subject: [PATCH 1/2] Switch back to CLOUD_DB after purging usage records (#9367) --- .../com/cloud/usage/dao/UsageDaoImpl.java | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/engine/schema/src/main/java/com/cloud/usage/dao/UsageDaoImpl.java b/engine/schema/src/main/java/com/cloud/usage/dao/UsageDaoImpl.java index 4553ed822b4..038d17a85a3 100644 --- a/engine/schema/src/main/java/com/cloud/usage/dao/UsageDaoImpl.java +++ b/engine/schema/src/main/java/com/cloud/usage/dao/UsageDaoImpl.java @@ -28,6 +28,7 @@ import com.cloud.utils.db.QueryBuilder; import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.Transaction; import com.cloud.utils.db.TransactionCallback; +import com.cloud.utils.db.TransactionCallbackNoReturn; import com.cloud.utils.db.TransactionLegacy; import com.cloud.utils.db.TransactionStatus; import com.cloud.utils.exception.CloudRuntimeException; @@ -469,21 +470,25 @@ public class UsageDaoImpl extends GenericDaoBase implements Usage @Override public void removeOldUsageRecords(int days) { - String sql = DELETE_ALL_BY_INTERVAL; - TransactionLegacy txn = TransactionLegacy.open(TransactionLegacy.USAGE_DB); - PreparedStatement pstmt = null; - try { - txn.start(); - pstmt = txn.prepareAutoCloseStatement(sql); - pstmt.setLong(1, days); - pstmt.executeUpdate(); - txn.commit(); - } catch (Exception ex) { - txn.rollback(); - s_logger.error("error removing old cloud_usage records for interval: " + days); - } finally { - txn.close(); - } + Transaction.execute(TransactionLegacy.USAGE_DB, new TransactionCallbackNoReturn() { + @Override + public void doInTransactionWithoutResult(TransactionStatus status) { + TransactionLegacy txn = TransactionLegacy.currentTxn(); + PreparedStatement pstmt = null; + try { + txn.start(); + pstmt = txn.prepareAutoCloseStatement(DELETE_ALL_BY_INTERVAL); + pstmt.setLong(1, days); + pstmt.executeUpdate(); + txn.commit(); + } catch (Exception ex) { + txn.rollback(); + s_logger.error("error removing old cloud_usage records for interval: " + days); + } finally { + txn.close(); + } + } + }); } public UsageVO persistUsage(final UsageVO usage) { From 877c4d9a64b11ec1a692d5afd1cad9f6d17dab75 Mon Sep 17 00:00:00 2001 From: Suresh Kumar Anaparti Date: Mon, 15 Jul 2024 00:56:23 +0530 Subject: [PATCH 2/2] LibvirtOvsFetchInterfaceCommandWrapperTest fix (test fails in mac) - skip it if no interfaces with eth and wl (#9382) * test fix (fails in mac) - skip it if no interfaces with eth and wl * review comments --- .../LibvirtOvsFetchInterfaceCommandWrapperTest.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtOvsFetchInterfaceCommandWrapperTest.java b/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtOvsFetchInterfaceCommandWrapperTest.java index fbc9c2bcb4b..b0df5519467 100644 --- a/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtOvsFetchInterfaceCommandWrapperTest.java +++ b/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtOvsFetchInterfaceCommandWrapperTest.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.UUID; import org.junit.Assert; +import org.junit.Assume; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Spy; @@ -51,8 +52,7 @@ public class LibvirtOvsFetchInterfaceCommandWrapperTest { while(interfaces.hasMoreElements()) { NetworkInterface networkInterface = interfaces.nextElement(); if (networkInterface.getInetAddresses().hasMoreElements() && - (networkInterface.getName().startsWith("eth") || - networkInterface.getName().startsWith("wl"))) { + networkInterface.getName().matches("^(eth|wl|en).*")) { interfaceName = networkInterface.getName(); Enumeration addresses = networkInterface.getInetAddresses(); while(addresses.hasMoreElements()) { @@ -62,9 +62,13 @@ public class LibvirtOvsFetchInterfaceCommandWrapperTest { break; }; } + if (StringUtils.isNotBlank(interfaceName) && StringUtils.isNotBlank(ipAddress)) { + break; + } } } } catch (SocketException ignored) {} + Assume.assumeTrue(StringUtils.isNotBlank(interfaceName)); Ternary result = null; try { result = wrapper.getInterfaceDetails(interfaceName);