From 25512ed773b36a476cbfe21c54cf4b68e92ea035 Mon Sep 17 00:00:00 2001 From: Andra Cismaru Date: Thu, 14 Jul 2016 14:15:56 -0700 Subject: [PATCH] Fix Exceptions in vcenter-plugin in production network outage Closes-Bug: #1555303 Change-Id: I1fff564e50fc580e62e19543371694abc3d25513 --- .../contrail/sandesh/VCenterHttpServer.java | 11 ++- src/net/juniper/contrail/vcenter/MainDB.java | 14 +-- .../juniper/contrail/vcenter/VCenterDB.java | 8 +- .../contrail/vcenter/VCenterEventHandler.java | 12 ++- .../contrail/vcenter/VCenterMonitor.java | 13 ++- .../contrail/vcenter/VCenterNotify.java | 50 ++++------ .../contrail/vcenter/VRouterMonitorTask.java | 6 +- .../contrail/vcenter/VRouterNotifier.java | 4 +- .../contrail/vcenter/VirtualMachineInfo.java | 6 +- src/net/juniper/contrail/vcenter/VncDB.java | 93 +++++++------------ 10 files changed, 92 insertions(+), 125 deletions(-) diff --git a/src/net/juniper/contrail/sandesh/VCenterHttpServer.java b/src/net/juniper/contrail/sandesh/VCenterHttpServer.java index 9f9c501..e6f759e 100644 --- a/src/net/juniper/contrail/sandesh/VCenterHttpServer.java +++ b/src/net/juniper/contrail/sandesh/VCenterHttpServer.java @@ -6,6 +6,7 @@ import org.apache.log4j.Logger; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; +import com.google.common.base.Throwables; @SuppressWarnings("restriction") public class VCenterHttpServer implements HttpService { @@ -14,11 +15,11 @@ public class VCenterHttpServer implements HttpService { private final static String webRoot = "/usr/share/contrail-vcenter-plugin/webs"; private final Logger s_logger = Logger.getLogger(VCenterHttpServer.class); - + public static String getWebRoot() { return webRoot; } - + public VCenterHttpServer(Properties configProps) { String portStr = configProps.getProperty("introspect.port"); @@ -55,8 +56,8 @@ public void run() { server.setExecutor(null); // creates a default executor server.start(); } catch (IOException e) { - s_logger.error(" Cannot start HTTP server on port " + port); - e.printStackTrace(); + s_logger.error(" Cannot start HTTP server on port " + port + " due to exception " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); } if (server == null) { @@ -65,7 +66,7 @@ public void run() { s_logger.info("HTTP server on port " + port + " started."); } } - + @Override public void registerHandler(String path, HttpHandler h) { if (server != null) { diff --git a/src/net/juniper/contrail/vcenter/MainDB.java b/src/net/juniper/contrail/vcenter/MainDB.java index 654e2dd..95627e2 100644 --- a/src/net/juniper/contrail/vcenter/MainDB.java +++ b/src/net/juniper/contrail/vcenter/MainDB.java @@ -128,7 +128,8 @@ void sync(SortedMap oldMap, SortedMap newMap) { oldEntry = oldIter.hasNext()? oldIter.next() : null; } } catch (Exception e) { - //s_logger.error("Cannot sync " + entry1.getKey()); + s_logger.error("Cannot sync old [" + oldEntry.getKey() + ", " + oldEntry.getValue() + "] with new [" + + newEntry.getKey() + ", " + newEntry.getValue() + "]" ); } } @@ -137,7 +138,7 @@ void sync(SortedMap oldMap, SortedMap newMap) { try { oldEntry.getValue().delete(vncDB); } catch (Exception e) { - //s_logger.error("Cannot delete " + entry2.getKey()); + s_logger.error("Cannot delete old [" + oldEntry.getKey() + ", " + oldEntry.getValue() + "]"); } oldEntry = oldIter.hasNext()? oldIter.next() : null; } @@ -147,7 +148,7 @@ void sync(SortedMap oldMap, SortedMap newMap) { try { newEntry.getValue().create(vncDB); } catch (Exception e) { - //s_logger.error("Cannot create VN " + entry1.getKey()); + s_logger.error("Cannot create new [" + newEntry.getKey() + ", " + newEntry.getValue() + "]" ); } newEntry = newIter.hasNext()? newIter.next() : null; } @@ -176,7 +177,8 @@ void update(SortedMap oldMap, SortedMap newMap) { oldEntry = oldIter.hasNext()? oldIter.next() : null; } } catch (Exception e) { - //s_logger.error("Cannot sync " + entry1.getKey()); + s_logger.error("Cannot update old [" + oldEntry.getKey() + ", " + oldEntry.getValue() + "] with new [" + + newEntry.getKey() + ", " + newEntry.getValue() + "]" ); } } @@ -184,7 +186,7 @@ void update(SortedMap oldMap, SortedMap newMap) { try { oldEntry.getValue().delete(vncDB); } catch (Exception e) { - //s_logger.error("Cannot delete " + entry2.getKey()); + s_logger.error("Cannot delete old [" + oldEntry.getKey() + ", " + oldEntry.getValue() + "]"); } oldEntry = oldIter.hasNext()? oldIter.next() : null; } @@ -193,7 +195,7 @@ void update(SortedMap oldMap, SortedMap newMap) { try { newEntry.getValue().create(vncDB); } catch (Exception e) { - //s_logger.error("Cannot create VN " + entry1.getKey()); + s_logger.error("Cannot create new [" + newEntry.getKey() + ", " + newEntry.getValue() + "]" ); } newEntry = newIter.hasNext()? newIter.next() : null; } diff --git a/src/net/juniper/contrail/vcenter/VCenterDB.java b/src/net/juniper/contrail/vcenter/VCenterDB.java index 814b898..0d9ba9c 100644 --- a/src/net/juniper/contrail/vcenter/VCenterDB.java +++ b/src/net/juniper/contrail/vcenter/VCenterDB.java @@ -26,6 +26,8 @@ import com.vmware.vim25.RuntimeFault; import com.vmware.vim25.VirtualMachineToolsRunningStatus; import org.apache.log4j.Logger; + +import com.google.common.base.Throwables; import com.vmware.vim25.DVPortSetting; import com.vmware.vim25.DVPortgroupConfigInfo; import com.vmware.vim25.GuestInfo; @@ -187,7 +189,7 @@ public boolean connect(int timeout) { try{ Thread.sleep(5000); } catch (InterruptedException e) { - e.printStackTrace(); + s_logger.error(Throwables.getStackTraceAsString(e)); return false; } @@ -197,7 +199,7 @@ public boolean connect(int timeout) { try{ Thread.sleep(5000); } catch (InterruptedException e) { - e.printStackTrace(); + s_logger.error(Throwables.getStackTraceAsString(e)); return false; } @@ -236,7 +238,7 @@ private boolean createServiceInstance(int timeout) { } catch (Exception e) { operationalStatus = "Error while connecting to vcenter: " + e.getMessage(); s_logger.error(operationalStatus); - e.printStackTrace(); + s_logger.error(Throwables.getStackTraceAsString(e)); return false; } } diff --git a/src/net/juniper/contrail/vcenter/VCenterEventHandler.java b/src/net/juniper/contrail/vcenter/VCenterEventHandler.java index d070b30..a24ab50 100644 --- a/src/net/juniper/contrail/vcenter/VCenterEventHandler.java +++ b/src/net/juniper/contrail/vcenter/VCenterEventHandler.java @@ -8,6 +8,8 @@ package net.juniper.contrail.vcenter; import org.apache.log4j.Logger; + +import com.google.common.base.Throwables; import com.vmware.vim25.DVPortgroupCreatedEvent; import com.vmware.vim25.DVPortgroupDestroyedEvent; import com.vmware.vim25.DVPortgroupReconfiguredEvent; @@ -87,9 +89,9 @@ private void handleVmUpdateEvent() throws Exception { try { newVmInfo = new VirtualMachineInfo(event, vcenterDB, vncDB); } catch (Exception e) { - e.printStackTrace(); s_logger.info("Skipping update event " + event.getClass().getName() - +" for missing VM"); + +" for missing VM, due to exception " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return; } @@ -119,9 +121,9 @@ private void handleNetworkUpdateEvent() throws Exception { try { newVnInfo = new VirtualNetworkInfo(event, vcenterDB, vncDB); } catch (Exception e) { - e.printStackTrace(); s_logger.info("Skipping update event " + event.getClass().getName() + - " for missing network"); + " for missing network, due to exception " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return; } @@ -147,6 +149,6 @@ private void handleNetworkDeleteEvent() throws Exception { } private void handleEvent(Event event) { - s_logger.error("Need to process "+ event.getClass().getName()); + s_logger.error("Event "+ event.getClass().getName() + " received, but not handled."); } } diff --git a/src/net/juniper/contrail/vcenter/VCenterMonitor.java b/src/net/juniper/contrail/vcenter/VCenterMonitor.java index 858bd3f..329fbc3 100644 --- a/src/net/juniper/contrail/vcenter/VCenterMonitor.java +++ b/src/net/juniper/contrail/vcenter/VCenterMonitor.java @@ -13,6 +13,9 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import org.apache.log4j.Logger; + +import com.google.common.base.Throwables; + import net.juniper.contrail.sandesh.VCenterHttpServices; import net.juniper.contrail.watchdog.TaskWatchDog; import net.juniper.contrail.zklibrary.MasterSelection; @@ -139,11 +142,11 @@ private static Properties readVcenterPluginConfigFile() { } finally { fileStream.close(); } - } catch (IOException ex) { - s_logger.warn("Unable to read " + _configurationFile, ex); - } catch (Exception ex) { - s_logger.error("Exception in readVcenterPluginConfigFile: " + ex); - ex.printStackTrace(); + } catch (IOException e) { + s_logger.error("Unable to read " + _configurationFile, e); + } catch (Exception e) { + s_logger.error("Exception in readVcenterPluginConfigFile: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); } return configProps; diff --git a/src/net/juniper/contrail/vcenter/VCenterNotify.java b/src/net/juniper/contrail/vcenter/VCenterNotify.java index 186345b..4ec1576 100644 --- a/src/net/juniper/contrail/vcenter/VCenterNotify.java +++ b/src/net/juniper/contrail/vcenter/VCenterNotify.java @@ -208,7 +208,8 @@ private static void unwatchManagedObject(ManagedObject mos) pf.destroyPropertyFilter(); } catch (RemoteException e) { - e.printStackTrace(); + s_logger.error("Cannot unwatchManagedObject " + mos + " due to exception " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); } } } @@ -426,10 +427,10 @@ public void start() { watchUpdates.start(); } catch (Exception e) { - System.out.println("Caught Exception : " + " Name : " + s_logger.error("Caught Exception : " + " Name : " + e.getClass().getName() + " Message : " + e.getMessage() + " Trace : "); - e.printStackTrace(); + s_logger.error(Throwables.getStackTraceAsString(e)); } } @@ -450,15 +451,12 @@ private boolean connect2vnc() { s_logger.info("Connecting to the API server ..."); while (vncDB.Initialize() != true) { s_logger.info("Waiting for API server ..."); - Thread.sleep(1000); + Thread.sleep(5000); } s_logger.info("Connected to the API server ..."); } catch (Exception e) { - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error("Error while initializing connection with the API server: " - + e); - s_logger.error(stackTrace); - e.printStackTrace(); + s_logger.error("Error while initializing connection with the API server: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); TaskWatchDog.stopMonitoring(this); return false; } @@ -475,10 +473,8 @@ private void connect2vcenter() { vCenterConnected = true; } } catch (Exception e) { - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error("Error while initializing VCenter connection: " + e); - s_logger.error(stackTrace); - e.printStackTrace(); + s_logger.error("Error while initializing VCenter connection: "); + s_logger.error(Throwables.getStackTraceAsString(e)); } TaskWatchDog.stopMonitoring(this); } @@ -498,7 +494,7 @@ public void run() //check if you are the master from time to time //sometimes things don't go as planned if (VCenterMonitor.isZookeeperLeader() == false) { - s_logger.debug("Lost zookeeper leadership. Restarting myself\n"); + s_logger.warn("Lost zookeeper leadership. Restarting myself\n"); System.exit(0); } @@ -526,10 +522,8 @@ public void run() syncNeeded = false; } catch (Exception e) { vCenterConnected = false; - String stackTrace = Throwables.getStackTraceAsString(e); s_logger.error("Error in sync: " + e); - s_logger.error(stackTrace); - e.printStackTrace(); + s_logger.error(Throwables.getStackTraceAsString(e)); TaskWatchDog.stopMonitoring(this); continue; } @@ -571,17 +565,12 @@ public void run() } } catch (RemoteException e) { vCenterConnected = false; - s_logger.info("Vcenter disconnected, reconnect and resync needed"); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.info(stackTrace); - e.printStackTrace(); - } - catch (Exception e) { + s_logger.info("Vcenter disconnected, reconnect and resync needed: " + e); + s_logger.info(Throwables.getStackTraceAsString(e)); + } catch (Exception e) { vCenterConnected = false; s_logger.error("Error in event handling, reconnect and resync needed"); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); - e.printStackTrace(); + s_logger.error(Throwables.getStackTraceAsString(e)); } } } catch (Exception e) @@ -594,8 +583,7 @@ public void run() s_logger.error("Caught Exception : " + " Name : " + e.getClass().getName() + " Message : " + e.getMessage() + " Trace : "); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); + s_logger.error(Throwables.getStackTraceAsString(e)); } } } @@ -708,7 +696,8 @@ private void watchManagedObjectEvents(ManagedObject mos, String[] events) } } catch(Exception e) { - e.printStackTrace(); + s_logger.error("Cannot watchManagedObjectEvents for " + mos + ", exception " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); throw new RuntimeException(e); } } @@ -730,7 +719,8 @@ private void unwatchManagedObjectEvents(ManagedObject mos) } } catch (RemoteException e) { - e.printStackTrace(); + s_logger.error("Cannot unwatchManagedObjectEvents for " + mos + ", exception " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); } } } diff --git a/src/net/juniper/contrail/vcenter/VRouterMonitorTask.java b/src/net/juniper/contrail/vcenter/VRouterMonitorTask.java index 1bbc1d1..e5144eb 100644 --- a/src/net/juniper/contrail/vcenter/VRouterMonitorTask.java +++ b/src/net/juniper/contrail/vcenter/VRouterMonitorTask.java @@ -18,7 +18,7 @@ public void run() { //check if you are the master from time to time //sometimes things don't go as planned if (VCenterMonitor.isZookeeperLeader() == false) { - s_logger.debug("Lost zookeeper leadership. Restarting myself\n"); + s_logger.warn("Lost zookeeper leadership. Restarting myself\n"); System.exit(0); } @@ -33,10 +33,8 @@ private void checkVroutersConnection() { // run KeepAlive with vRouter Agent. VRouterNotifier.vrouterAgentPeriodicConnectionCheck(); } catch (Exception e) { - String stackTrace = Throwables.getStackTraceAsString(e); s_logger.error("Error while vrouterAgentPeriodicConnectionCheck: " + e); - s_logger.error(stackTrace); - e.printStackTrace(); + s_logger.error(Throwables.getStackTraceAsString(e)); } TaskWatchDog.stopMonitoring(this); diff --git a/src/net/juniper/contrail/vcenter/VRouterNotifier.java b/src/net/juniper/contrail/vcenter/VRouterNotifier.java index 4cb9ba2..d277666 100644 --- a/src/net/juniper/contrail/vcenter/VRouterNotifier.java +++ b/src/net/juniper/contrail/vcenter/VRouterNotifier.java @@ -87,9 +87,7 @@ public static void created(VirtualMachineInterfaceInfo vmiInfo) { } catch(Throwable e) { s_logger.warn("vRouter " + vrouterIpAddress + " Exception in addPort for " + vmiInfo + ": " + e.getMessage()); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); - e.printStackTrace(); + s_logger.error(Throwables.getStackTraceAsString(e)); } } diff --git a/src/net/juniper/contrail/vcenter/VirtualMachineInfo.java b/src/net/juniper/contrail/vcenter/VirtualMachineInfo.java index c855f36..574255d 100644 --- a/src/net/juniper/contrail/vcenter/VirtualMachineInfo.java +++ b/src/net/juniper/contrail/vcenter/VirtualMachineInfo.java @@ -1,6 +1,5 @@ package net.juniper.contrail.vcenter; -import org.apache.log4j.Logger; import com.vmware.vim25.VirtualMachinePowerState; import com.vmware.vim25.VirtualMachineRuntimeInfo; import com.vmware.vim25.VirtualMachineConfigInfo; @@ -43,9 +42,6 @@ public class VirtualMachineInfo extends VCenterObject { //API server objects net.juniper.contrail.api.types.VirtualMachine apiVm; - private final Logger s_logger = - Logger.getLogger(VirtualMachineInfo.class); - public VirtualMachineInfo(String uuid) { if (uuid == null) { throw new IllegalArgumentException("Cannot init VM with null uuid"); @@ -160,7 +156,7 @@ public VirtualMachineInfo(net.juniper.contrail.api.types.VirtualMachine vm) { public VirtualMachineInfo(VCenterDB vcenterDB, com.vmware.vim25.mo.Datacenter dc, String dcName, - com.vmware.vim25.mo.VirtualMachine vm, Hashtable pTable, + com.vmware.vim25.mo.VirtualMachine vm, @SuppressWarnings("rawtypes") Hashtable pTable, com.vmware.vim25.mo.HostSystem host, String vrouterIpAddress) throws Exception { diff --git a/src/net/juniper/contrail/vcenter/VncDB.java b/src/net/juniper/contrail/vcenter/VncDB.java index 595a39b..43b8018 100644 --- a/src/net/juniper/contrail/vcenter/VncDB.java +++ b/src/net/juniper/contrail/vcenter/VncDB.java @@ -152,7 +152,7 @@ public boolean isVncApiServerAlive() { @SuppressWarnings("unchecked") List projects = (List) apiConnector.list(Project.class, null); if (projects == null) { - s_logger.error(" ApiServer not fully awake yet.. retry again.."); + s_logger.info(" ApiServer not fully awake yet.. retry again.."); alive = false; return false; } @@ -184,12 +184,10 @@ public boolean Initialize() { vCenterProject = (Project) apiConnector.findByFQN(Project.class, VNC_ROOT_DOMAIN + ":" + VNC_VCENTER_PROJECT); } catch (Exception e) { - s_logger.error("Exception : " + e); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); + s_logger.error("Exception in find vcenter project: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return false; } - s_logger.info(" fqn-to-uuid complete.."); if (vCenterProject == null) { s_logger.info(" vCenter project not present, creating "); @@ -202,9 +200,8 @@ public boolean Initialize() { return false; } } catch (Exception e) { - s_logger.error("Exception : " + e); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); + s_logger.error("Exception in creating vcenter object: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return false; } } else { @@ -216,9 +213,8 @@ public boolean Initialize() { vCenterIpam = (NetworkIpam) apiConnector.findByFQN(NetworkIpam.class, VNC_ROOT_DOMAIN + ":" + VNC_VCENTER_PROJECT + ":" + VNC_VCENTER_IPAM); } catch (Exception e) { - s_logger.error("Exception : " + e); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); + s_logger.error("Exception in find network Ipam: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return false; } @@ -233,9 +229,8 @@ public boolean Initialize() { s_logger.error("Unable to create Ipam: " + vCenterIpam.getName()); } } catch (Exception e) { - s_logger.error("Exception : " + e); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); + s_logger.error("Exception in network Ipam create: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return false; } } else { @@ -247,9 +242,8 @@ public boolean Initialize() { vCenterDefSecGrp = (SecurityGroup) apiConnector.findByFQN(SecurityGroup.class, VNC_ROOT_DOMAIN + ":" + VNC_VCENTER_PROJECT + ":" + VNC_VCENTER_DEFAULT_SG); } catch (Exception e) { - s_logger.error("Exception : " + e); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); + s_logger.error("Exception in find sec group: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return false; } @@ -358,10 +352,8 @@ public boolean TestInitialize() { s_logger.error("Unable to create test Ipam: " + vCenterIpam.getName()); } } catch (IOException e) { - s_logger.error("Exception : " + e); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); - e.printStackTrace(); + s_logger.error("Exception in vCenterIpam create : " + e ); + s_logger.error(Throwables.getStackTraceAsString(e)); return false; } } else { @@ -373,9 +365,8 @@ public boolean TestInitialize() { vCenterDefSecGrp = (SecurityGroup) apiConnector.findByFQN(SecurityGroup.class, VNC_ROOT_DOMAIN + ":" + VNC_VCENTER_PROJECT + ":" + VNC_VCENTER_DEFAULT_SG); } catch (Exception e) { - s_logger.error("Exception : " + e); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); + s_logger.error("Exception in default sec group find: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return false; } @@ -424,9 +415,8 @@ public boolean TestInitialize() { s_logger.error("Unable to create def sec grp: " + vCenterDefSecGrp.getName()); } } catch (Exception e) { - s_logger.error("Exception : " + e); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); + s_logger.error("Exception in default sec group find: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return false; } } else { @@ -853,17 +843,14 @@ SortedMap readVirtualNetworks() { try { apiObjs = (List) apiConnector.list(VirtualNetwork.class, null); - } catch (Exception ex) { - s_logger.error("Exception in api.list(VirtualNetworks): " + ex); - String stackTrace = Throwables.getStackTraceAsString(ex); - s_logger.error(stackTrace); - ex.printStackTrace(); + } catch (Exception e) { + s_logger.error("Exception in api.list(VirtualNetworks): " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return map; } for (VirtualNetwork vn : apiObjs) { try { - //TODO can we get rid of this call by reading everything with the list? apiConnector.read(vn); // Ignore network ? if (doIgnoreVirtualNetwork(vn.getName())) { @@ -905,9 +892,7 @@ SortedMap readVirtualMachines() { apiConnector.list(VirtualMachine.class, null); } catch (Exception e) { s_logger.error("Exception in api.list(VirtualMachine): " + e); - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); - e.printStackTrace(); + s_logger.error(Throwables.getStackTraceAsString(e)); return map; } @@ -1094,11 +1079,9 @@ public void deleteInstanceIps() try { apiObjs = (List) apiConnector.list(InstanceIp.class, null); - } catch (Exception ex) { - s_logger.error("Exception in api.list: " + ex); - String stackTrace = Throwables.getStackTraceAsString(ex); - s_logger.error(stackTrace); - ex.printStackTrace(); + } catch (Exception e) { + s_logger.error("Exception in api.list: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return ; } @@ -1184,11 +1167,9 @@ public void deleteVirtualMachineInterfaces() try { apiObjs = (List) apiConnector.list(VirtualMachineInterface.class, null); - } catch (Exception ex) { - s_logger.error("Exception in api.list: " + ex); - String stackTrace = Throwables.getStackTraceAsString(ex); - s_logger.error(stackTrace); - ex.printStackTrace(); + } catch (Exception e) { + s_logger.error("Exception in api.list: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return ; } @@ -1262,11 +1243,9 @@ public void deleteVirtualMachines() try { apiObjs = (List) apiConnector.list(VirtualMachine.class, null); - } catch (Exception ex) { - s_logger.error("Exception in api.list: " + ex); - String stackTrace = Throwables.getStackTraceAsString(ex); - s_logger.error(stackTrace); - ex.printStackTrace(); + } catch (Exception e) { + s_logger.error("Exception in api.list: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return ; } @@ -1283,11 +1262,9 @@ public void deleteVirtualNetworks() try { apiObjs = (List) apiConnector.list(VirtualNetwork.class, null); - } catch (Exception ex) { - s_logger.error("Exception in api.list: " + ex); - String stackTrace = Throwables.getStackTraceAsString(ex); - s_logger.error(stackTrace); - ex.printStackTrace(); + } catch (Exception e) { + s_logger.error("Exception in api.list: " + e); + s_logger.error(Throwables.getStackTraceAsString(e)); return ; } @@ -1303,9 +1280,7 @@ public void deleteAll() { deleteVirtualMachines(); deleteVirtualNetworks(); } catch (Exception e) { - String stackTrace = Throwables.getStackTraceAsString(e); - s_logger.error(stackTrace); - e.printStackTrace(); + s_logger.error(Throwables.getStackTraceAsString(e)); } } }