You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by hu...@apache.org on 2013/07/01 13:49:03 UTC
[1/3] git commit: updated refs/heads/4.1.1-sbp to 45b691a
Updated Branches:
refs/heads/4.1.1-sbp [created] 45b691a6c
CLOUDSTACK-2601 : xen.heartbeat.interval doesn't change the parameter passed to xenheartbeat.sh. Made changes to read the parameter from config and to pass it to the resource.
Signed-off-by: Devdeep Singh <de...@gmail.com>
Conflicts:
plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
server/src/com/cloud/resource/DiscovererBase.java
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8f709813
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8f709813
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8f709813
Branch: refs/heads/4.1.1-sbp
Commit: 8f709813615e77d082653cae58e0085c12a28895
Parents: c1bdaf4
Author: Devdeep Singh <de...@gmail.com>
Authored: Tue May 21 13:32:09 2013 +0530
Committer: Hugo Trippaers <ht...@schubergphilis.com>
Committed: Mon Jul 1 10:45:45 2013 +0200
----------------------------------------------------------------------
.../com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java | 1 +
server/src/com/cloud/resource/DiscovererBase.java | 1 +
2 files changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8f709813/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
index 9417d57..e9d118b 100755
--- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
+++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
@@ -314,6 +314,7 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L
params.put("wait", Integer.toString(_wait));
details.put("wait", Integer.toString(_wait));
params.put("migratewait", _configDao.getValue(Config.MigrateWait.toString()));
+ params.put(Config.XenHeartBeatInterval.toString().toLowerCase(), _configDao.getValue(Config.XenHeartBeatInterval.toString()));
params.put(Config.InstanceName.toString().toLowerCase(), _instance);
details.put(Config.InstanceName.toString().toLowerCase(), _instance);
try {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8f709813/server/src/com/cloud/resource/DiscovererBase.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/DiscovererBase.java b/server/src/com/cloud/resource/DiscovererBase.java
index 940608c..8a586f4 100644
--- a/server/src/com/cloud/resource/DiscovererBase.java
+++ b/server/src/com/cloud/resource/DiscovererBase.java
@@ -128,6 +128,7 @@ public abstract class DiscovererBase extends AdapterBase implements Discoverer {
params.put("secondary.storage.vm", "false");
params.put("max.template.iso.size", _configDao.getValue(Config.MaxTemplateAndIsoSize.toString()));
params.put("migratewait", _configDao.getValue(Config.MigrateWait.toString()));
+ params.put(Config.XenHeartBeatInterval.toString().toLowerCase(), _configDao.getValue(Config.XenHeartBeatInterval.toString()));
return params;
}
[2/3] git commit: updated refs/heads/4.1.1-sbp to 45b691a
Posted by hu...@apache.org.
Improve tracelogging and exception handling in CitrixResourceBase.
Custom fix for SBP
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5702b9b6
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5702b9b6
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5702b9b6
Branch: refs/heads/4.1.1-sbp
Commit: 5702b9b6fd85c43d148e57a2a0fcbc552728d93a
Parents: 8f70981
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Mon Jul 1 13:47:38 2013 +0200
Committer: Hugo Trippaers <ht...@schubergphilis.com>
Committed: Mon Jul 1 13:47:38 2013 +0200
----------------------------------------------------------------------
.../xen/resource/CitrixResourceBase.java | 162 +++++++++++++------
1 file changed, 110 insertions(+), 52 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5702b9b6/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 2a0b6d2..f0ca691 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
@@ -680,8 +680,12 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
_host.vswitchNetwork = vswitchNw;
}
return _host.vswitchNetwork;
- } catch (Exception e) {
- e.printStackTrace();
+ } catch (BadServerResponse e) {
+ s_logger.error("Failure in setupvSwitchNetwork", e);
+ } catch (XenAPIException e) {
+ s_logger.error("Failure in setupvSwitchNetwork", e);
+ } catch (XmlRpcException e) {
+ s_logger.error("Failure in setupvSwitchNetwork", e);
}
return null;
@@ -2493,14 +2497,11 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
try {
host_uuid = host.getUuid(conn);
} catch (BadServerResponse e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ s_logger.error("Failure when calling getUuid on host", e);
} catch (XenAPIException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ s_logger.error("Failure when calling getUuid on host", e);
} catch (XmlRpcException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ s_logger.error("Failure when calling getUuid on host", e);
}
vmStates.put(record.nameLabel, new Pair<String, State>(host_uuid, state));
}
@@ -2585,7 +2586,13 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
s_logger.debug("4. The VM " + vm.getName() + " is in Migrating state");
return new PrepareForMigrationAnswer(cmd);
- } catch (Exception e) {
+ } catch (BadServerResponse e) {
+ s_logger.warn("Catch Exception " + e.getClass().getName() + " prepare for migration failed due to " + e.toString(), e);
+ return new PrepareForMigrationAnswer(cmd, e);
+ } catch (XenAPIException e) {
+ s_logger.warn("Catch Exception " + e.getClass().getName() + " prepare for migration failed due to " + e.toString(), e);
+ return new PrepareForMigrationAnswer(cmd, e);
+ } catch (XmlRpcException e) {
s_logger.warn("Catch Exception " + e.getClass().getName() + " prepare for migration failed due to " + e.toString(), e);
return new PrepareForMigrationAnswer(cmd, e);
}
@@ -2677,9 +2684,11 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
try {
vdi.destroy(conn);
} catch (Exception e) {
+ s_logger.warn("Ignoring exception in vdi.detroy", e);
}
}
} catch (Exception e){
+ s_logger.warn("Ignoring exception in vdi.detroy", e);
}
}
@@ -2738,14 +2747,27 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
poolsr.scan(conn);
try{
Thread.sleep(5000);
- } catch (Exception e) {
+ } catch (InterruptedException e) {
}
return new PrimaryStorageDownloadAnswer(snapshotvdi.getUuid(conn), phySize);
- } catch (Exception e) {
+ } catch (BadServerResponse e) {
String msg = "Catch Exception " + e.getClass().getName() + " on host:" + _host.uuid + " for template: "
- + tmplturl + " due to " + e.toString();
+ + tmplturl;
s_logger.warn(msg, e);
return new PrimaryStorageDownloadAnswer(msg);
+ } catch (XenAPIException e) {
+ String msg = "Catch Exception " + e.getClass().getName() + " on host:" + _host.uuid + " for template: "
+ + tmplturl;
+ s_logger.warn(msg, e);
+ return new PrimaryStorageDownloadAnswer(msg);
+ } catch (XmlRpcException e) {
+ String msg = "Catch Exception " + e.getClass().getName() + " on host:" + _host.uuid + " for template: "
+ + tmplturl;
+ s_logger.warn(msg, e);
+ return new PrimaryStorageDownloadAnswer(msg);
+ } catch (URISyntaxException e1) {
+ s_logger.error("Failed to parse template uri: " + tmplturl, e1);
+ return new PrimaryStorageDownloadAnswer("Failed to parse template uri : " + e1.getMessage());
}
}
@@ -2882,7 +2904,15 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
state = State.Stopping;
}
return new MigrateAnswer(cmd, true, "migration succeeded", null);
- } catch (Exception e) {
+ } catch (BadServerResponse e) {
+ String msg = "Catch Exception " + e.getClass().getName() + ": Migration failed due to " + e.toString();
+ s_logger.warn(msg, e);
+ return new MigrateAnswer(cmd, false, msg, null);
+ } catch (XenAPIException e) {
+ String msg = "Catch Exception " + e.getClass().getName() + ": Migration failed due to " + e.toString();
+ s_logger.warn(msg, e);
+ return new MigrateAnswer(cmd, false, msg, null);
+ } catch (XmlRpcException e) {
String msg = "Catch Exception " + e.getClass().getName() + ": Migration failed due to " + e.toString();
s_logger.warn(msg, e);
return new MigrateAnswer(cmd, false, msg, null);
@@ -2957,7 +2987,12 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
for ( VM vm : vms ) {
destroyPatchVbd(conn, vm.getNameLabel(conn));
}
- } catch (Exception e) {
+ } catch (BadServerResponse e) {
+ s_logger.warn("Ignoring exception during execution of ReadyCommand", e);
+ } catch (XenAPIException e) {
+ s_logger.warn("Ignoring exception during execution of ReadyCommand", e);
+ } catch (XmlRpcException e) {
+ s_logger.warn("Ignoring exception during execution of ReadyCommand", e);
}
try {
boolean result = cleanupHaltedVms(conn);
@@ -3057,11 +3092,11 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
try {
vms = VM.getByNameLabel(conn, cmd.getVmName());
} catch (XenAPIException e0) {
- s_logger.debug("getByNameLabel failed " + e0.toString());
+ s_logger.error("getByNameLabel failed " + e0.toString(), e0);
return new RebootAnswer(cmd, "getByNameLabel failed " + e0.toString(), false);
- } catch (Exception e0) {
- s_logger.debug("getByNameLabel failed " + e0.getMessage());
- return new RebootAnswer(cmd, "getByNameLabel failed", false);
+ } catch (XmlRpcException e) {
+ s_logger.error("getByNameLabel failed " + e.toString(), e);
+ return new RebootAnswer(cmd, "getByNameLabel failed " + e.toString(), false);
}
for (VM vm : vms) {
try {
@@ -3153,8 +3188,16 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
private void waitForTask(Connection c, Task task, long pollInterval, long timeout) throws XenAPIException, XmlRpcException {
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 + "ms timeout");
+ }
while (task.getStatus(c) == Types.TaskStatusType.PENDING) {
try {
+ if (s_logger.isTraceEnabled()) {
+ s_logger.trace("Task " + task.getNameLabel(c) + " (" + task.getUuid(c) + ") is pending, sleeping for "
+ + pollInterval + "ms");
+ }
Thread.sleep(pollInterval);
} catch (InterruptedException e) {
}
@@ -3169,6 +3212,9 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
private void checkForSuccess(Connection c, Task task) throws XenAPIException, XmlRpcException {
if (task.getStatus(c) == Types.TaskStatusType.SUCCESS) {
+ if (s_logger.isTraceEnabled()) {
+ s_logger.trace("Task " + task.getNameLabel(c) + " (" + task.getUuid(c) + ") completed");
+ }
return;
} else {
String msg = "Task failed! Task record: " + task.getRecord(c);
@@ -3178,6 +3224,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
}
}
+
void rebootVM(Connection conn, VM vm, String vmName) throws XmlRpcException {
Task task = null;
try {
@@ -5214,39 +5261,37 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
} else {
return new Answer(cmd, false, result);
}
- } catch (Exception e) {
- e.printStackTrace();
+ } catch (BadServerResponse e) {
+ s_logger.error("Failure during execution of OvsDeleteFlowCommand", e);
+ } catch (XenAPIException e) {
+ s_logger.error("Failure during execution of OvsDeleteFlowCommand", e);
+ } catch (XmlRpcException e) {
+ s_logger.error("Failure during execution of OvsDeleteFlowCommand", e);
}
return new Answer(cmd, false, "failed to delete flow for " + cmd.getVmName());
}
private List<Pair<String, Long>> ovsFullSyncStates() {
Connection conn = getConnection();
- try {
- String result = callHostPlugin(conn, "ovsgre", "ovs_get_vm_log", "host_uuid", _host.uuid);
- String [] logs = result != null ?result.split(";"): new String [0];
- List<Pair<String, Long>> states = new ArrayList<Pair<String, Long>>();
- for (String log: logs){
- String [] info = log.split(",");
- if (info.length != 5) {
- s_logger.warn("Wrong element number in ovs log(" + log +")");
- continue;
- }
-
- //','.join([bridge, vmName, vmId, seqno, tag])
- try {
- states.add(new Pair<String,Long>(info[0], Long.parseLong(info[3])));
- } catch (NumberFormatException nfe) {
- states.add(new Pair<String,Long>(info[0], -1L));
- }
+ String result = callHostPlugin(conn, "ovsgre", "ovs_get_vm_log", "host_uuid", _host.uuid);
+ String [] logs = result != null ?result.split(";"): new String [0];
+ List<Pair<String, Long>> states = new ArrayList<Pair<String, Long>>();
+ for (String log: logs){
+ String [] info = log.split(",");
+ if (info.length != 5) {
+ s_logger.warn("Wrong element number in ovs log(" + log +")");
+ continue;
}
- return states;
- } catch (Exception e) {
- e.printStackTrace();
+ //','.join([bridge, vmName, vmId, seqno, tag])
+ try {
+ states.add(new Pair<String,Long>(info[0], Long.parseLong(info[3])));
+ } catch (NumberFormatException nfe) {
+ states.add(new Pair<String,Long>(info[0], -1L));
+ }
}
- return null;
+ return states;
}
private OvsSetTagAndFlowAnswer execute(OvsSetTagAndFlowCommand cmd) {
@@ -5271,8 +5316,12 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
} else {
return new OvsSetTagAndFlowAnswer(cmd, false, result);
}
- } catch (Exception e) {
- e.printStackTrace();
+ } catch (BadServerResponse e) {
+ s_logger.error("Failure during execution of OvsSetTagAndFlowCommand", e);
+ } catch (XenAPIException e) {
+ s_logger.error("Failure during execution of OvsSetTagAndFlowCommand", e);
+ } catch (XmlRpcException e) {
+ s_logger.error("Failure during execution of OvsSetTagAndFlowCommand", e);
}
return new OvsSetTagAndFlowAnswer(cmd, false, "EXCEPTION");
@@ -5292,11 +5341,17 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
s_logger.debug("PIF object:" + pifRec.uuid + "(" + pifRec.device + ")");
return new OvsFetchInterfaceAnswer(cmd, true, "Interface " + pifRec.device + " retrieved successfully",
pifRec.IP, pifRec.netmask, pifRec.MAC);
- } catch (Exception e) {
- e.printStackTrace();
+ } catch (BadServerResponse e) {
+ s_logger.error("An error occurred while fetching the interface for " +
+ label + " on host " + _host.ip, e);
+ return new OvsFetchInterfaceAnswer(cmd, false, "EXCEPTION:" + e.getMessage());
+ } catch (XenAPIException e) {
s_logger.error("An error occurred while fetching the interface for " +
- label + " on host " + _host.ip + ":" + e.toString() +
- "(" + e.getClass() + ")");
+ label + " on host " + _host.ip, e);
+ return new OvsFetchInterfaceAnswer(cmd, false, "EXCEPTION:" + e.getMessage());
+ } catch (XmlRpcException e) {
+ s_logger.error("An error occurred while fetching the interface for " +
+ label + " on host " + _host.ip, e);
return new OvsFetchInterfaceAnswer(cmd, false, "EXCEPTION:" + e.getMessage());
}
}
@@ -5321,12 +5376,15 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
} else {
return new OvsCreateGreTunnelAnswer(cmd, true, result, _host.ip, bridge, Integer.parseInt(res[1]));
}
- } catch (Exception e) {
- e.printStackTrace();
+ } catch (BadServerResponse e) {
s_logger.error("An error occurred while creating a GRE tunnel to " +
- cmd.getRemoteIp() + " on host " + _host.ip + ":" + e.getMessage() +
- "(" + e.getClass() + ")");
-
+ cmd.getRemoteIp() + " on host " + _host.ip, e);
+ } catch (XenAPIException e) {
+ s_logger.error("An error occurred while creating a GRE tunnel to " +
+ cmd.getRemoteIp() + " on host " + _host.ip, e);
+ } catch (XmlRpcException e) {
+ s_logger.error("An error occurred while creating a GRE tunnel to " +
+ cmd.getRemoteIp() + " on host " + _host.ip, e);
}
return new OvsCreateGreTunnelAnswer(cmd, false, "EXCEPTION", _host.ip, bridge);
[3/3] git commit: updated refs/heads/4.1.1-sbp to 45b691a
Posted by hu...@apache.org.
CLOUDSTACK-2804 getEthByIp function in vpc_func.sh can return the wrong
network interface
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/45b691a6
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/45b691a6
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/45b691a6
Branch: refs/heads/4.1.1-sbp
Commit: 45b691a6c14716dfeb761ebb1364325d4dba5318
Parents: 5702b9b
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Mon Jun 3 10:52:41 2013 +0200
Committer: Hugo Trippaers <ht...@schubergphilis.com>
Committed: Mon Jul 1 13:48:38 2013 +0200
----------------------------------------------------------------------
patches/systemvm/debian/config/opt/cloud/bin/vpc_func.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/45b691a6/patches/systemvm/debian/config/opt/cloud/bin/vpc_func.sh
----------------------------------------------------------------------
diff --git a/patches/systemvm/debian/config/opt/cloud/bin/vpc_func.sh b/patches/systemvm/debian/config/opt/cloud/bin/vpc_func.sh
index 17cb078..2f88351 100755
--- a/patches/systemvm/debian/config/opt/cloud/bin/vpc_func.sh
+++ b/patches/systemvm/debian/config/opt/cloud/bin/vpc_func.sh
@@ -22,7 +22,7 @@ getEthByIp (){
local ip=$1
for dev in `ls -1 /sys/class/net | grep eth`
do
- sudo ip addr show dev $dev | grep $ip > /dev/null
+ sudo ip addr show dev $dev | grep $ip\/ > /dev/null
if [ $? -eq 0 ]
then
echo $dev