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 {
 	        }
 	    }
    }
+
 }