You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ch...@apache.org on 2013/04/17 02:36:52 UTC
[1/4] git commit: updated refs/heads/4.1 to 2c019cc
Updated Branches:
refs/heads/4.1 04f8965c2 -> 2c019cc64
CLOUDSTACK-2051 Allow KVM HA Monitor to verify that a NfsStoragePool is
valid before running the script that mounts it and touches the HA files.
Signed-off-by: Marcus Sorensen <ma...@betterservers.com> 1366135635 -0600
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d1d00d54
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d1d00d54
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d1d00d54
Branch: refs/heads/4.1
Commit: d1d00d54a13fa41bf7447bea7cf0294e2b0d8eb1
Parents: 04f8965
Author: Marcus Sorensen <ma...@betterservers.com>
Authored: Tue Apr 16 12:07:15 2013 -0600
Committer: Chip Childers <ch...@gmail.com>
Committed: Wed Apr 17 01:28:17 2013 +0100
----------------------------------------------------------------------
.../hypervisor/kvm/resource/KVMHAMonitor.java | 51 ++++++++++++++-
1 files changed, 50 insertions(+), 1 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d1d00d54/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java
index c4e121b..d1470d6 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/KVMHAMonitor.java
@@ -23,6 +23,15 @@ import java.util.concurrent.ConcurrentHashMap;
import org.apache.log4j.Logger;
import com.cloud.utils.script.Script;
+import org.libvirt.Connect;
+import org.libvirt.LibvirtException;
+import org.libvirt.Secret;
+import org.libvirt.StoragePool;
+import org.libvirt.StoragePoolInfo;
+import org.libvirt.StoragePoolInfo.StoragePoolState;
+
+import com.cloud.hypervisor.kvm.resource.LibvirtConnection;
+
public class KVMHAMonitor extends KVMHABase implements Runnable {
private static final Logger s_logger = Logger.getLogger(KVMHAMonitor.class);
private Map<String, NfsStoragePool> _storagePool = new ConcurrentHashMap<String, NfsStoragePool>();
@@ -45,6 +54,9 @@ public class KVMHAMonitor extends KVMHABase implements Runnable {
public void removeStoragePool(String uuid) {
synchronized (_storagePool) {
+ NfsStoragePool pool = this._storagePool.get(uuid);
+ Script.runSimpleBashScript("umount " + pool._mountDestPath);
+ s_logger.debug("attempted to umount '" + pool._mountDestPath + "'");
this._storagePool.remove(uuid);
}
}
@@ -60,7 +72,44 @@ public class KVMHAMonitor extends KVMHABase implements Runnable {
@Override
public void run() {
synchronized (_storagePool) {
- for (NfsStoragePool primaryStoragePool : _storagePool.values()) {
+ for (String uuid : _storagePool.keySet()) {
+ NfsStoragePool primaryStoragePool = _storagePool.get(uuid);
+
+ // check for any that have been deregistered with libvirt and
+ // skip,remove them
+
+ StoragePool storage = null;
+ try {
+ Connect conn = LibvirtConnection.getConnection();
+ storage = conn.storagePoolLookupByUUIDString(uuid);
+ if (storage == null) {
+ s_logger.debug("Libvirt storage pool " + uuid
+ +" not found, removing from HA list");
+ removeStoragePool(uuid);
+ continue;
+
+ } else if (storage.getInfo().state != StoragePoolState.VIR_STORAGE_POOL_RUNNING) {
+ s_logger.debug("Libvirt storage pool " + uuid
+ +" found, but not running, removing from HA list");
+
+ removeStoragePool(uuid);
+ continue;
+ }
+ s_logger.debug("Found NFS storage pool " + uuid + " in libvirt, continuing");
+
+ } catch (LibvirtException e) {
+ s_logger.debug("Failed to lookup libvirt storage pool " + uuid
+ + " due to: " + e );
+
+ // we only want to remove pool if it's not found, not if libvirt
+ // connection fails
+ if (e.toString().contains("pool not found")) {
+ s_logger.debug("removing pool from HA monitor since it was deleted");
+ removeStoragePool(uuid);
+ continue;
+ }
+ }
+
String result = null;
for (int i = 0; i < 5; i++) {
Script cmd = new Script(_heartBeatPath,
[2/4] git commit: updated refs/heads/4.1 to 2c019cc
Posted by ch...@apache.org.
CLOUDSTACK-2048 Add NiciraNvp as provider for the Connectivity service
Will be replaced by commit 836ce6c1 in later versions
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/84f63c9d
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/84f63c9d
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/84f63c9d
Branch: refs/heads/4.1
Commit: 84f63c9dc8ef2a097412d80117a224532a7b60f6
Parents: d1d00d5
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Tue Apr 16 17:22:42 2013 +0200
Committer: Chip Childers <ch...@gmail.com>
Committed: Wed Apr 17 01:30:21 2013 +0100
----------------------------------------------------------------------
.../src/com/cloud/network/vpc/VpcManagerImpl.java | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/84f63c9d/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
index a09ddee..e42d1e9 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -260,7 +260,10 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager{
Map<Network.Service, Set<Network.Provider>> svcProviderMap = new HashMap<Network.Service, Set<Network.Provider>>();
Set<Network.Provider> defaultProviders = new HashSet<Network.Provider>();
defaultProviders.add(Provider.VPCVirtualRouter);
-
+ // Just here for 4.1, replaced by commit 836ce6c1 in newer versions
+ Set<Network.Provider> sdnProviders = new HashSet<Network.Provider>();
+ sdnProviders.add(Provider.NiciraNvp);
+
boolean sourceNatSvc = false;
boolean firewallSvs = false;
// populate the services first
@@ -271,7 +274,13 @@ public class VpcManagerImpl extends ManagerBase implements VpcManager{
throw new InvalidParameterValueException("Service " + serviceName + " is not supported in VPC");
}
- svcProviderMap.put(service, defaultProviders);
+ if (service == Service.Connectivity) {
+ s_logger.debug("Applying Connectivity workaround, setting provider to NiciraNvp" );
+ svcProviderMap.put(service, sdnProviders);
+ }
+ else {
+ svcProviderMap.put(service, defaultProviders);
+ }
if (service == Service.NetworkACL) {
firewallSvs = true;
}
[3/4] git commit: updated refs/heads/4.1 to 2c019cc
Posted by ch...@apache.org.
Fix a problem where usage server did not start because of a missing db.properties and log4j-cloud.xml
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/1e74c8ae
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/1e74c8ae
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/1e74c8ae
Branch: refs/heads/4.1
Commit: 1e74c8ae6f6e6ecfde04ea6d0c1acc5648964c3c
Parents: 84f63c9
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Mon Apr 15 15:00:47 2013 +0200
Committer: Chip Childers <ch...@gmail.com>
Committed: Wed Apr 17 01:30:55 2013 +0100
----------------------------------------------------------------------
packaging/centos63/cloud.spec | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/1e74c8ae/packaging/centos63/cloud.spec
----------------------------------------------------------------------
diff --git a/packaging/centos63/cloud.spec b/packaging/centos63/cloud.spec
index 10bf6a3..b2f4788 100644
--- a/packaging/centos63/cloud.spec
+++ b/packaging/centos63/cloud.spec
@@ -277,6 +277,8 @@ cp plugins/hypervisors/kvm/target/dependencies/* ${RPM_BUILD_ROOT}%{_datadir}/%
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/lib
install -D usage/target/cloud-usage-%{_maventag}.jar ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/cloud-usage-%{_maventag}.jar
+install -D usage/target/transformed/db.properties ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage/db.properties
+install -D usage/target/transformed/log4j-cloud_usage.xml ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/usage/log4j-cloud.xml
cp usage/target/dependencies/* ${RPM_BUILD_ROOT}%{_datadir}/%{name}-usage/lib/
install -D packaging/centos63/cloud-usage.rc ${RPM_BUILD_ROOT}/%{_sysconfdir}/init.d/%{name}-usage
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/log/%{name}/usage/
@@ -437,6 +439,20 @@ if [ -f "%{_sysconfdir}/cloud.rpmsave/agent/agent.properties" ]; then
mv %{_sysconfdir}/cloud.rpmsave/agent/agent.properties %{_sysconfdir}/cloud.rpmsave/agent/agent.properties.rpmsave
fi
+%post usage
+if [ -f "%{_sysconfdir}/%{name}/management/db.properties" ]; then
+ echo Replacing db.properties with management server db.properties
+ rm -f %{_sysconfdir}/%{name}/usage/db.properties
+ ln -s %{_sysconfdir}/%{name}/management/db.properties %{_sysconfdir}/%{name}/usage/db.properties
+fi
+
+if [ -f "%{_sysconfdir}/%{name}/management/log4j-cloud.xml" ]; then
+ echo Replacing log4j-cloud.xml with management server log4j-cloud.xml
+ rm -f %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
+ ln -s %{_sysconfdir}/%{name}/management/log4j-cloud.xml %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
+fi
+
+
#%post awsapi
#if [ -d "%{_datadir}/%{name}-management" ] ; then
# ln -s %{_datadir}/%{name}-bridge/webapps %{_datadir}/%{name}-management/webapps7080
@@ -532,7 +548,8 @@ fi
%attr(0644,root,root) %{_datadir}/%{name}-usage/*.jar
%attr(0644,root,root) %{_datadir}/%{name}-usage/lib/*.jar
%dir /var/log/%{name}/usage
-%dir %{_sysconfdir}/%{name}/usage
+%attr(0644,root,root) %{_sysconfdir}/%{name}/usage/db.properties
+%attr(0644,root,root) %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
%{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
%{_defaultdocdir}/%{name}-usage-%{version}/NOTICE
[4/4] git commit: updated refs/heads/4.1 to 2c019cc
Posted by ch...@apache.org.
CLOUDSTACK-2033 Fix usage server startup and logging
Properly implement the Daemon interface
Initialize logging when the usage server is started as a daemon
Fix a few minor startup and packaging items.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/2c019cc6
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/2c019cc6
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/2c019cc6
Branch: refs/heads/4.1
Commit: 2c019cc645434b585f850e3caf580c4a257a8c12
Parents: 1e74c8a
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Tue Apr 16 10:52:17 2013 +0200
Committer: Chip Childers <ch...@gmail.com>
Committed: Wed Apr 17 01:31:07 2013 +0100
----------------------------------------------------------------------
build/replace.properties | 1 +
packaging/centos63/cloud-usage.rc | 2 +-
packaging/centos63/cloud.spec | 9 +--------
packaging/centos63/replace.properties | 2 +-
usage/pom.xml | 5 +++++
usage/src/com/cloud/usage/UsageServer.java | 16 ++++++++++++----
6 files changed, 21 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2c019cc6/build/replace.properties
----------------------------------------------------------------------
diff --git a/build/replace.properties b/build/replace.properties
index c9a93c2..265f335 100644
--- a/build/replace.properties
+++ b/build/replace.properties
@@ -27,3 +27,4 @@ MSMNTDIR=/mnt
COMPONENTS-SPEC=components.xml
AWSAPILOG=awsapi.log
REMOTEHOST=localhost
+COMMONLIBDIR=C:\Users\htrippaers\eclipse_workspace\cloudstack\client\target\cloud-client-ui-4.2.0-SNAPSHOT\WEB-INF\classes
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2c019cc6/packaging/centos63/cloud-usage.rc
----------------------------------------------------------------------
diff --git a/packaging/centos63/cloud-usage.rc b/packaging/centos63/cloud-usage.rc
index 76f0e06..a9b6047 100755
--- a/packaging/centos63/cloud-usage.rc
+++ b/packaging/centos63/cloud-usage.rc
@@ -58,7 +58,7 @@ export JAVA_HOME
SCP=""
DCP=""
-UCP=`ls /usr/share/cloudstack-usage/cloud-usage-*.jar`":"`ls /usr/share/cloudstack-usage/lib/* | tr '\n' ':'`
+UCP=`ls /usr/share/cloudstack-usage/cloud-usage-*.jar`":"`ls /usr/share/cloudstack-usage/lib/*.jar | tr '\n' ':'`
JCP="/usr/share/java/commons-daemon.jar"
# We need to append the JSVC daemon JAR to the classpath
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2c019cc6/packaging/centos63/cloud.spec
----------------------------------------------------------------------
diff --git a/packaging/centos63/cloud.spec b/packaging/centos63/cloud.spec
index b2f4788..e14a8e5 100644
--- a/packaging/centos63/cloud.spec
+++ b/packaging/centos63/cloud.spec
@@ -446,13 +446,6 @@ if [ -f "%{_sysconfdir}/%{name}/management/db.properties" ]; then
ln -s %{_sysconfdir}/%{name}/management/db.properties %{_sysconfdir}/%{name}/usage/db.properties
fi
-if [ -f "%{_sysconfdir}/%{name}/management/log4j-cloud.xml" ]; then
- echo Replacing log4j-cloud.xml with management server log4j-cloud.xml
- rm -f %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
- ln -s %{_sysconfdir}/%{name}/management/log4j-cloud.xml %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
-fi
-
-
#%post awsapi
#if [ -d "%{_datadir}/%{name}-management" ] ; then
# ln -s %{_datadir}/%{name}-bridge/webapps %{_datadir}/%{name}-management/webapps7080
@@ -547,7 +540,7 @@ fi
%attr(0755,root,root) %{_sysconfdir}/init.d/%{name}-usage
%attr(0644,root,root) %{_datadir}/%{name}-usage/*.jar
%attr(0644,root,root) %{_datadir}/%{name}-usage/lib/*.jar
-%dir /var/log/%{name}/usage
+%dir %attr(0770,root,cloud) %{_localstatedir}/log/%{name}/usage
%attr(0644,root,root) %{_sysconfdir}/%{name}/usage/db.properties
%attr(0644,root,root) %{_sysconfdir}/%{name}/usage/log4j-cloud.xml
%{_defaultdocdir}/%{name}-usage-%{version}/LICENSE
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2c019cc6/packaging/centos63/replace.properties
----------------------------------------------------------------------
diff --git a/packaging/centos63/replace.properties b/packaging/centos63/replace.properties
index 211cc95..8345854 100644
--- a/packaging/centos63/replace.properties
+++ b/packaging/centos63/replace.properties
@@ -56,5 +56,5 @@ SYSCONFDIR=/etc/sysconfig
SYSTEMCLASSPATH=
SYSTEMJARS=
USAGECLASSPATH=
-USAGELOG=/var/log/cloudstack/usage
+USAGELOG=/var/log/cloudstack/usage/usage.log
USAGESYSCONFDIR=/etc/sysconfig
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2c019cc6/usage/pom.xml
----------------------------------------------------------------------
diff --git a/usage/pom.xml b/usage/pom.xml
index 91de4b7..22fa401 100644
--- a/usage/pom.xml
+++ b/usage/pom.xml
@@ -37,6 +37,11 @@
<version>${cs.mysql.version}</version>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>commons-daemon</groupId>
+ <artifactId>commons-daemon</artifactId>
+ <version>1.0.10</version>
+ </dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2c019cc6/usage/src/com/cloud/usage/UsageServer.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/UsageServer.java b/usage/src/com/cloud/usage/UsageServer.java
index 3f2b43e..8a7c852 100644
--- a/usage/src/com/cloud/usage/UsageServer.java
+++ b/usage/src/com/cloud/usage/UsageServer.java
@@ -19,6 +19,9 @@ package com.cloud.usage;
import java.io.File;
import java.io.FileNotFoundException;
+import org.apache.commons.daemon.Daemon;
+import org.apache.commons.daemon.DaemonContext;
+import org.apache.commons.daemon.DaemonInitException;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.xml.DOMConfigurator;
@@ -29,7 +32,7 @@ import org.springframework.util.Log4jConfigurer;
import com.cloud.utils.PropertiesUtil;
import com.cloud.utils.component.ComponentContext;
-public class UsageServer {
+public class UsageServer implements Daemon {
private static final Logger s_logger = Logger.getLogger(UsageServer.class.getName());
public static final String Name = "usage-server";
@@ -39,15 +42,17 @@ public class UsageServer {
* @param args
*/
public static void main(String[] args) {
- initLog4j();
+ initLog4j();
UsageServer usage = new UsageServer();
- usage.init(args);
usage.start();
}
- public void init(String[] args) {
+ @Override
+ public void init(DaemonContext arg0) throws DaemonInitException, Exception {
+ initLog4j();
}
+ @Override
public void start() {
ApplicationContext appContext = new ClassPathXmlApplicationContext("usageApplicationContext.xml");
@@ -66,10 +71,12 @@ public class UsageServer {
}
}
+ @Override
public void stop() {
}
+ @Override
public void destroy() {
}
@@ -96,4 +103,5 @@ public class UsageServer {
}
}
}
+
}