diff --git a/build/build-cloud.xml b/build/build-cloud.xml
index 4d52d08bb01..db9e5a7c5af 100755
--- a/build/build-cloud.xml
+++ b/build/build-cloud.xml
@@ -107,10 +107,6 @@
-
-
-
-
@@ -523,8 +519,7 @@
-
-
+
@@ -536,26 +531,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/build/developer.xml b/build/developer.xml
index 33d77a6c85a..77d760b2af7 100755
--- a/build/developer.xml
+++ b/build/developer.xml
@@ -100,7 +100,7 @@
-
+
@@ -114,6 +114,7 @@
+
diff --git a/build/package.xml b/build/package.xml
index fce58ddcd5e..82781c61a2f 100755
--- a/build/package.xml
+++ b/build/package.xml
@@ -94,7 +94,7 @@
-
+
@@ -103,18 +103,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
@@ -135,7 +123,7 @@
-
+
diff --git a/client/tomcatconf/components.xml.in b/client/tomcatconf/components.xml.in
index 91141cff203..ce698854bbe 100755
--- a/client/tomcatconf/components.xml.in
+++ b/client/tomcatconf/components.xml.in
@@ -110,9 +110,7 @@
-
-
-
+
diff --git a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
index cf552dabc4c..d88b50528cd 100644
--- a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
+++ b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java
@@ -152,7 +152,6 @@ import com.cloud.host.Host.Type;
import com.cloud.hypervisor.Hypervisor;
import com.cloud.network.Network.BroadcastDomainType;
import com.cloud.network.Network.TrafficType;
-import com.cloud.hypervisor.xen.resource.XenServerConnectionPool.XenServerConnection;
import com.cloud.resource.ServerResource;
import com.cloud.storage.Storage;
import com.cloud.storage.Storage.ImageFormat;
@@ -1064,7 +1063,29 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
}
protected Answer execute(ModifySshKeysCommand cmd) {
- return new Answer(cmd);
+ String publickey = cmd.getPubKey();
+ String privatekey = cmd.getPrvKey();
+
+ com.trilead.ssh2.Connection sshConnection = new com.trilead.ssh2.Connection(_host.ip, 22);
+ try {
+ sshConnection.connect(null, 60000, 60000);
+ if (!sshConnection.authenticateWithPassword(_username, _password)) {
+ throw new Exception("Unable to authenticate");
+ }
+ SCPClient scp = new SCPClient(sshConnection);
+
+ scp.put(publickey.getBytes(), "id_rsa.pub", "/opt/xensource/bin", "0600");
+ scp.put(privatekey.getBytes(), "id_rsa", "/opt/xensource/bin", "0600");
+ scp.put(privatekey.getBytes(), "id_rsa.cloud", "/root/.ssh", "0600");
+ return new Answer(cmd);
+
+ } catch (Exception e) {
+ String msg = " scp ssh key failed due to " + e.toString() + " - " + e.getMessage();
+ s_logger.warn(msg);
+ } finally {
+ sshConnection.close();
+ }
+ return new Answer(cmd, false, "modifySshkeys failed");
}
private boolean doPingTest(final String computingHostIp) {
@@ -3166,6 +3187,13 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
Ternary mount = mounts.get(0);
+ if (!patchSystemVm(mount.second(), vmName)) { // FIXME make this
+ // nonspecific
+ String msg = "patch system vm failed";
+ s_logger.warn(msg);
+ return msg;
+ }
+
Set templates = VM.getByNameLabel(conn, "CentOS 5.3");
if (templates.size() == 0) {
templates = VM.getByNameLabel(conn, "CentOS 5.3 (64-bit)");
@@ -3204,17 +3232,6 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
vbdr.type = Types.VbdType.DISK;
VBD.create(conn, vbdr);
-
- /* create CD-ROM VBD */
- VBD.Record cdromVBDR = new VBD.Record();
- cdromVBDR.VM = vm;
- cdromVBDR.empty = true;
- cdromVBDR.bootable = false;
- cdromVBDR.userdevice = "3";
- cdromVBDR.mode = Types.VbdMode.RO;
- cdromVBDR.type = Types.VbdType.CD;
- VBD cdromVBD = VBD.create(conn, cdromVBDR);
- cdromVBD.insert(conn, VDI.getByUuid(conn, _host.systemvmisouuid));
/* create VIF0 */
VIF.Record vifr = new VIF.Record();
@@ -3491,6 +3508,8 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
s_logger.debug("Slave logon successful. session= " + slaveSession);
}
Host host = Host.getByUuid(slaveConn, _host.uuid);
+
+
for (int i = 0; i < params.length; i += 2) {
args.put(params[i], params[i + 1]);
}
@@ -3994,38 +4013,7 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
try {
Host myself = Host.getByUuid(conn, _host.uuid);
_host.pool = getPoolUuid();
-
- boolean findsystemvmiso = false;
- Set srs = SR.getByNameLabel(conn, "XenServer Tools");
- if( srs.size() != 1 ) {
- throw new CloudRuntimeException("There are " + srs.size() + " SRs with name XenServer Tools");
- }
- SR sr = srs.iterator().next();
- sr.scan(conn);
- SR.Record srr = sr.getRecord(conn);
- _host.systemvmisouuid = null;
- for( VDI vdi : srr.VDIs ) {
- VDI.Record vdir = vdi.getRecord(conn);
- if(vdir.nameLabel.contains("systemvm-premium")){
- _host.systemvmisouuid = vdir.uuid;
- break;
- }
- }
- if( _host.systemvmisouuid == null ) {
- for( VDI vdi : srr.VDIs ) {
- VDI.Record vdir = vdi.getRecord(conn);
- if(vdir.nameLabel.contains("systemvm")){
- _host.systemvmisouuid = vdir.uuid;
- break;
- }
- }
- }
-
- if( _host.systemvmisouuid == null ) {
- throw new CloudRuntimeException("can not find systemvmiso");
- }
-
String name = "cloud-private";
if (_privateNetworkName != null) {
name = _privateNetworkName;
@@ -4356,13 +4344,17 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
scp.put(f, d, p);
}
-
} catch (IOException e) {
throw new CloudRuntimeException("Unable to setup the server correctly", e);
} finally {
sshConnection.close();
}
+ try {
+ // wait 2 seconds before call plugin
+ Thread.sleep(2000);
+ } catch (final InterruptedException ex) {
+ }
if (!setIptables()) {
s_logger.warn("set xenserver Iptable failed");
}
@@ -6647,7 +6639,6 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
// the resource first connects to XenServer. These UUIDs do
// not change over time.
protected class XenServerHost {
- public String systemvmisouuid;
public String uuid;
public String ip;
public String publicNetwork;
diff --git a/patches/xenserver/etc/sysconfig/iptables-domr b/patches/xenserver/etc/sysconfig/iptables-domr
deleted file mode 100644
index 3bc7b50f74a..00000000000
--- a/patches/xenserver/etc/sysconfig/iptables-domr
+++ /dev/null
@@ -1,24 +0,0 @@
-*nat
-:PREROUTING ACCEPT [0:0]
-:POSTROUTING ACCEPT [0:0]
-:OUTPUT ACCEPT [0:0]
-COMMIT
-*filter
-:INPUT DROP [0:0]
-:FORWARD DROP [0:0]
-:OUTPUT ACCEPT [0:0]
--A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
--A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
--A INPUT -i eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
--A INPUT -p icmp -j ACCEPT
--A INPUT -i lo -j ACCEPT
--A INPUT -i eth0 -p udp -m udp --dport 67 -j ACCEPT
--A INPUT -i eth0 -p udp -m udp --dport 53 -j ACCEPT
--A INPUT -i eth1 -p tcp -m state --state NEW --dport 3922 -j ACCEPT
--A INPUT -i eth0 -p tcp -m state --state NEW --dport 8080 -j ACCEPT
--A INPUT -i eth0 -p tcp -m state --state NEW --dport 80 -j ACCEPT
--A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
--A FORWARD -i eth0 -o eth2 -j ACCEPT
--A FORWARD -i eth2 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-COMMIT
-
diff --git a/patches/xenserver/root/.ssh/authorized_keys b/patches/xenserver/root/.ssh/authorized_keys
deleted file mode 100644
index 2cb275c2582..00000000000
--- a/patches/xenserver/root/.ssh/authorized_keys
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3VD1tGRDn3stlJvPNXmQZdQCNjqcfY+xlitd5q0n3KYqJ5OBrty3/00XBUdLt31TbQ4dv+GR7uEr+ex7rm0jjmTFKV4rHYPi882CuC5+bkBp5R4k+mpcyKbxb+IoNS9ItbiExQxMiiRQpHvNem0GGnNFO3lElRPwUFs8evTvZu5HcTj4k4RJLJ66jeIGJ3sMAJ03SICGwfEZjrsyeOMwJk7cH8WNeuNzxzoZd9v02eI0lHdK9O5z7FwrxvRBbzsmJ0EwuhbH8pR7WR6kGLTNP9KEwtrnzV1LYWd+rFoSeh6ImExG7fma3Ldydg8CPTQsjvCEQUxiuV1/x5am5VJlUw== root@r-6-TEST
diff --git a/patches/xenserver/root/patchsystemvm.sh b/patches/xenserver/root/patchsystemvm.sh
deleted file mode 100755
index f878ea11aa8..00000000000
--- a/patches/xenserver/root/patchsystemvm.sh
+++ /dev/null
@@ -1,121 +0,0 @@
-#/bin/bash
-# $Id: patchsystemvm.sh 10800 2010-07-16 13:48:39Z edison $ $HeadURL: svn://svn.lab.vmops.com/repos/branches/2.1.x/java/scripts/vm/hypervisor/xenserver/prepsystemvm.sh $
-
-#set -x
-logfile="/var/log/patchsystemvm.log"
-#
-# To use existing console proxy .zip-based package file
-#
-patch_console_proxy() {
- local patchfile=$1
- rm /usr/local/cloud/systemvm -rf
- mkdir -p /usr/local/cloud/systemvm
- echo "All" | unzip $patchfile -d /usr/local/cloud/systemvm >$logfile 2>&1
- find /usr/local/cloud/systemvm/ -name \*.sh | xargs chmod 555
- return 0
-}
-
-consoleproxy_svcs() {
- chkconfig cloud on
- chkconfig postinit on
- chkconfig domr_webserver off
- chkconfig haproxy off ;
- chkconfig dnsmasq off
- chkconfig sshd on
- chkconfig httpd off
- chkconfig nfs off
- chkconfig nfslock off
- chkconfig rpcbind off
- chkconfig rpcidmap off
- cp /etc/sysconfig/iptables-consoleproxy /etc/sysconfig/iptables
- mkdir -p /var/log/cloud
-}
-
-secstorage_svcs() {
- chkconfig cloud on
- chkconfig postinit on
- chkconfig domr_webserver off
- chkconfig haproxy off ;
- chkconfig dnsmasq off
- chkconfig sshd on
- chkconfig httpd off
- cp /etc/sysconfig/iptables-secstorage /etc/sysconfig/iptables
- mkdir -p /var/log/cloud
-}
-
-routing_svcs() {
- chkconfig cloud off
- chkconfig domr_webserver on ;
- chkconfig haproxy on ;
- chkconfig dnsmasq on
- chkconfig sshd on
- chkconfig nfs off
- chkconfig nfslock off
- chkconfig rpcbind off
- chkconfig rpcidmap off
- cp /etc/sysconfig/iptables-domr /etc/sysconfig/iptables
-}
-
-CMDLINE=$(cat /proc/cmdline)
-TYPE="router"
-
-for i in $CMDLINE
- do
- # search for foo=bar pattern and cut out foo
- KEY=$(echo $i | cut -d= -f1)
- VALUE=$(echo $i | cut -d= -f2)
- case $KEY in
- type)
- TYPE=$VALUE
- ;;
- *)
- ;;
- esac
-done
-
-if [ "$TYPE" == "consoleproxy" ] || [ "$TYPE" == "secstorage" ] && [ -f /media/cdrom/systemvm.zip ]
-then
- patch_console_proxy /media/cdrom/systemvm.zip
- if [ $? -gt 0 ]
- then
- printf "Failed to apply patch systemvm\n" >$logfile
- exit 5
- fi
-fi
-
-
-#empty known hosts
-echo "" > /root/.ssh/known_hosts
-
-if [ "$TYPE" == "router" ]
-then
- routing_svcs
- if [ $? -gt 0 ]
- then
- printf "Failed to execute routing_svcs\n" >$logfile
- exit 6
- fi
-fi
-
-
-if [ "$TYPE" == "consoleproxy" ]
-then
- consoleproxy_svcs
- if [ $? -gt 0 ]
- then
- printf "Failed to execute consoleproxy_svcs\n" >$logfile
- exit 7
- fi
-fi
-
-if [ "$TYPE" == "secstorage" ]
-then
- secstorage_svcs
- if [ $? -gt 0 ]
- then
- printf "Failed to execute secstorage_svcs\n" >$logfile
- exit 8
- fi
-fi
-
-exit $?
diff --git a/scripts/vm/hypervisor/xenserver/id_rsa.cloud b/scripts/vm/hypervisor/xenserver/id_rsa.cloud
deleted file mode 100644
index ea46a3cebb6..00000000000
--- a/scripts/vm/hypervisor/xenserver/id_rsa.cloud
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEogIBAAKCAQEA3VD1tGRDn3stlJvPNXmQZdQCNjqcfY+xlitd5q0n3KYqJ5OB
-rty3/00XBUdLt31TbQ4dv+GR7uEr+ex7rm0jjmTFKV4rHYPi882CuC5+bkBp5R4k
-+mpcyKbxb+IoNS9ItbiExQxMiiRQpHvNem0GGnNFO3lElRPwUFs8evTvZu5HcTj4
-k4RJLJ66jeIGJ3sMAJ03SICGwfEZjrsyeOMwJk7cH8WNeuNzxzoZd9v02eI0lHdK
-9O5z7FwrxvRBbzsmJ0EwuhbH8pR7WR6kGLTNP9KEwtrnzV1LYWd+rFoSeh6ImExG
-7fma3Ldydg8CPTQsjvCEQUxiuV1/x5am5VJlUwIBIwKCAQEA0KtrUk/n/MSYsLAp
-xLRyNB+qUGMl1Xjao4f5cxhKJ8/emlfgrC8xI+mZXL+QiG7ZoVZz0ixzprcMNMkG
-5kmlLnxE3dxxy18Xz+2nIq9+hTVrKHuB82uZT3jVAxcP96GcU5C3snlPeu8KNK8+
-FFgqU3P/cpbo5FSgwMsNI3k5fkyffYtmBdtjZhWXJqnA9+bMdCmYEKyQFWp18LvV
-pjGx1jLFZTx9+aDz7gdIk21zbVXmwQmnS1fVKJEByTMvokpvdJUvDedvpgqGqX/g
-IXkTXe49pYhYwxVguLK6FXyQBwOuUsnur2A79T3wBvzEMozkYLkEG/zcw0fyo3iC
-fdzc6wKBgQD2gq+kUc2r/+xE+smIej2ICvFZZlSh1ko2tVmVUHuuuMCuBt054Dq9
-mf8/yIbXSvVtuBMJ+jewVnKfhucEQKf6E1jBdQShezlomFLOQ8cFQJhT6tAwJl/k
-TR+OjeTuOcBknkE8nstNt7hAkZxY6h/Lu54OM9AkXyZ9skx7gHh+IwKBgQDl1f09
-YkoM9rqXM8lMKjF0z81T4ACCaFUA6ZKjSZelyG+azJDlRFNWX1In3Kq6aInpZPzs
-owwIS9tjkXIaLR1wDJ+K8IGJQ19sqCzv3/kBCDXA6mqXkkPR80xRi4wuZ3lETOdL
-OBXPffuQaKxk32esqsxK6As1LgH4+048JS23EQKBgQCpCSf7pc7cV7f0yTm8q5fo
-QgSVEvg0da87dQo6gFTPlKFhY8rl25X+WvgrvLQ726D6x12DLzwhJVXpu5cY2+Dl
-/qNC0+XrEqsF5MsRGIh4oVKCr6SzTYOVPDLlaJz7IElpkRbKe4QYCPNfecpLmTpf
-0Rvse0zlvZa8l4Tm+QIqmwKBgBOzQZeMFPnMAV1q1r1is8gvEZl5maTHHTqXrXu1
-2cxhoyqGkBOmxVCL09eH8WBvXEc0irUyjAC2C32QH7kZz1K/QOAF/Hl6zao6TP6e
-K0k7N861AdJ6QFPTBoqlj6w0wUBeXPfRm3gvXrSbQfoEhTqvjdqI6wSO6jnpp57B
-W7CbAoGABFHMVXEyT3SliMSRtiCuDOrtl9E/aiOByPulXolqth5WDSel31Lz+iY7
-ldOLNQO/oononTStdd0fDGChl3WXBSOToJJ/HjIWH05bDY9n2EDAyZvmaW9rX3JQ
-pH9c/1vlD9lxDEBvq4JXmTtdL0Ho00F5vVHnWnwINtfx6c5BIjg=
------END RSA PRIVATE KEY-----
diff --git a/scripts/vm/hypervisor/xenserver/xenserver56/patch b/scripts/vm/hypervisor/xenserver/xenserver56/patch
index 14b4039c5a2..15b8908ddb5 100644
--- a/scripts/vm/hypervisor/xenserver/xenserver56/patch
+++ b/scripts/vm/hypervisor/xenserver/xenserver56/patch
@@ -18,12 +18,9 @@ nfs.py=/opt/xensource/sm
patch.tgz=..,0775,/opt/xensource/bin
vmops=..,0755,/etc/xapi.d/plugins
vmopsSnapshot=..,0755,/etc/xapi.d/plugins
-xs_cleanup.sh=..,0755,/opt/xensource/bin
-systemvm-premium.iso=../../../../../vms,0644,/opt/xensource/packages/iso
-systemvm.iso=../../../../../vms,0644,/opt/xensource/packages/iso
+systemvm-premium.zip=../../../../../vms,0755,/opt/xensource/bin
hostvmstats.py=..,0755,/opt/xensource/sm
-id_rsa.cloud=..,0600,/opt/xensource/bin
-id_rsa.cloud=..,0600,/root/.ssh
+xs_cleanup.sh=..,0755,/opt/xensource/bin
network_info.sh=..,0755,/opt/xensource/bin
prepsystemvm.sh=..,0755,/opt/xensource/bin
setupxenserver.sh=..,0755,/opt/xensource/bin
diff --git a/server/src/com/cloud/alert/AlertManagerImpl.java b/server/src/com/cloud/alert/AlertManagerImpl.java
index 033b1ba3282..378bc5dc699 100644
--- a/server/src/com/cloud/alert/AlertManagerImpl.java
+++ b/server/src/com/cloud/alert/AlertManagerImpl.java
@@ -153,8 +153,7 @@ public class AlertManagerImpl implements AlertManager {
smtpDebug = Boolean.parseBoolean(smtpDebugStr);
}
- _emailAlert = new EmailAlert(emailAddresses, smtpHost, smtpPort, useAuth, smtpUsername, smtpPassword, emailSender, smtpDebug);
- _emailAlert = null;
+ _emailAlert = new EmailAlert(emailAddresses, smtpHost, smtpPort, useAuth, smtpUsername, smtpPassword, emailSender, smtpDebug);
String storageCapacityThreshold = configs.get("storage.capacity.threshold");
String cpuCapacityThreshold = configs.get("cpu.capacity.threshold");
diff --git a/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java b/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
index e7dc2a20fbb..049d9a70923 100644
--- a/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
+++ b/server/src/com/cloud/hypervisor/xen/discoverer/XcpServerDiscoverer.java
@@ -52,7 +52,6 @@ import com.cloud.host.Status;
import com.cloud.host.dao.HostDao;
import com.cloud.hypervisor.xen.resource.CitrixResourceBase;
import com.cloud.hypervisor.xen.resource.XcpServerResource;
-import com.cloud.hypervisor.xen.resource.XenServerResource;
import com.cloud.hypervisor.xen.resource.XenServerConnectionPool;
import com.cloud.resource.Discoverer;
import com.cloud.resource.DiscovererBase;
@@ -383,10 +382,10 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L
if(prodBrand.equals("XenCloudPlatform") && prodVersion.equals("0.1.1"))
return new XcpServerResource();
- if(prodBrand.equals("XenServer") && prodVersion.equals("5.6.0"))
- return new XenServerResource();
+// if(prodBrand.equals("XenServer") && prodVersion.equals("5.6.0"))
+// return new XenServerResource();
- String msg = "Only support XCP 0.1.1 and XenServer 5.6.0, but this one is " + prodBrand + " " + prodVersion;
+ String msg = "Only support XCP 0.1.1 and Xerver 5.6.0, but this one is " + prodBrand + " " + prodVersion;
_alertMgr.sendAlert(AlertManager.ALERT_TYPE_HOST, dcId, podId, msg, msg);
s_logger.debug(msg);
throw new RuntimeException(msg);