cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From anthon...@apache.org
Subject git commit: updated refs/heads/master to 4cb3e55
Date Tue, 22 Apr 2014 18:44:00 GMT
Repository: cloudstack
Updated Branches:
  refs/heads/master 1bb31412f -> 4cb3e553d


enable XS event for XS 6.2 + SP1 + FOX


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4cb3e553
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4cb3e553
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4cb3e553

Branch: refs/heads/master
Commit: 4cb3e553d5b48e9ee7d6267562084ac1cdd528c8
Parents: 1bb3141
Author: Anthony Xu <anthony.xu@citrix.com>
Authored: Tue Apr 22 11:43:01 2014 -0700
Committer: Anthony Xu <anthony.xu@citrix.com>
Committed: Tue Apr 22 11:43:43 2014 -0700

----------------------------------------------------------------------
 .../xen/resource/CitrixResourceBase.java        | 26 +++++++++-----------
 .../xenserver/XenServerResourceNewBase.java     | 20 +++++++++++----
 2 files changed, 26 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4cb3e553/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
index 6226b2e..ba8be91 100644
--- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
+++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
@@ -214,6 +214,7 @@ import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
+import java.util.concurrent.TimeoutException;
 
 import javax.ejb.Local;
 import javax.naming.ConfigurationException;
@@ -664,16 +665,11 @@ public abstract class CitrixResourceBase implements ServerResource,
HypervisorRe
                     + " with args " + getArgsString(args)
                     + " due to HandleInvalid clazz:" + e.clazz + ", handle:"
                     + e.handle);
-        } catch (XenAPIException e) {
+        } catch (Exception e) {
             s_logger.warn(
                     "callHostPlugin failed for cmd: " + cmd + " with args "
                             + getArgsString(args) + " due to " + e.toString(),
                             e);
-        } catch (XmlRpcException e) {
-            s_logger.warn(
-                    "callHostPlugin failed for cmd: " + cmd + " with args "
-                            + getArgsString(args) + " due to " + e.getMessage(),
-                            e);
         } finally {
             if (task != null) {
                 try {
@@ -3310,7 +3306,7 @@ public abstract class CitrixResourceBase implements ServerResource,
HypervisorRe
         return false;
     }
 
-    protected void waitForTask(Connection c, Task task, long pollInterval, long timeout)
throws XenAPIException, XmlRpcException {
+    protected void waitForTask(Connection c, Task task, long pollInterval, long timeout)
throws XenAPIException, XmlRpcException, TimeoutException {
         long beginTime = System.currentTimeMillis();
         if (s_logger.isTraceEnabled()) {
             s_logger.trace("Task " + task.getNameLabel(c) + " (" + task.getUuid(c) + ") sent
to " + c.getSessionReference() + " is pending completion with a " + timeout +
@@ -3329,7 +3325,7 @@ public abstract class CitrixResourceBase implements ServerResource,
HypervisorRe
                 s_logger.warn(msg);
                 task.cancel(c);
                 task.destroy(c);
-                throw new Types.BadAsyncResult(msg);
+                throw new TimeoutException(msg);
             }
         }
     }
@@ -3349,7 +3345,7 @@ public abstract class CitrixResourceBase implements ServerResource,
HypervisorRe
         }
     }
 
-    void rebootVM(Connection conn, VM vm, String vmName) throws XmlRpcException {
+    void rebootVM(Connection conn, VM vm, String vmName) throws Exception {
         Task task = null;
         try {
             task = vm.cleanRebootAsync(conn);
@@ -3405,7 +3401,7 @@ public abstract class CitrixResourceBase implements ServerResource,
HypervisorRe
                 //poll every 1 seconds , timeout after 10 minutes
                 waitForTask(conn, task, 1000, 10 * 60 * 1000);
                 checkForSuccess(conn, task);
-            } catch (Types.HandleInvalid e) {
+            } catch (TimeoutException e) {
                 if (vm.getPowerState(conn) == Types.VmPowerState.HALTED) {
                     task = null;
                     return;
@@ -3450,7 +3446,7 @@ public abstract class CitrixResourceBase implements ServerResource,
HypervisorRe
         }
     }
 
-    void startVM(Connection conn, Host host, VM vm, String vmName) throws XmlRpcException
{
+    void startVM(Connection conn, Host host, VM vm, String vmName) throws Exception {
         Task task = null;
         try {
             task = vm.startOnAsync(conn, host, false, true);
@@ -3465,7 +3461,7 @@ public abstract class CitrixResourceBase implements ServerResource,
HypervisorRe
                     return;
                 }
                 throw new CloudRuntimeException("Start VM " + vmName + " catch HandleInvalid
and VM is not in RUNNING state");
-            } catch (Types.BadAsyncResult e) {
+            } catch (TimeoutException e) {
                 if (vm.getPowerState(conn) == Types.VmPowerState.RUNNING) {
                     s_logger.debug("VM " + vmName + " is in Running status");
                     task = null;
@@ -3488,7 +3484,7 @@ public abstract class CitrixResourceBase implements ServerResource,
HypervisorRe
         }
     }
 
-    private void migrateVM(Connection conn, Host destHost, VM vm, String vmName) throws XmlRpcException
{
+    private void migrateVM(Connection conn, Host destHost, VM vm, String vmName) throws Exception
{
         Task task = null;
         try {
             Map<String, String> other = new HashMap<String, String>();
@@ -3521,7 +3517,7 @@ public abstract class CitrixResourceBase implements ServerResource,
HypervisorRe
         }
     }
 
-    protected VDI cloudVDIcopy(Connection conn, VDI vdi, SR sr, int wait) throws XenAPIException,
XmlRpcException {
+    protected VDI cloudVDIcopy(Connection conn, VDI vdi, SR sr, int wait) throws Exception
{
         Task task = null;
         if (wait == 0) {
             wait = 2 * 60 * 60;
@@ -3570,7 +3566,7 @@ public abstract class CitrixResourceBase implements ServerResource,
HypervisorRe
                     e.handle);
         } catch (XenAPIException e) {
             s_logger.warn("callHostPlugin failed for cmd: " + cmd + " with args " + getArgsString(args)
+ " due to " + e.toString(), e);
-        } catch (XmlRpcException e) {
+        } catch (Exception e) {
             s_logger.warn("callHostPlugin failed for cmd: " + cmd + " with args " + getArgsString(args)
+ " due to " + e.getMessage(), e);
         } finally {
             if (task != null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4cb3e553/plugins/hypervisors/xen/src/org/apache/cloudstack/hypervisor/xenserver/XenServerResourceNewBase.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xen/src/org/apache/cloudstack/hypervisor/xenserver/XenServerResourceNewBase.java
b/plugins/hypervisors/xen/src/org/apache/cloudstack/hypervisor/xenserver/XenServerResourceNewBase.java
index c67fb33..1883371 100644
--- a/plugins/hypervisors/xen/src/org/apache/cloudstack/hypervisor/xenserver/XenServerResourceNewBase.java
+++ b/plugins/hypervisors/xen/src/org/apache/cloudstack/hypervisor/xenserver/XenServerResourceNewBase.java
@@ -99,14 +99,14 @@ public class XenServerResourceNewBase extends XenServer620SP1Resource
{
         return cmds;
     }
 
-    protected void waitForTask2(Connection c, Task task, long pollInterval, long timeout)
throws XenAPIException, XmlRpcException, TimeoutException {
+    protected void waitForTask(Connection c, Task task, long pollInterval, long timeout)
throws XenAPIException, XmlRpcException, TimeoutException {
         long beginTime = System.currentTimeMillis();
         if (s_logger.isTraceEnabled()) {
             s_logger.trace("Task " + task.getNameLabel(c) + " (" + task.getType(c) + ") sent
to " + c.getSessionReference() + " is pending completion with a " + timeout +
                            "ms timeout");
         }
         Set<String> classes = new HashSet<String>();
-        classes.add("Task/" + task.toString());
+        classes.add("Task/" + task.toWireString());
         String token = "";
         Double t = new Double(timeout / 1000);
         while (true) {
@@ -115,7 +115,7 @@ public class XenServerResourceNewBase extends XenServer620SP1Resource
{
             @SuppressWarnings("unchecked")
             Set<Event.Record> events = map.events;
             if (events.size() == 0) {
-                String msg = "Async " + timeout / 1000 + " seconds timeout for task " + task.toString();
+                String msg = "No event for task " + task.toWireString();
                 s_logger.warn(msg);
                 task.cancel(c);
                 throw new TimeoutException(msg);
@@ -132,16 +132,26 @@ public class XenServerResourceNewBase extends XenServer620SP1Resource
{
 
                 if (taskRecord.status != Types.TaskStatusType.PENDING) {
                     if (s_logger.isDebugEnabled()) {
-                        s_logger.debug("Task is done " + taskRecord.status);
+                        s_logger.debug("Task, ref:" + task.toWireString() + ", UUID:" + taskRecord.uuid
+ " is done " + taskRecord.status);
                     }
                     return;
                 } else {
-                    s_logger.debug("Task is not done " + taskRecord);
+                    if (s_logger.isDebugEnabled()) {
+                        s_logger.debug("Task: ref:" + task.toWireString() + ", UUID:" + taskRecord.uuid
+  " progress: " + taskRecord.progress);
+                    }
+
                 }
             }
+            if (System.currentTimeMillis() - beginTime > timeout) {
+                String msg = "Async " + timeout / 1000 + " seconds timeout for task " + task.toString();
+                s_logger.warn(msg);
+                task.cancel(c);
+                throw new TimeoutException(msg);
+            }
         }
     }
 
+
     @Override
     protected Answer execute(final ClusterSyncCommand cmd) {
         if (!_listener.isListening()) {


Mime
View raw message