From 534623706d6a252d4cd7a07265cc21c640f86a83 Mon Sep 17 00:00:00 2001 From: alena Date: Mon, 4 Apr 2011 17:50:36 -0700 Subject: [PATCH] bug 9305: set Mode field for domR/CPVM/SSVM nics status 9305: resolved fixed --- .../com/cloud/network/NetworkManagerImpl.java | 6 ++++ .../cloud/network/guru/PublicNetworkGuru.java | 1 - .../cloud/upgrade/dao/Upgrade222to224.java | 31 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index b3dfd7e56bd..c27f314516b 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -953,6 +953,12 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag continue; } + if (requested != null && requested.getMode() == null) { + profile.setMode(requested.getMode()); + } else { + profile.setMode(config.getMode()); + } + NicVO vo = new NicVO(guru.getName(), vm.getId(), config.getId(), vm.getType()); while (deviceIds[deviceId] && deviceId < deviceIds.length) { diff --git a/server/src/com/cloud/network/guru/PublicNetworkGuru.java b/server/src/com/cloud/network/guru/PublicNetworkGuru.java index 0dc57239dc1..e86bf9bf671 100644 --- a/server/src/com/cloud/network/guru/PublicNetworkGuru.java +++ b/server/src/com/cloud/network/guru/PublicNetworkGuru.java @@ -19,7 +19,6 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientVirtualNetworkCapcityException; import com.cloud.network.IPAddressVO; import com.cloud.network.Network; -import com.cloud.network.Network.GuestIpType; import com.cloud.network.Network.State; import com.cloud.network.NetworkManager; import com.cloud.network.NetworkProfile; diff --git a/server/src/com/cloud/upgrade/dao/Upgrade222to224.java b/server/src/com/cloud/upgrade/dao/Upgrade222to224.java index 1424ceb12f2..18cff6b95d6 100644 --- a/server/src/com/cloud/upgrade/dao/Upgrade222to224.java +++ b/server/src/com/cloud/upgrade/dao/Upgrade222to224.java @@ -22,6 +22,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.HashMap; import com.cloud.capacity.Capacity; import com.cloud.utils.exception.CloudRuntimeException; @@ -58,6 +59,7 @@ public class Upgrade222to224 implements DbUpgrade { public void performDataMigration(Connection conn) { updateClusterIdInOpHostCapacity(conn); updateGuestOsType(conn); + updateNicsWithMode(conn); } @Override @@ -144,4 +146,33 @@ public class Upgrade222to224 implements DbUpgrade { } } + + private void updateNicsWithMode(Connection conn) { + try { + HashMap nicNetworkMaps = new HashMap(); + PreparedStatement pstmt = conn.prepareStatement("SELECT id, network_id FROM nics WHERE mode IS NULL"); + ResultSet rs = pstmt.executeQuery(); + if (rs.next()) { + nicNetworkMaps.put(rs.getLong(1), rs.getLong(2)); + } + + for (Long nic : nicNetworkMaps.keySet()) { + pstmt = conn.prepareStatement("SELECT mode FROM networks WHERE id=?"); + pstmt.setLong(1, nicNetworkMaps.get(nic)); + rs = pstmt.executeQuery(); + if (rs.next()) { + String mode = rs.getString(1); + pstmt = conn.prepareStatement("UPDATE nics SET mode=? where id=?"); + pstmt.setString(1, mode); + pstmt.setLong(2, nic); + pstmt.executeUpdate(); + } + } + rs.close(); + pstmt.close(); + + }catch (SQLException e) { + throw new CloudRuntimeException("Unable to update the Mode field for nics as a part of 222 to 224 upgrade", e); + } + } }