You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2014/11/24 19:25:57 UTC

[01/13] git commit: updated refs/heads/4.3 to 15ded4f

Repository: cloudstack
Updated Branches:
  refs/heads/4.3 cef29cc81 -> 15ded4fdd


CLOUDSTACK-6463: password is not set for VMs created from password enabled template

(cherry picked from commit 2284a95e4f29b3b8634468b53d3c28395d264038)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e25690ca
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e25690ca
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e25690ca

Branch: refs/heads/4.3
Commit: e25690ca8311e5af3003530e839f7a926f72f74a
Parents: 421137d
Author: Harikrishna Patnala <ha...@citrix.com>
Authored: Mon Apr 21 12:14:22 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 21:13:13 2014 +0530

----------------------------------------------------------------------
 api/src/com/cloud/vm/VirtualMachineProfile.java | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e25690ca/api/src/com/cloud/vm/VirtualMachineProfile.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/vm/VirtualMachineProfile.java b/api/src/com/cloud/vm/VirtualMachineProfile.java
index 3da8397..cca92ba 100644
--- a/api/src/com/cloud/vm/VirtualMachineProfile.java
+++ b/api/src/com/cloud/vm/VirtualMachineProfile.java
@@ -54,6 +54,23 @@ public interface VirtualMachineProfile {
         public String getName() {
             return name;
         }
+
+        @Override
+        public int hashCode() {
+            return this.getName() != null ? this.getName().hashCode() : 0;
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (this == obj)
+                return true;
+            if (obj == null)
+                return false;
+            if (getClass() != obj.getClass())
+                return false;
+            Param other = (Param) obj;
+            return (other.getName().equals(this.getName()));
+        }
     }
 
     String getHostName();


[03/13] git commit: updated refs/heads/4.3 to 15ded4f

Posted by bh...@apache.org.
CLOUDSTACK-6647: appending instance name with custom supplied info that contains - character can break vmsync.

(cherry picked from commit 98307bfcea54c0ea7633d28598c5ffc25927169a)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	api/src/com/cloud/vm/VirtualMachineName.java


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e4a3ee15
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e4a3ee15
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e4a3ee15

Branch: refs/heads/4.3
Commit: e4a3ee1526ebcbddfb5b85d555523e8fd86a1e1a
Parents: cef29cc
Author: Kelven Yang <ke...@gmail.com>
Authored: Thu May 1 15:40:04 2014 -0700
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 21:13:13 2014 +0530

----------------------------------------------------------------------
 api/src/com/cloud/vm/VirtualMachineName.java | 20 ++++----------------
 1 file changed, 4 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e4a3ee15/api/src/com/cloud/vm/VirtualMachineName.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/vm/VirtualMachineName.java b/api/src/com/cloud/vm/VirtualMachineName.java
index 49cb40b..2ae91e8 100755
--- a/api/src/com/cloud/vm/VirtualMachineName.java
+++ b/api/src/com/cloud/vm/VirtualMachineName.java
@@ -18,8 +18,6 @@ package com.cloud.vm;
 
 import java.util.Formatter;
 
-import com.cloud.dc.Vlan;
-
 /**
  * VM Name. 
  */
@@ -52,26 +50,16 @@ public class VirtualMachineName {
     
     public static boolean isValidVmName(String vmName, String instance) {
         String[] tokens = vmName.split(SEPARATOR);
-        /*Some vms doesn't have vlan/vnet id*/
-        if (tokens.length != 5 && tokens.length != 4) {
+
+        if (tokens.length <= 1) {
             return false;
         }
 
         if (!tokens[0].equals("i")) {
             return false;
         }
-        
-        try {
-            Long.parseLong(tokens[1]);
-            Long.parseLong(tokens[2]);
-            if (tokens.length == 5 && !Vlan.UNTAGGED.equalsIgnoreCase(tokens[4])) {
-            	Long.parseLong(tokens[4], 16);
-            }
-        } catch (NumberFormatException e) {
-            return false;
-        }
-        
-        return instance == null || instance.equals(tokens[3]);
+
+        return true;
     }
     
     public static String getVmName(long vmId, long userId, String instance) {


[11/13] git commit: updated refs/heads/4.3 to 15ded4f

Posted by bh...@apache.org.
CLOUDSTACK-6669: Fix support resize in usage server

Signed-off-by: Sebastien Goasguen <ru...@gmail.com>
(cherry picked from commit 303e6ffc1e36a5d1ba2a1d48093f996fef1614df)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	usage/src/com/cloud/usage/parser/VolumeUsageParser.java


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ed90e0c7
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ed90e0c7
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ed90e0c7

Branch: refs/heads/4.3
Commit: ed90e0c751b138acf35ef4af2b46e36f6b2c5b83
Parents: 06a664b
Author: Olivier Lemasle <ol...@apalia.net>
Authored: Fri Jun 6 23:04:43 2014 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 23:47:04 2014 +0530

----------------------------------------------------------------------
 usage/src/com/cloud/usage/parser/VolumeUsageParser.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed90e0c7/usage/src/com/cloud/usage/parser/VolumeUsageParser.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/parser/VolumeUsageParser.java b/usage/src/com/cloud/usage/parser/VolumeUsageParser.java
index 2ac1e0a..b6a12de 100644
--- a/usage/src/com/cloud/usage/parser/VolumeUsageParser.java
+++ b/usage/src/com/cloud/usage/parser/VolumeUsageParser.java
@@ -85,7 +85,7 @@ public class VolumeUsageParser {
             long zoneId = usageVol.getZoneId();
             Long templateId = usageVol.getTemplateId();
             long size = usageVol.getSize();
-            String key = ""+volId;
+            String key = volId + "-" + doId + "-" + size;
 
             diskOfferingMap.put(key, new VolInfo(volId, zoneId, doId, templateId, size));
             


[12/13] git commit: updated refs/heads/4.3 to 15ded4f

Posted by bh...@apache.org.
Allow infrastructure to handle delete of volume from DB
(cherry picked from commit 6602ad71ac97fb1875131f41bb5f92ff1e3a1c7b)

Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a165309b
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a165309b
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a165309b

Branch: refs/heads/4.3
Commit: a165309b89387d024ea362898a30c7990e79b1ab
Parents: 11d446a
Author: Mike Tutkowski <mi...@solidfire.com>
Authored: Mon Nov 24 09:44:06 2014 -0700
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 23:47:05 2014 +0530

----------------------------------------------------------------------
 .../storage/datastore/driver/SolidfirePrimaryDataStoreDriver.java  | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a165309b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidfirePrimaryDataStoreDriver.java
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidfirePrimaryDataStoreDriver.java b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidfirePrimaryDataStoreDriver.java
index e69534b..6a180ad 100644
--- a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidfirePrimaryDataStoreDriver.java
+++ b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidfirePrimaryDataStoreDriver.java
@@ -790,8 +790,6 @@ public class SolidfirePrimaryDataStoreDriver implements PrimaryDataStoreDriver {
 
             SolidFireUtil.SolidFireVolume sfVolume = deleteSolidFireVolume(volumeInfo, sfConnection);
 
-            _volumeDao.deleteVolumesByInstance(volumeInfo.getId());
-
             //  if (!sfAccountHasVolume(sfAccountId, sfConnection)) {
             //      // delete the account from the SolidFire SAN
             //      deleteSolidFireAccount(sfAccountId, sfConnection);


[04/13] git commit: updated refs/heads/4.3 to 15ded4f

Posted by bh...@apache.org.
Move EventBus hookup on job framework to ApiServer to decouple job framework away from business logic related hookups. The decoupling is done through internal messaging facility provided inside management server.

(cherry picked from commit 521ac796dd94de30c1092980cb80202588199ec3)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	server/src/com/cloud/api/ApiServer.java


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b716444b
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b716444b
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b716444b

Branch: refs/heads/4.3
Commit: b716444b84d727c14b77369b71a8d7fc1af22433
Parents: 4e3ac55
Author: Kelven Yang <ke...@gmail.com>
Authored: Mon May 5 15:21:59 2014 -0700
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 21:13:14 2014 +0530

----------------------------------------------------------------------
 .../cloudstack/framework/jobs/AsyncJob.java     |  1 +
 .../jobs/impl/AsyncJobManagerImpl.java          |  5 +
 server/src/com/cloud/api/ApiServer.java         | 98 +++++++++++++++++++-
 3 files changed, 102 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b716444b/framework/jobs/src/org/apache/cloudstack/framework/jobs/AsyncJob.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/AsyncJob.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/AsyncJob.java
index 61fb396..f1301a7 100644
--- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/AsyncJob.java
+++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/AsyncJob.java
@@ -30,6 +30,7 @@ public interface AsyncJob extends JobInfo {
     public static interface Topics {
         public static final String JOB_HEARTBEAT = "job.heartbeat";
         public static final String JOB_STATE = "job.state";
+        public static final String JOB_EVENT_PUBLISH = "job.eventpublish";
     }
     
     public static interface Constants {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b716444b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
index 63c365b..e2f9cbf 100644
--- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
+++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobManagerImpl.java
@@ -58,6 +58,7 @@ import org.apache.cloudstack.utils.identity.ManagementServerNode;
 import com.cloud.cluster.ClusterManagerListener;
 import com.cloud.cluster.ManagementServerHost;
 import com.cloud.utils.DateUtil;
+import com.cloud.utils.Pair;
 import com.cloud.utils.Predicate;
 import com.cloud.utils.component.ManagerBase;
 import com.cloud.utils.concurrency.NamedThreadFactory;
@@ -972,4 +973,8 @@ public class AsyncJobManagerImpl extends ManagerBase implements AsyncJobManager,
 
     }
 
+    private void publishOnEventBus(AsyncJob job, String jobEvent) {
+        _messageBus.publish(null, AsyncJob.Topics.JOB_EVENT_PUBLISH, PublishScope.LOCAL,
+            new Pair<AsyncJob, String>(job, jobEvent));
+    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b716444b/server/src/com/cloud/api/ApiServer.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java
index c6a581c..d78eaff 100755
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -82,6 +82,7 @@ import org.apache.http.protocol.ResponseContent;
 import org.apache.http.protocol.ResponseDate;
 import org.apache.http.protocol.ResponseServer;
 import org.apache.log4j.Logger;
+import org.springframework.beans.factory.NoSuchBeanDefinitionException;
 import org.springframework.stereotype.Component;
 
 import org.apache.cloudstack.acl.APIChecker;
@@ -117,16 +118,24 @@ import org.apache.cloudstack.api.response.ListResponse;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
 import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
+import org.apache.cloudstack.framework.events.EventBus;
+import org.apache.cloudstack.framework.events.EventBusException;
 import org.apache.cloudstack.framework.jobs.AsyncJob;
 import org.apache.cloudstack.framework.jobs.AsyncJobManager;
 import org.apache.cloudstack.framework.jobs.impl.AsyncJobVO;
+import org.apache.cloudstack.framework.messagebus.MessageBus;
+import org.apache.cloudstack.framework.messagebus.MessageDispatcher;
+import org.apache.cloudstack.framework.messagebus.MessageHandler;
 import org.apache.cloudstack.managed.context.ManagedContextRunnable;
 
 import com.cloud.api.response.ApiResponseSerializer;
 import com.cloud.configuration.Config;
 import com.cloud.domain.Domain;
 import com.cloud.domain.DomainVO;
+import com.cloud.domain.dao.DomainDao;
 import com.cloud.event.ActionEventUtils;
+import com.cloud.event.EventTypes;
+import com.cloud.event.EventCategory;
 import com.cloud.exception.AccountLimitException;
 import com.cloud.exception.CloudAuthenticationException;
 import com.cloud.exception.InsufficientCapacityException;
@@ -167,6 +176,9 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
     @Inject private AccountManager _accountMgr;
     @Inject private DomainManager _domainMgr;
     @Inject
+    private DomainDao _domainDao;
+
+    @Inject
     private AsyncJobManager _asyncMgr;
     @Inject private ConfigurationDao _configDao;
     @Inject
@@ -181,16 +193,98 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
     private static final DateFormat _dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
     private static Map<String, Class<?>> _apiNameCmdClassMap = new HashMap<String, Class<?>>();
 
-    private static ExecutorService _executor = new ThreadPoolExecutor(10, 150, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new NamedThreadFactory("ApiServer"));
+    private static int s_workerCount = 0;
+    private static final DateFormat DateFormatToUse = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
+    private static Map<String, List<Class<?>>> s_apiNameCmdClassMap = new HashMap<String, List<Class<?>>>();
+
+    private static ExecutorService s_executor = new ThreadPoolExecutor(10, 150, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new NamedThreadFactory(
+        "ApiServer"));
+    @Inject
+    MessageBus _messageBus;
 
     public ApiServer() {
     }
 
     @Override
-    public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
+    public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
+        _messageBus.subscribe(AsyncJob.Topics.JOB_EVENT_PUBLISH, MessageDispatcher.getDispatcher(this));
         return true;
     }
 
+    @MessageHandler(topic = AsyncJob.Topics.JOB_EVENT_PUBLISH)
+    private void handleAsyncJobPublishEvent(String subject, String senderAddress, Object args) {
+        assert (args != null);
+
+        @SuppressWarnings("unchecked")
+        Pair<AsyncJob, String> eventInfo = (Pair<AsyncJob, String>)args;
+        AsyncJob job = eventInfo.first();
+        String jobEvent = eventInfo.second();
+
+        if (s_logger.isTraceEnabled())
+            s_logger.trace("Handle asyjob publish event " + jobEvent);
+
+        EventBus eventBus = null;
+        try {
+            eventBus = ComponentContext.getComponent(EventBus.class);
+        } catch (NoSuchBeanDefinitionException nbe) {
+            return; // no provider is configured to provide events bus, so just return
+        }
+
+        if (!job.getDispatcher().equalsIgnoreCase("ApiAsyncJobDispatcher")) {
+            return;
+        }
+
+        User userJobOwner = _accountMgr.getUserIncludingRemoved(job.getUserId());
+        Account jobOwner = _accountMgr.getAccount(userJobOwner.getAccountId());
+
+        // Get the event type from the cmdInfo json string
+        String info = job.getCmdInfo();
+        String cmdEventType;
+        if (info == null) {
+            cmdEventType = "unknown";
+        } else {
+            String marker = "\"cmdEventType\"";
+            int begin = info.indexOf(marker);
+            cmdEventType = info.substring(begin + marker.length() + 2, info.indexOf(",", begin) - 1);
+        }
+
+        // For some reason, the instanceType / instanceId are not abstract, which means we may get null values.
+        org.apache.cloudstack.framework.events.Event event = new org.apache.cloudstack.framework.events.Event(
+                "management-server",
+                EventCategory.ASYNC_JOB_CHANGE_EVENT.getName(),
+                jobEvent,
+                (job.getInstanceType() != null ? job.getInstanceType().toString() : "unknown"), null);
+
+        Map<String, String> eventDescription = new HashMap<String, String>();
+        eventDescription.put("command", job.getCmd());
+        eventDescription.put("user", userJobOwner.getUuid());
+        eventDescription.put("account", jobOwner.getUuid());
+        eventDescription.put("processStatus", "" + job.getProcessStatus());
+        eventDescription.put("resultCode", "" + job.getResultCode());
+        eventDescription.put("instanceUuid", ApiDBUtils.findJobInstanceUuid(job));
+        eventDescription.put("instanceType", (job.getInstanceType() != null ? job.getInstanceType().toString() : "unknown"));
+        eventDescription.put("commandEventType", cmdEventType);
+        eventDescription.put("jobId", job.getUuid());
+        // If the event.accountinfo boolean value is set, get the human readable value for the username / domainname
+        Map<String, String> configs = _configDao.getConfiguration("management-server", new HashMap<String, String>());
+        if (Boolean.valueOf(configs.get("event.accountinfo"))) {
+            DomainVO domain = _domainDao.findById(jobOwner.getDomainId());
+            eventDescription.put("username", userJobOwner.getUsername());
+            eventDescription.put("domainname", domain.getName());
+        }
+        event.setDescription(eventDescription);
+
+        try {
+            eventBus.publish(event);
+        } catch (EventBusException evx) {
+            String errMsg = "F" +
+                    "" +
+                    "ailed to publish async job event on the the event bus.";
+            s_logger.warn(errMsg, evx);
+            throw new CloudRuntimeException(errMsg);
+        }
+    }
+
     @Override
     public boolean start() {
         Integer apiPort = null; // api port, null by default


[07/13] git commit: updated refs/heads/4.3 to 15ded4f

Posted by bh...@apache.org.
CLOUDSTACK-6970: Protect event interpretion from causing NPE exception

(cherry picked from commit 06d8d3a03f7a4efc41c45d9f67fd5b7586a78454)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/839ef94c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/839ef94c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/839ef94c

Branch: refs/heads/4.3
Commit: 839ef94ce926c78faa0f2b12a91666fa53d2e399
Parents: b716444
Author: Kelven Yang <ke...@gmail.com>
Authored: Thu May 29 09:35:03 2014 -0700
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 23:47:03 2014 +0530

----------------------------------------------------------------------
 server/src/com/cloud/api/ApiServer.java | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/839ef94c/server/src/com/cloud/api/ApiServer.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java
index d78eaff..9041a59 100755
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -239,15 +239,20 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
 
         // Get the event type from the cmdInfo json string
         String info = job.getCmdInfo();
-        String cmdEventType;
-        if (info == null) {
-            cmdEventType = "unknown";
-        } else {
+        String cmdEventType = "unknown";
+        if (info != null) {
             String marker = "\"cmdEventType\"";
             int begin = info.indexOf(marker);
-            cmdEventType = info.substring(begin + marker.length() + 2, info.indexOf(",", begin) - 1);
-        }
+            if (begin >= 0) {
+                cmdEventType = info.substring(begin + marker.length() + 2, info.indexOf(",", begin) - 1);
 
+                if (s_logger.isDebugEnabled())
+                    s_logger.debug("Retrieved cmdEventType from job info: " + cmdEventType);
+            } else {
+                if (s_logger.isDebugEnabled())
+                    s_logger.debug("Unable to locate cmdEventType marker in job info. publish as unknown event");
+            }
+        }
         // For some reason, the instanceType / instanceId are not abstract, which means we may get null values.
         org.apache.cloudstack.framework.events.Event event = new org.apache.cloudstack.framework.events.Event(
                 "management-server",


[08/13] git commit: updated refs/heads/4.3 to 15ded4f

Posted by bh...@apache.org.
CLOUDSTACK-6466: cpu and ram is not getting updated correctly in usage_vm_instance table for usage type 2

(cherry picked from commit 14f1b96b5122696df58751a2045c333989ab8392)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/90c92ff1
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/90c92ff1
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/90c92ff1

Branch: refs/heads/4.3
Commit: 90c92ff17d4cdf78fab9ca09330732d202450a9c
Parents: 839ef94
Author: Harikrishna Patnala <ha...@citrix.com>
Authored: Mon Apr 21 15:19:30 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 23:47:03 2014 +0530

----------------------------------------------------------------------
 usage/src/com/cloud/usage/UsageManagerImpl.java | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90c92ff1/usage/src/com/cloud/usage/UsageManagerImpl.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/UsageManagerImpl.java b/usage/src/com/cloud/usage/UsageManagerImpl.java
index de442e2..f198fe0 100644
--- a/usage/src/com/cloud/usage/UsageManagerImpl.java
+++ b/usage/src/com/cloud/usage/UsageManagerImpl.java
@@ -1166,16 +1166,22 @@ public class UsageManagerImpl extends ManagerBase implements UsageManager, Runna
         UsageEventDetailsVO cpuNumber = _usageEventDetailsDao.findDetail(eventId, UsageEventVO.DynamicParameters.cpuNumber.name());
         if (cpuNumber != null) {
             usageInstance.setCpuCores(Long.parseLong(cpuNumber.getValue()));
+        } else {
+            usageInstance.setCpuCores(null);
         }
 
         UsageEventDetailsVO cpuSpeed = _usageEventDetailsDao.findDetail(eventId, UsageEventVO.DynamicParameters.cpuSpeed.name());
         if (cpuSpeed != null) {
             usageInstance.setCpuSpeed(Long.parseLong(cpuSpeed.getValue()));
+        } else {
+            usageInstance.setCpuSpeed(null);
         }
 
         UsageEventDetailsVO memory = _usageEventDetailsDao.findDetail(eventId, UsageEventVO.DynamicParameters.memory.name());
         if (memory != null) {
             usageInstance.setMemory(Long.parseLong(memory.getValue()));
+        } else {
+            usageInstance.setMemory(null);
         }
         m_usageInstanceDao.persist(usageInstance);
     }


[10/13] git commit: updated refs/heads/4.3 to 15ded4f

Posted by bh...@apache.org.
FIXED CLOUDSTACK-6669 Support volume resize in usage server

(cherry picked from commit bdde5335f9988e460a667da97ebe0cde2e74e7a1)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	usage/src/com/cloud/usage/UsageManagerImpl.java


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/06a664b0
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/06a664b0
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/06a664b0

Branch: refs/heads/4.3
Commit: 06a664b063d6e55fc969a016a6fc722e95d4bd23
Parents: 90c92ff
Author: Rajani Karuturi <ra...@gmail.com>
Authored: Fri May 30 11:47:56 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 23:47:04 2014 +0530

----------------------------------------------------------------------
 usage/src/com/cloud/usage/UsageManagerImpl.java | 22 +++++---------------
 1 file changed, 5 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/06a664b0/usage/src/com/cloud/usage/UsageManagerImpl.java
----------------------------------------------------------------------
diff --git a/usage/src/com/cloud/usage/UsageManagerImpl.java b/usage/src/com/cloud/usage/UsageManagerImpl.java
index f198fe0..ce7594f 100644
--- a/usage/src/com/cloud/usage/UsageManagerImpl.java
+++ b/usage/src/com/cloud/usage/UsageManagerImpl.java
@@ -924,9 +924,8 @@ public class UsageManagerImpl extends ManagerBase implements UsageManager, Runna
     }
     
     private boolean isVolumeEvent(String eventType) {
-        if (eventType == null) return false;
-        return (eventType.equals(EventTypes.EVENT_VOLUME_CREATE) ||
-                eventType.equals(EventTypes.EVENT_VOLUME_DELETE));
+        return eventType != null &&
+            (eventType.equals(EventTypes.EVENT_VOLUME_CREATE) || eventType.equals(EventTypes.EVENT_VOLUME_DELETE) || eventType.equals(EventTypes.EVENT_VOLUME_RESIZE));
     }
 
     private boolean isTemplateEvent(String eventType) {
@@ -1313,21 +1312,9 @@ public class UsageManagerImpl extends ManagerBase implements UsageManager, Runna
     }
 
     private void createVolumeHelperEvent(UsageEventVO event) {
-        
-        Long doId = -1L;
-        long zoneId = -1L;
-        Long templateId = -1L;
-        long size = -1L;
-        
         long volId = event.getResourceId();
-        if (EventTypes.EVENT_VOLUME_CREATE.equals(event.getType())) {
-            doId = event.getOfferingId();
-            zoneId = event.getZoneId();
-            templateId = event.getTemplateId();
-            size = event.getSize();
-        }
 
-        if (EventTypes.EVENT_VOLUME_CREATE.equals(event.getType())) {
+        if (EventTypes.EVENT_VOLUME_CREATE.equals(event.getType()) || EventTypes.EVENT_VOLUME_RESIZE.equals(event.getType())) {
             SearchCriteria<UsageVolumeVO> sc = m_usageVolumeDao.createSearchCriteria();
             sc.addAnd("accountId", SearchCriteria.Op.EQ, event.getAccountId());
             sc.addAnd("id", SearchCriteria.Op.EQ, volId);
@@ -1337,6 +1324,7 @@ public class UsageManagerImpl extends ManagerBase implements UsageManager, Runna
                 //This is a safeguard to avoid double counting of volumes.
                 s_logger.error("Found duplicate usage entry for volume: " + volId + " assigned to account: " + event.getAccountId() + "; marking as deleted...");
             }
+            //an entry exists if it is a resize volume event. marking the existing deleted and creating a new one in the case of resize.
             for (UsageVolumeVO volumesVO : volumesVOs) {
                 if (s_logger.isDebugEnabled()) {
                     s_logger.debug("deleting volume: " + volumesVO.getId() + " from account: " + volumesVO.getAccountId());
@@ -1348,7 +1336,7 @@ public class UsageManagerImpl extends ManagerBase implements UsageManager, Runna
                 s_logger.debug("create volume with id : " + volId + " for account: " + event.getAccountId());
             }
             Account acct = m_accountDao.findByIdIncludingRemoved(event.getAccountId());
-            UsageVolumeVO volumeVO = new UsageVolumeVO(volId, zoneId, event.getAccountId(), acct.getDomainId(), doId, templateId, size, event.getCreateDate(), null);
+            UsageVolumeVO volumeVO = new UsageVolumeVO(volId, event.getZoneId(), event.getAccountId(), acct.getDomainId(), event.getOfferingId(), event.getTemplateId(), event.getSize(), event.getCreateDate(), null);
             m_usageVolumeDao.persist(volumeVO);
         } else if (EventTypes.EVENT_VOLUME_DELETE.equals(event.getType())) {
             SearchCriteria<UsageVolumeVO> sc = m_usageVolumeDao.createSearchCriteria();


[13/13] git commit: updated refs/heads/4.3 to 15ded4f

Posted by bh...@apache.org.
CHANGES: add backported commits on 4.3 branch since 4.3.1 release

Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/15ded4fd
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/15ded4fd
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/15ded4fd

Branch: refs/heads/4.3
Commit: 15ded4fddab6a888002202dfdda339f05648bdc9
Parents: a165309
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Mon Nov 24 23:54:18 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 23:54:18 2014 +0530

----------------------------------------------------------------------
 CHANGES.md | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/15ded4fd/CHANGES.md
----------------------------------------------------------------------
diff --git a/CHANGES.md b/CHANGES.md
index 56bc084..90bd557 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -4,6 +4,47 @@ Apache CloudStack CHANGES
 Full release notes for each release are located in the project's documentation website:  
 http://docs.cloudstack.apache.org
 
+Version 4.3.2
+-------------
+
+This is a bug fix release. The following issues were fixed:
+
+    CLOUDSTACK-6738: Add configs in developer prefill to avoid restart mgmt server
+    CLOUDSTACK-7517: loading ftp modules in VR
+    CLOUDSTACK-7633: fix "Provides" in most LSB headers
+    CLOUDSTACK-7658: Upgrading debian packages as part of system vm template build
+    CLOUDSTACK-7674 throw an exception when encountered
+    CLOUDSTACK-7679: bump up the RabbitMQ AMQP java client version from 2.8.7 to 3.3.5
+    CLOUDSTACK-2625, CLOUDSTACK-3401: Usage records are ordered by start_date which is not unique. While listing large datasets or when page size is small this will result in duplicates
+    CLOUDSTACK-7855: NIC3 should set MTU and not NIC1 for storage network nic
+    CLOUDSTACK-7871: allow VM and template details update using update APIs
+    CLOUDSTACK-6438, CLOUDSTACK-6442: XAPI plugins must be copied to XS master first
+    CLOUDSTACK-6805: UI > create account > fix a bug that account creation failed when password contains # character.
+    CLOUDSTACK-6892: use lowercase noredist, as package.sh lowercases build type
+    CLOUDSTACK-6371: Set snapshot size in copycommand answer during snapshot backup
+    CLOUDSTACK-6432: Blocking DHCP server to service DNS outside network
+    CLOUDSTACK-6761: Fixed removing proxy arp rule on deleting static nat or PF rule on ip
+    CLOUDSTACK-7250: [vCenter 5.5] SourceNAT,StaticNAT and Portfowrding is not working with Vmware DVS in vCenter 5.5
+    CLOUDSTACK-6652: CLONE - [Automation] Vmware-  System's StartCommand failed with "NumberFormatException" while using VMware DVS
+    CLOUDSTACK-5785: VM display name cell not updated upon detaching volume from VM
+    CLOUDSTACK-6011: When detach is called on a deleted volume, avoid the NPE and throw an appropriate exception instead
+    CLOUDSTACK-7752: Fixed deployment planner stuck in infinite loop. If we create VM with shared service offering and attach disk with local disk offering, and one of storage pool is full
+    CLOUDSTACK-7937: CloudStack accepts unauthenticated LDAP binds
+    CLOUDSTACK-7822: Fixed SSL Cert Tests and relaxed chain validation
+    CLOUDSTACK-7952: Remove private key from SslCertResponse (listSslCerts)
+    CLOUDSTACK-3383: Fetch CPU utilization more reliable.
+    CLOUDSTACK-7415. Host remains in Alert after vCenter restart.
+    CLOUDSTACK-6261: remove the forceful timeout setting when login to NetScaler.
+    CLOUDSTACK-7954: ListTags API is ignoring the resourceID and displaying
+    CLOUDSTACK-6647: appending instance name with custom supplied info that contains - character can break vmsync.
+    CLOUDSTACK-6463: password is not set for VMs created from password enabled template
+    CLOUDSTACK-5992: default values of configuraiton parameters in configuration table are set NULL on fresh setup Some configuration parameters have Component names different from fresh
+    CLOUDSTACK-6859:Management Server PermGen run out of memory after some time due to class leak
+    CLOUDSTACK-6970: Protect event interpretion from causing NPE exception
+    CLOUDSTACK-6466: cpu and ram is not getting updated correctly in usage_vm_instance table for usage type 2
+    CLOUDSTACK-6669: Support volume resize in usage server
+    CLOUDSTACK-6669: Fix support resize in usage server
+
 Version 4.3.1
 -------------
 


[06/13] git commit: updated refs/heads/4.3 to 15ded4f

Posted by bh...@apache.org.
CLOUDSTACK-5992: default values of configuraiton parameters in configuration table are set NULL on fresh setup Some configuration parameters have Component names different from fresh and upgrade setup

Signed-off-by: Rajani Karuturi <ra...@gmail.com>
(cherry picked from commit 5d389b1a711bff0a2c7959a824e28d54b56f9e89)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/122332b3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/122332b3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/122332b3

Branch: refs/heads/4.3
Commit: 122332b3266339fd257d787635413e3ab3445642
Parents: e25690c
Author: Harikrishna Patnala <ha...@citrix.com>
Authored: Thu Jan 30 17:14:27 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 21:13:14 2014 +0530

----------------------------------------------------------------------
 .../framework/config/impl/ConfigDepotImpl.java  | 24 ++++++++++++++++++++
 .../cloud/server/ConfigurationServerImpl.java   |  1 +
 2 files changed, 25 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/122332b3/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java
----------------------------------------------------------------------
diff --git a/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java b/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java
index 4cefdaf..25c5d50 100644
--- a/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java
+++ b/framework/config/src/org/apache/cloudstack/framework/config/impl/ConfigDepotImpl.java
@@ -142,6 +142,30 @@ public class ConfigDepotImpl implements ConfigDepot, ConfigDepotAdmin {
         _configured.add(configurable);
     }
 
+    private void createOrupdateConfigObject(Date date, String componentName, ConfigKey<?> key, String value) {
+        ConfigurationVO vo = _configDao.findById(key.key());
+        if (vo == null) {
+            vo = new ConfigurationVO(componentName, key);
+            vo.setUpdated(date);
+            if (value != null) {
+                vo.setValue(value);
+            }
+            _configDao.persist(vo);
+        } else {
+            if (vo.isDynamic() != key.isDynamic() || !ObjectUtils.equals(vo.getDescription(), key.description()) || !ObjectUtils.equals(vo.getDefaultValue(), key.defaultValue()) ||
+                !ObjectUtils.equals(vo.getScope(), key.scope().toString()) ||
+                !ObjectUtils.equals(vo.getComponent(), componentName)) {
+                vo.setDynamic(key.isDynamic());
+                vo.setDescription(key.description());
+                vo.setDefaultValue(key.defaultValue());
+                vo.setScope(key.scope().toString());
+                vo.setComponent(componentName);
+                vo.setUpdated(date);
+                _configDao.persist(vo);
+            }
+        }
+    }
+
     @Override
     public void populateConfiguration(Configurable configurable) {
         populateConfiguration(new Date(), configurable);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/122332b3/server/src/com/cloud/server/ConfigurationServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ConfigurationServerImpl.java b/server/src/com/cloud/server/ConfigurationServerImpl.java
index 7c6743a..c204b4d 100755
--- a/server/src/com/cloud/server/ConfigurationServerImpl.java
+++ b/server/src/com/cloud/server/ConfigurationServerImpl.java
@@ -193,6 +193,7 @@ public class ConfigurationServerImpl extends ManagerBase implements Configuratio
                     value = ("Hidden".equals(category) || "Secure".equals(category)) ? DBEncryptionUtil.encrypt(value) : value;
                     String description = c.getDescription();
                     ConfigurationVO configVO = new ConfigurationVO(category, instance, component, name, value, description);
+                    configVO.setDefaultValue(value);
                     _configDao.persist(configVO);
                 }
             }


[05/13] git commit: updated refs/heads/4.3 to 15ded4f

Posted by bh...@apache.org.
CLOUDSTACK-6859:Management Server PermGen run out of memory after some
time due to class leak.

(cherry picked from commit 25580c7cd1a484feba1960612c9a4ae1a179cbff)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>

Conflicts:
	framework/ipc/src/org/apache/cloudstack/framework/async/AsyncCallbackDispatcher.java


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4e3ac55a
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4e3ac55a
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4e3ac55a

Branch: refs/heads/4.3
Commit: 4e3ac55a0e6937323cf83e6005083f6615eb3bff
Parents: 122332b
Author: Min Chen <mi...@citrix.com>
Authored: Fri Jun 6 23:44:30 2014 -0700
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 21:13:14 2014 +0530

----------------------------------------------------------------------
 .../async/AsyncCallbackDispatcher.java          | 114 +++++++++++--------
 1 file changed, 67 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4e3ac55a/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncCallbackDispatcher.java
----------------------------------------------------------------------
diff --git a/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncCallbackDispatcher.java b/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncCallbackDispatcher.java
index 42cd8c5..73bb314 100644
--- a/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncCallbackDispatcher.java
+++ b/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncCallbackDispatcher.java
@@ -21,10 +21,11 @@ package org.apache.cloudstack.framework.async;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
 
-import net.sf.cglib.proxy.Callback;
-import net.sf.cglib.proxy.CallbackFilter;
 import net.sf.cglib.proxy.Enhancer;
+import net.sf.cglib.proxy.Factory;
 import net.sf.cglib.proxy.MethodInterceptor;
 import net.sf.cglib.proxy.MethodProxy;
 
@@ -35,53 +36,72 @@ public class AsyncCallbackDispatcher<T, R> implements AsyncCompletionCallback {
     private static final Logger s_logger = Logger.getLogger(AsyncCallbackDispatcher.class);
 
     private Method _callbackMethod;
-	private final T _targetObject;
-	private Object _contextObject;
-	private Object _resultObject;
-	private AsyncCallbackDriver _driver = new InplaceAsyncCallbackDriver();
-
-	private AsyncCallbackDispatcher(T target) {
-		assert(target != null);
-		_targetObject = target;
-	}
-
-	public AsyncCallbackDispatcher<T, R> attachDriver(AsyncCallbackDriver driver) {
-		assert(driver != null);
-		_driver = driver;
-
-		return this;
-	}
-
-	public Method getCallbackMethod() {
-		return _callbackMethod;
-	}
-
-	@SuppressWarnings("unchecked")
-	public T getTarget() {
-	    Enhancer en = new Enhancer();
-
-	    Class<?> clz = _targetObject.getClass();
-	    String clzName = clz.getName();
-	    if(clzName.contains("EnhancerByCloudStack"))
-	        clz = clz.getSuperclass();
-
-	    en.setSuperclass(clz);
-	    en.setCallbacks(new Callback[]{new MethodInterceptor() {
-            @Override
-            public Object intercept(Object arg0, Method arg1, Object[] arg2,
-                MethodProxy arg3) throws Throwable {
-                _callbackMethod = arg1;
-                _callbackMethod.setAccessible(true);
-                return null;
-            }
-        },
-        new MethodInterceptor() {
-            @Override
-            public Object intercept(Object arg0, Method arg1, Object[] arg2,
-                MethodProxy arg3) throws Throwable {
-                return null;
+    private final T _targetObject;
+    private Object _contextObject;
+    private Object _resultObject;
+    private AsyncCallbackDriver _driver = new InplaceAsyncCallbackDriver();
+    private static Map<Class, Enhancer> enMap = new HashMap<Class, Enhancer>();
+
+    private AsyncCallbackDispatcher(T target) {
+        assert (target != null);
+        _targetObject = target;
+    }
+
+    public AsyncCallbackDispatcher<T, R> attachDriver(AsyncCallbackDriver driver) {
+        assert (driver != null);
+        _driver = driver;
+
+        return this;
+    }
+
+    public Method getCallbackMethod() {
+        return _callbackMethod;
+    }
+
+    @SuppressWarnings("unchecked")
+    public T getTarget() {
+        Class<?> clz = _targetObject.getClass();
+        String clzName = clz.getName();
+        if (clzName.contains("EnhancerByCloudStack"))
+            clz = clz.getSuperclass();
+
+
+        Enhancer en = null;
+        synchronized (enMap) {
+            en = enMap.get(clz);
+            if (en == null) {
+                en = new Enhancer();
+
+                en.setSuperclass(clz);
+                en.setCallback(new MethodInterceptor() {
+                    @Override
+                    public Object intercept(Object arg0, Method arg1, Object[] arg2, MethodProxy arg3) throws Throwable {
+                        return null;
+                        }
+                    });
+                enMap.put(clz, en);
             }
         }
+
+        try {
+            T t = (T)en.create();
+            Factory factory = (Factory)t;
+            factory.setCallback(0, new MethodInterceptor() {
+                @Override
+                public Object intercept(Object arg0, Method arg1, Object[] arg2, MethodProxy arg3) throws Throwable {
+                    if (arg1.getParameterTypes().length == 0 && arg1.getName().equals("finalize")) {
+                        return null;
+                    } else {
+                        _callbackMethod = arg1;
+                        _callbackMethod.setAccessible(true);
+                        return null;
+                    }
+                }
+            });
+            return t;
+        } catch (Throwable e) {
+            s_logger.error("Unexpected exception", e);
+        }
 	    });
 	    en.setCallbackFilter(new CallbackFilter() {
 	        @Override


[09/13] git commit: updated refs/heads/4.3 to 15ded4f

Posted by bh...@apache.org.
Fix build failure from cherry-picked commits

Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/11d446a0
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/11d446a0
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/11d446a0

Branch: refs/heads/4.3
Commit: 11d446a0d80bce428420667a8b82f72742c9d8fe
Parents: ed90e0c
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Mon Nov 24 21:52:23 2014 +0530
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 23:47:04 2014 +0530

----------------------------------------------------------------------
 .../async/AsyncCallbackDispatcher.java          | 22 +++-----------------
 server/src/com/cloud/api/ApiServer.java         |  2 +-
 2 files changed, 4 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11d446a0/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncCallbackDispatcher.java
----------------------------------------------------------------------
diff --git a/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncCallbackDispatcher.java b/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncCallbackDispatcher.java
index 73bb314..be50eec 100644
--- a/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncCallbackDispatcher.java
+++ b/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncCallbackDispatcher.java
@@ -102,25 +102,9 @@ public class AsyncCallbackDispatcher<T, R> implements AsyncCompletionCallback {
         } catch (Throwable e) {
             s_logger.error("Unexpected exception", e);
         }
-	    });
-	    en.setCallbackFilter(new CallbackFilter() {
-	        @Override
-	        public int accept(Method method) {
-	            if (method.getParameterTypes().length == 0 && method.getName().equals("finalize")) {
-	                return 1;
-	            }
-	            return 0;
-	        }}
-	       );
-
-	    try {
-	        return (T)en.create();
-	    } catch(Throwable e) {
-	        s_logger.error("Unexpected exception", e);
-	    }
-
-	    return null;
-	}
+
+        return null;
+    }
 
 	public AsyncCallbackDispatcher<T, R> setCallback(Object useless) {
 		return this;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/11d446a0/server/src/com/cloud/api/ApiServer.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java
index 9041a59..7aac28f 100755
--- a/server/src/com/cloud/api/ApiServer.java
+++ b/server/src/com/cloud/api/ApiServer.java
@@ -1065,7 +1065,7 @@ public class ApiServer extends ManagerBase implements HttpRequestHandler, ApiSer
                     conn.bind(socket, _params);
 
                     // Execute a new worker task to handle the request
-                    _executor.execute(new WorkerTask(_httpService, conn, _workerCount++));
+                    s_executor.execute(new WorkerTask(_httpService, conn, _workerCount++));
                 } catch (InterruptedIOException ex) {
                     break;
                 } catch (IOException e) {


[02/13] git commit: updated refs/heads/4.3 to 15ded4f

Posted by bh...@apache.org.
NDC.pop() can return empty string, this causes a loop spinning in CallContext.UnregisterAll().

(cherry picked from commit cdf605b2cd7ccbe40b42810f8aaacb90535496db)
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/421137d9
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/421137d9
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/421137d9

Branch: refs/heads/4.3
Commit: 421137d9f639f8b89cf1282f1b5d1e2bd1973df3
Parents: e4a3ee1
Author: Kelven Yang <ke...@gmail.com>
Authored: Tue Feb 25 11:47:51 2014 -0800
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Mon Nov 24 21:13:13 2014 +0530

----------------------------------------------------------------------
 api/src/org/apache/cloudstack/context/CallContext.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/421137d9/api/src/org/apache/cloudstack/context/CallContext.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/context/CallContext.java b/api/src/org/apache/cloudstack/context/CallContext.java
index 3cdccc5..761eb51 100644
--- a/api/src/org/apache/cloudstack/context/CallContext.java
+++ b/api/src/org/apache/cloudstack/context/CallContext.java
@@ -229,7 +229,7 @@ public class CallContext {
         String sessionIdOnStack = null;
         String sessionIdPushedToNDC = "ctx-" + UuidUtils.first(contextId);
         while ((sessionIdOnStack = NDC.pop()) != null) {
-            if (sessionIdPushedToNDC.equals(sessionIdOnStack)) {
+            if (sessionIdOnStack.isEmpty() || sessionIdPushedToNDC.equals(sessionIdOnStack)) {
                 break;
             }
             if (s_logger.isTraceEnabled()) {