You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ke...@apache.org on 2013/06/12 18:52:20 UTC
[1/2] git commit: updated refs/heads/vmsync to 03a9445
Updated Branches:
refs/heads/vmsync d71e358a9 -> 03a9445fd
Workaroud StartUserVM DeploymentPlan serialization issue to make it across job boundary
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/03a9445f
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/03a9445f
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/03a9445f
Branch: refs/heads/vmsync
Commit: 03a9445fda67a0b9be0afd5a0ba0eab50962a1fe
Parents: f271720
Author: Kelven Yang <ke...@gmail.com>
Authored: Tue Jun 11 19:26:54 2013 -0700
Committer: Kelven Yang <ke...@gmail.com>
Committed: Wed Jun 12 09:45:06 2013 -0700
----------------------------------------------------------------------
server/src/com/cloud/vm/VmWorkStart.java | 52 ++++++++++++++++++++++++---
1 file changed, 47 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/03a9445f/server/src/com/cloud/vm/VmWorkStart.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VmWorkStart.java b/server/src/com/cloud/vm/VmWorkStart.java
index fdc6bfd..fbc0a15 100644
--- a/server/src/com/cloud/vm/VmWorkStart.java
+++ b/server/src/com/cloud/vm/VmWorkStart.java
@@ -17,14 +17,32 @@
package com.cloud.vm;
+import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
-import com.cloud.api.ApiSerializerHelper;
+import org.apache.cloudstack.context.CallContext;
+import org.apache.cloudstack.framework.jobs.impl.JobSerializerHelper;
+import org.apache.log4j.Logger;
+
+import com.cloud.deploy.DataCenterDeployment;
import com.cloud.deploy.DeploymentPlan;
+import com.cloud.deploy.DeploymentPlanner.ExcludeList;
+import com.cloud.utils.Journal;
public class VmWorkStart extends VmWork {
- private DeploymentPlan plan;
+ private static final Logger s_logger = Logger.getLogger(VmWorkStart.class);
+
+ long dcId;
+ Long podId;
+ Long clusterId;
+ Long hostId;
+ Long poolId;
+ ExcludeList avoids;
+ Long physicalNetworkId;
+
+ String reservationId;
+ String journalName;
// use serialization friendly map
private Map<String, String> rawParams;
@@ -33,11 +51,34 @@ public class VmWorkStart extends VmWork {
}
public DeploymentPlan getPlan() {
+ // this is ugly, to work with legacy code, we need to re-construct the DeploymentPlan hard-codely
+ // this has to be refactored together with migrating legacy code into the new way
+
+ ReservationContext context = null;
+ if(reservationId != null) {
+ Journal journal = new Journal.LogJournal("VmWorkStart", s_logger);
+ context = new ReservationContextImpl(reservationId, journal, CallContext.current().getCallingUser(), CallContext.current().getCallingAccount());
+ }
+
+ DeploymentPlan plan = new DataCenterDeployment(
+ dcId, podId, clusterId, hostId, poolId, physicalNetworkId,
+ context);
return plan;
}
public void setPlan(DeploymentPlan plan) {
- this.plan = plan;
+ if(plan != null) {
+ dcId = plan.getDataCenterId();
+ podId = plan.getPodId();
+ clusterId = plan.getClusterId();
+ hostId = plan.getHostId();
+ poolId = plan.getPoolId();
+ physicalNetworkId = plan.getPhysicalNetworkId();
+ avoids = plan.getAvoids();
+
+ if(plan.getReservationContext() != null)
+ reservationId = plan.getReservationContext().getReservationId();
+ }
}
public Map<String, String> getRawParams() {
@@ -55,7 +96,7 @@ public class VmWorkStart extends VmWork {
// Strong-typing for VirtualMachineProfile.Param is really over-kill, have to deal with it anyway
for(Map.Entry<String, String> entry : rawParams.entrySet()) {
VirtualMachineProfile.Param key = new VirtualMachineProfile.Param(entry.getKey());
- Object val = ApiSerializerHelper.fromSerializedString(entry.getValue());
+ Object val = JobSerializerHelper.fromObjectSerializedString(entry.getValue());
map.put(key, val);
}
}
@@ -67,7 +108,8 @@ public class VmWorkStart extends VmWork {
if(params != null) {
rawParams = new HashMap<String, String>();
for(Map.Entry<VirtualMachineProfile.Param, Object> entry : params.entrySet()) {
- rawParams.put(entry.getKey().getName(), ApiSerializerHelper.toSerializedString(entry.getValue()));
+ rawParams.put(entry.getKey().getName(), JobSerializerHelper.toObjectSerializedString(
+ entry.getValue() instanceof Serializable ? (Serializable)entry.getValue() : entry.getValue().toString()));
}
}
}
[2/2] git commit: updated refs/heads/vmsync to 03a9445
Posted by ke...@apache.org.
Fix several assert revealed bugs
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f2717207
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f2717207
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f2717207
Branch: refs/heads/vmsync
Commit: f2717207aa4d721927913c2e7c283bfc8e1c74ec
Parents: d71e358
Author: Kelven Yang <ke...@gmail.com>
Authored: Tue Jun 11 18:02:33 2013 -0700
Committer: Kelven Yang <ke...@gmail.com>
Committed: Wed Jun 12 09:45:06 2013 -0700
----------------------------------------------------------------------
.../components-api/src/com/cloud/vm/VirtualMachineGuru.java | 7 -------
engine/schema/src/com/cloud/dc/dao/VlanDaoImpl.java | 2 +-
engine/schema/src/com/cloud/host/dao/HostDaoImpl.java | 2 +-
.../cloudstack/framework/jobs/impl/AsyncJobMonitor.java | 4 ++++
plugins/pom.xml | 2 ++
server/src/com/cloud/network/NetworkManagerImpl.java | 3 +++
server/test/com/cloud/async/AsyncJobTestConfiguration.java | 2 +-
server/test/com/cloud/async/TestAsyncJobManager.java | 2 +-
8 files changed, 13 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f2717207/engine/components-api/src/com/cloud/vm/VirtualMachineGuru.java
----------------------------------------------------------------------
diff --git a/engine/components-api/src/com/cloud/vm/VirtualMachineGuru.java b/engine/components-api/src/com/cloud/vm/VirtualMachineGuru.java
index c65a692..7f4cd0a 100644
--- a/engine/components-api/src/com/cloud/vm/VirtualMachineGuru.java
+++ b/engine/components-api/src/com/cloud/vm/VirtualMachineGuru.java
@@ -57,11 +57,4 @@ public interface VirtualMachineGuru {
* @return
*/
void prepareStop(VirtualMachineProfile profile);
-
- /**
- * VM work handlers
- * @param work
- */
-// void vmWorkStart(VmWork work);
-// void vmWorkStop(VmWork work);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f2717207/engine/schema/src/com/cloud/dc/dao/VlanDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/dc/dao/VlanDaoImpl.java b/engine/schema/src/com/cloud/dc/dao/VlanDaoImpl.java
index eb3bde9..6f5a01f 100755
--- a/engine/schema/src/com/cloud/dc/dao/VlanDaoImpl.java
+++ b/engine/schema/src/com/cloud/dc/dao/VlanDaoImpl.java
@@ -347,7 +347,7 @@ public class VlanDaoImpl extends GenericDaoBase<VlanVO, Long> implements VlanDao
@Override
public List<VlanVO> listZoneWideNonDedicatedVlans(long zoneId) {
SearchCriteria<VlanVO> sc = ZoneWideNonDedicatedVlanSearch.create();
- sc.setParameters("ZoneWideNonDedicatedVlanSearch", "zoneId", zoneId);
+ sc.setParameters("zoneId", zoneId);
return listBy(sc);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f2717207/engine/schema/src/com/cloud/host/dao/HostDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/host/dao/HostDaoImpl.java b/engine/schema/src/com/cloud/host/dao/HostDaoImpl.java
index 810b973..3f1b40e 100755
--- a/engine/schema/src/com/cloud/host/dao/HostDaoImpl.java
+++ b/engine/schema/src/com/cloud/host/dao/HostDaoImpl.java
@@ -386,7 +386,7 @@ public class HostDaoImpl extends GenericDaoBase<HostVO, Long> implements HostDao
@Override
public List<HostVO> listByDataCenterId(long id) {
SearchCriteria<HostVO> sc = DcSearch.create();
- sc.setParameters("dcId", id);
+ sc.setParameters("dc", id);
sc.setParameters("status", Status.Up);
sc.setParameters("type", Host.Type.Routing);
sc.setParameters("resourceState", ResourceState.Enabled);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f2717207/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobMonitor.java
----------------------------------------------------------------------
diff --git a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobMonitor.java b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobMonitor.java
index 29a4049..25f9583 100644
--- a/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobMonitor.java
+++ b/framework/jobs/src/org/apache/cloudstack/framework/jobs/impl/AsyncJobMonitor.java
@@ -109,6 +109,8 @@ public class AsyncJobMonitor extends ManagerBase {
public void registerActiveTask(long jobId) {
synchronized(this) {
+ s_logger.info("Add job-" + jobId + " into job monitoring");
+
assert(_activeTasks.get(jobId) == null);
long threadId = Thread.currentThread().getId();
@@ -124,6 +126,8 @@ public class AsyncJobMonitor extends ManagerBase {
public void unregisterActiveTask(long jobId) {
synchronized(this) {
+ s_logger.info("Remove job-" + jobId + " from job monitoring");
+
ActiveTaskRecord record = _activeTasks.get(jobId);
assert(record != null);
if(record != null) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f2717207/plugins/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pom.xml b/plugins/pom.xml
index eab4755..2c844f6 100755
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -99,6 +99,7 @@
<module>hypervisors/kvm</module>
</modules>
</profile>
+<!--
<profile>
<id>f5</id>
<activation>
@@ -132,6 +133,7 @@
<module>network-elements/juniper-srx</module>
</modules>
</profile>
+-->
<profile>
<id>vmware</id>
<activation>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f2717207/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java
index 0cbe99c..d197eba 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -1419,6 +1419,9 @@ public class NetworkManagerImpl extends ManagerBase implements NetworkManager, L
AssignIpAddressFromPodVlanSearch = _ipAddressDao.createSearchBuilder();
AssignIpAddressFromPodVlanSearch.and("dc", AssignIpAddressFromPodVlanSearch.entity().getDataCenterId(), Op.EQ);
AssignIpAddressFromPodVlanSearch.and("allocated", AssignIpAddressFromPodVlanSearch.entity().getAllocatedTime(), Op.NULL);
+
+ AssignIpAddressFromPodVlanSearch.and("vlanId", AssignIpAddressFromPodVlanSearch.entity().getVlanId(), Op.IN);
+
SearchBuilder<VlanVO> podVlanSearch = _vlanDao.createSearchBuilder();
podVlanSearch.and("type", podVlanSearch.entity().getVlanType(), Op.EQ);
podVlanSearch.and("networkId", podVlanSearch.entity().getNetworkId(), Op.EQ);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f2717207/server/test/com/cloud/async/AsyncJobTestConfiguration.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/async/AsyncJobTestConfiguration.java b/server/test/com/cloud/async/AsyncJobTestConfiguration.java
index 7195a75..d6b8ee0 100644
--- a/server/test/com/cloud/async/AsyncJobTestConfiguration.java
+++ b/server/test/com/cloud/async/AsyncJobTestConfiguration.java
@@ -6,7 +6,7 @@
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICEN SE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f2717207/server/test/com/cloud/async/TestAsyncJobManager.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/async/TestAsyncJobManager.java b/server/test/com/cloud/async/TestAsyncJobManager.java
index 6202e0d..d085777 100644
--- a/server/test/com/cloud/async/TestAsyncJobManager.java
+++ b/server/test/com/cloud/async/TestAsyncJobManager.java
@@ -101,7 +101,7 @@ public class TestAsyncJobManager extends TestCase {
@After
public void tearDown() {
Transaction.currentTxn().close();
- }
+ }
@Test
public void testJobJournal() {