diff --git a/core/src/com/cloud/storage/dao/StoragePoolDao.java b/core/src/com/cloud/storage/dao/StoragePoolDao.java index 104f282d1f2..85b5b33b40e 100644 --- a/core/src/com/cloud/storage/dao/StoragePoolDao.java +++ b/core/src/com/cloud/storage/dao/StoragePoolDao.java @@ -101,5 +101,7 @@ public interface StoragePoolDao extends GenericDao { List searchForStoragePoolDetails(long poolId, String value); long countBy(long podId, Status... statuses); + + List findIfDuplicatePoolsExistByUUID(String uuid); } diff --git a/core/src/com/cloud/storage/dao/StoragePoolDaoImpl.java b/core/src/com/cloud/storage/dao/StoragePoolDaoImpl.java index 700dfccccab..456019f6874 100644 --- a/core/src/com/cloud/storage/dao/StoragePoolDaoImpl.java +++ b/core/src/com/cloud/storage/dao/StoragePoolDaoImpl.java @@ -61,6 +61,7 @@ public class StoragePoolDaoImpl extends GenericDaoBase imp protected final SearchBuilder DeleteLvmSearch; protected final GenericSearchBuilder MaintenanceCountSearch; + protected final StoragePoolDetailsDao _detailsDao; private final String DetailsSqlPrefix = "SELECT storage_pool.* from storage_pool LEFT JOIN storage_pool_details ON storage_pool.id = storage_pool_details.pool_id WHERE storage_pool.data_center_id = ? and (storage_pool.pod_id = ? or storage_pool.pod_id is null) and ("; @@ -144,6 +145,13 @@ public class StoragePoolDaoImpl extends GenericDaoBase imp return findOneBy(sc); } + @Override + public List findIfDuplicatePoolsExistByUUID(String uuid) { + SearchCriteria sc = UUIDSearch.create(); + sc.setParameters("uuid", uuid); + return listActiveBy(sc); + } + @Override public List listByDataCenterId(long datacenterId) { diff --git a/debian/cloud-agent-scripts.install b/debian/cloud-agent-scripts.install index e825669bf7b..eb0c1589ee0 100644 --- a/debian/cloud-agent-scripts.install +++ b/debian/cloud-agent-scripts.install @@ -12,7 +12,6 @@ /usr/lib/cloud/agent/scripts/vm/hypervisor/xenserver/id_rsa.cloud /usr/lib/cloud/agent/scripts/vm/hypervisor/xenserver/make_migratable.sh /usr/lib/cloud/agent/scripts/vm/hypervisor/xenserver/network_info.sh -/usr/lib/cloud/agent/scripts/vm/hypervisor/xenserver/networkUsage.sh /usr/lib/cloud/agent/scripts/vm/hypervisor/xenserver/setup_iscsi.sh /usr/lib/cloud/agent/scripts/vm/hypervisor/xenserver/setupxenserver.sh /usr/lib/cloud/agent/scripts/vm/hypervisor/xenserver/vmops diff --git a/patches/systemvm/etc/init.d/seteth1 b/patches/systemvm/etc/init.d/seteth1 index 0081e664930..32a0ad704f4 100755 --- a/patches/systemvm/etc/init.d/seteth1 +++ b/patches/systemvm/etc/init.d/seteth1 @@ -123,6 +123,7 @@ setup_dhcpsrvr() { echo "$ETH0_IP $NAME" >> /etc/hosts [ -f /etc/httpd/conf/httpd.conf ] && sed -i -e "s/^Listen.*$/Listen $ETH0_IP:80/" /etc/httpd/conf/httpd.conf [ -f /etc/httpd/conf.d/ssl.conf ] && mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak + [ -f /etc/ssh/sshd_config ] && sed -i -e "s/^[#]*ListenAddress.*$/ListenAddress $ETH1_IP/" /etc/ssh/sshd_config } setup_secstorage() { diff --git a/scripts/network/domr/call_firewall.sh b/scripts/network/domr/call_firewall.sh index 8878ec833ba..287efa21f5d 100755 --- a/scripts/network/domr/call_firewall.sh +++ b/scripts/network/domr/call_firewall.sh @@ -85,7 +85,7 @@ do esac done -CERT="$(dirname $0)/id_rsa" +cert="/root/.ssh/id_rsa.cloud" # Check if DomR is up and running. If not, exit with error code 1. check_gw "$domRIp" @@ -114,7 +114,7 @@ then exit 2 fi -ssh -p 3922 -q -o StrictHostKeyChecking=no -i $CERT root@$domRIp "/root/firewall.sh $*" +ssh -p 3922 -q -o StrictHostKeyChecking=no -i $cert root@$domRIp "/root/firewall.sh $*" exit $? diff --git a/scripts/network/domr/call_loadbalancer.sh b/scripts/network/domr/call_loadbalancer.sh index fd9a8c02700..fed3abe3d80 100755 --- a/scripts/network/domr/call_loadbalancer.sh +++ b/scripts/network/domr/call_loadbalancer.sh @@ -26,7 +26,7 @@ copy_haproxy() { local domRIp=$1 local cfg=$2 - scp -P 3922 -q -o StrictHostKeyChecking=no -i $CERT $cfg root@$domRIp:/etc/haproxy/haproxy.cfg.new + scp -P 3922 -q -o StrictHostKeyChecking=no -i $cert $cfg root@$domRIp:/etc/haproxy/haproxy.cfg.new return $? } @@ -56,7 +56,7 @@ do esac done -CERT="$(dirname $0)/id_rsa" +cert="/root/.ssh/id_rsa.cloud" if [ "$iflag$fflag" != "11" ] then @@ -79,5 +79,5 @@ then exit 1 fi -ssh -p 3922 -q -o StrictHostKeyChecking=no -i $CERT root@$domRIp "/root/loadbalancer.sh $*" +ssh -p 3922 -q -o StrictHostKeyChecking=no -i $cert root@$domRIp "/root/loadbalancer.sh $*" exit $? diff --git a/scripts/network/domr/vm_data.sh b/scripts/network/domr/vm_data.sh index 78fc7f92c50..32b27bbdad9 100755 --- a/scripts/network/domr/vm_data.sh +++ b/scripts/network/domr/vm_data.sh @@ -10,7 +10,7 @@ usage() { } set -x -CERT="/root/.ssh/id_rsa.cloud" +cert="/root/.ssh/id_rsa.cloud" PORT=3922 create_htaccess() { @@ -24,7 +24,7 @@ create_htaccess() { entry="RewriteRule ^$file$ ../$folder/%{REMOTE_ADDR}/$file [L,NC,QSA]" htaccessFolder="/var/www/html/latest" htaccessFile=$htaccessFolder/.htaccess - ssh -p $PORT -o StrictHostKeyChecking=no -i $CERT root@$domrIp "mkdir -p $htaccessFolder; touch $htaccessFile; grep -F \"$entry\" $htaccessFile; if [ \$? -gt 0 ]; then echo -e \"$entry\" >> $htaccessFile; fi" >/dev/null + ssh -p $PORT -o StrictHostKeyChecking=no -i $cert root@$domrIp "mkdir -p $htaccessFolder; touch $htaccessFile; grep -F \"$entry\" $htaccessFile; if [ \$? -gt 0 ]; then echo -e \"$entry\" >> $htaccessFile; fi" >/dev/null result=$? if [ $result -eq 0 ] @@ -32,7 +32,7 @@ create_htaccess() { entry="Options -Indexes\\nOrder Deny,Allow\\nDeny from all\\nAllow from $vmIp" htaccessFolder="/var/www/html/$folder/$vmIp" htaccessFile=$htaccessFolder/.htaccess - ssh -p $PORT -o StrictHostKeyChecking=no -i $CERT root@$domrIp "mkdir -p $htaccessFolder; echo -e \"$entry\" > $htaccessFile" >/dev/null + ssh -p $PORT -o StrictHostKeyChecking=no -i $cert root@$domrIp "mkdir -p $htaccessFolder; echo -e \"$entry\" > $htaccessFile" >/dev/null result=$? fi @@ -47,7 +47,7 @@ copy_vm_data_file() { local dataFile=$5 chmod +r $dataFile - scp -P $PORT -o StrictHostKeyChecking=no -i $CERT $dataFile root@$domrIp:/var/www/html/$folder/$vmIp/$file >/dev/null + scp -P $PORT -o StrictHostKeyChecking=no -i $cert $dataFile root@$domrIp:/var/www/html/$folder/$vmIp/$file >/dev/null return $? } @@ -58,7 +58,7 @@ delete_vm_data_file() { local file=$4 vmDataFilePath="/var/www/html/$folder/$vmIp/$file" - ssh -p $PORT -o StrictHostKeyChecking=no -i $CERT root@$domrIp "if [ -f $vmDataFilePath ]; then rm -rf $vmDataFilePath; fi" >/dev/null + ssh -p $PORT -o StrictHostKeyChecking=no -i $cert root@$domrIp "if [ -f $vmDataFilePath ]; then rm -rf $vmDataFilePath; fi" >/dev/null return $? } diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index 0b7ff4b675e..64391ce5cf8 100644 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -1379,6 +1379,14 @@ public class StorageManagerImpl implements StorageManager { } long poolId = _storagePoolDao.getNextInSequence(Long.class, "id"); String uuid = UUID.nameUUIDFromBytes(new String(storageHost + hostPath).getBytes()).toString(); + + List spHandles = _storagePoolDao.findIfDuplicatePoolsExistByUUID(uuid); + if(spHandles!=null && spHandles.size()>0) + { + s_logger.debug("Another active pool with the same uuid already exists"); + throw new ResourceInUseException("Another active pool with the same uuid already exists"); + } + s_logger.debug("In createPool Setting poolId - " +poolId+ " uuid - " +uuid+ " zoneId - " +zoneId+ " podId - " +podId+ " poolName - " +poolName); pool.setId(poolId); pool.setUuid(uuid); diff --git a/setup/db/create-schema.sql b/setup/db/create-schema.sql index 183fbab2026..f2e6f8c6ed7 100755 --- a/setup/db/create-schema.sql +++ b/setup/db/create-schema.sql @@ -907,7 +907,7 @@ CREATE TABLE `cloud`.`load_balancer` ( CREATE TABLE `cloud`.`storage_pool` ( `id` bigint unsigned UNIQUE NOT NULL, `name` varchar(255) COMMENT 'should be NOT NULL', - `uuid` varchar(255) UNIQUE NOT NULL, + `uuid` varchar(255) NOT NULL, `pool_type` varchar(32) NOT NULL, `port` int unsigned NOT NULL, `data_center_id` bigint unsigned NOT NULL, diff --git a/ui/new/index.jsp b/ui/new/index.jsp index 98d89948978..d5a6b4bd034 100644 --- a/ui/new/index.jsp +++ b/ui/new/index.jsp @@ -1,3 +1,9 @@ +<%@ page import="java.util.Date" %> + +<% +long milliseconds = new Date().getTime(); +%> + @@ -24,23 +30,23 @@ - + - + - + - + - + - + - + - + - + Cloud.com CloudStack @@ -338,18 +344,14 @@
-
-
-
+
Routers
Routers
-
-
-
+
Storage
System @@ -430,14 +432,14 @@
-
+
Network
IP Addresses
-
+
Network
Network Groups diff --git a/ui/new/jsp/tab_account.jsp b/ui/new/jsp/account.jsp similarity index 100% rename from ui/new/jsp/tab_account.jsp rename to ui/new/jsp/account.jsp diff --git a/ui/new/jsp/tab_alert.jsp b/ui/new/jsp/alert.jsp similarity index 100% rename from ui/new/jsp/tab_alert.jsp rename to ui/new/jsp/alert.jsp diff --git a/ui/new/jsp/tab_event.jsp b/ui/new/jsp/event.jsp similarity index 100% rename from ui/new/jsp/tab_event.jsp rename to ui/new/jsp/event.jsp diff --git a/ui/new/jsp/tab_instance.jsp b/ui/new/jsp/instance.jsp similarity index 93% rename from ui/new/jsp/tab_instance.jsp rename to ui/new/jsp/instance.jsp index 6f2e8bd021d..fd67c4f2f10 100644 --- a/ui/new/jsp/tab_instance.jsp +++ b/ui/new/jsp/instance.jsp @@ -23,15 +23,16 @@

-
+
<%=t.t("Details")%>
-
+
<%=t.t("Volume")%>
-
+
<%=t.t("Statistics")%>
- -