Return-Path: X-Original-To: apmail-cloudstack-commits-archive@www.apache.org Delivered-To: apmail-cloudstack-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E2FF710E15 for ; Fri, 17 Jan 2014 23:39:37 +0000 (UTC) Received: (qmail 46811 invoked by uid 500); 17 Jan 2014 23:39:37 -0000 Delivered-To: apmail-cloudstack-commits-archive@cloudstack.apache.org Received: (qmail 46779 invoked by uid 500); 17 Jan 2014 23:39:37 -0000 Mailing-List: contact commits-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list commits@cloudstack.apache.org Received: (qmail 46772 invoked by uid 99); 17 Jan 2014 23:39:36 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Jan 2014 23:39:36 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 9AF7F37F17; Fri, 17 Jan 2014 23:39:36 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: edison@apache.org To: commits@cloudstack.apache.org Message-Id: <53e028bc70074034a62c98d5aec56aad@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: git commit: updated refs/heads/4.3 to 7c2449d Date: Fri, 17 Jan 2014 23:39:36 +0000 (UTC) Updated Branches: refs/heads/4.3 c2902db0b -> 7c2449dab CLOUDSTACK-5432:sync vm and storage commands on mgt server for kvm Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7c2449da Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7c2449da Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7c2449da Branch: refs/heads/4.3 Commit: 7c2449dabd75b4c88d8fa8aaf2477b3416b4747f Parents: c2902db Author: edison Authored: Wed Jan 15 17:08:15 2014 -0800 Committer: edison Committed: Fri Jan 17 15:23:43 2014 -0800 ---------------------------------------------------------------------- .../storage/command/AttachCommand.java | 6 ++++++ .../command/AttachPrimaryDataStoreCmd.java | 5 +++++ .../cloudstack/storage/command/CopyCommand.java | 4 ++++ .../storage/command/CreateObjectCommand.java | 4 ++++ .../command/CreatePrimaryDataStoreCmd.java | 4 ++++ .../storage/command/DeleteCommand.java | 4 ++++ .../storage/command/DettachCommand.java | 5 +++++ .../storage/command/ForgetObjectCmd.java | 5 +++++ .../storage/command/IntroduceObjectCmd.java | 5 +++++ .../command/StorageSubSystemCommand.java | 2 +- .../com/cloud/vm/VirtualMachineManagerImpl.java | 20 ++++++++++++-------- server/src/com/cloud/hypervisor/KVMGuru.java | 18 +++++++++++++++--- 12 files changed, 70 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c2449da/core/src/org/apache/cloudstack/storage/command/AttachCommand.java ---------------------------------------------------------------------- diff --git a/core/src/org/apache/cloudstack/storage/command/AttachCommand.java b/core/src/org/apache/cloudstack/storage/command/AttachCommand.java index 7e47ba4..303457b 100644 --- a/core/src/org/apache/cloudstack/storage/command/AttachCommand.java +++ b/core/src/org/apache/cloudstack/storage/command/AttachCommand.java @@ -24,6 +24,7 @@ import com.cloud.agent.api.to.DiskTO; public final class AttachCommand extends Command implements StorageSubSystemCommand { private DiskTO disk; private String vmName; + private boolean inSeq = false; public AttachCommand(DiskTO disk, String vmName) { super(); @@ -51,4 +52,9 @@ public final class AttachCommand extends Command implements StorageSubSystemComm public void setVmName(String vmName) { this.vmName = vmName; } + + @Override + public void setExecuteInSequence(boolean inSeq) { + this.inSeq = inSeq; + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c2449da/core/src/org/apache/cloudstack/storage/command/AttachPrimaryDataStoreCmd.java ---------------------------------------------------------------------- diff --git a/core/src/org/apache/cloudstack/storage/command/AttachPrimaryDataStoreCmd.java b/core/src/org/apache/cloudstack/storage/command/AttachPrimaryDataStoreCmd.java index 2083876..25679ba 100644 --- a/core/src/org/apache/cloudstack/storage/command/AttachPrimaryDataStoreCmd.java +++ b/core/src/org/apache/cloudstack/storage/command/AttachPrimaryDataStoreCmd.java @@ -21,6 +21,11 @@ package org.apache.cloudstack.storage.command; import com.cloud.agent.api.Command; public final class AttachPrimaryDataStoreCmd extends Command implements StorageSubSystemCommand { + @Override + public void setExecuteInSequence(boolean inSeq) { + + } + private final String dataStore; public AttachPrimaryDataStoreCmd(String uri) { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c2449da/core/src/org/apache/cloudstack/storage/command/CopyCommand.java ---------------------------------------------------------------------- diff --git a/core/src/org/apache/cloudstack/storage/command/CopyCommand.java b/core/src/org/apache/cloudstack/storage/command/CopyCommand.java index a4ab070..e4681b8 100644 --- a/core/src/org/apache/cloudstack/storage/command/CopyCommand.java +++ b/core/src/org/apache/cloudstack/storage/command/CopyCommand.java @@ -79,4 +79,8 @@ public final class CopyCommand extends Command implements StorageSubSystemComman return options; } + @Override + public void setExecuteInSequence(boolean inSeq) { + this.executeInSequence = inSeq; + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c2449da/core/src/org/apache/cloudstack/storage/command/CreateObjectCommand.java ---------------------------------------------------------------------- diff --git a/core/src/org/apache/cloudstack/storage/command/CreateObjectCommand.java b/core/src/org/apache/cloudstack/storage/command/CreateObjectCommand.java index 121a7ee..8c239b5 100644 --- a/core/src/org/apache/cloudstack/storage/command/CreateObjectCommand.java +++ b/core/src/org/apache/cloudstack/storage/command/CreateObjectCommand.java @@ -42,4 +42,8 @@ public final class CreateObjectCommand extends Command implements StorageSubSyst return this.data; } + @Override + public void setExecuteInSequence(boolean inSeq) { + + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c2449da/core/src/org/apache/cloudstack/storage/command/CreatePrimaryDataStoreCmd.java ---------------------------------------------------------------------- diff --git a/core/src/org/apache/cloudstack/storage/command/CreatePrimaryDataStoreCmd.java b/core/src/org/apache/cloudstack/storage/command/CreatePrimaryDataStoreCmd.java index b536028..21716cf 100644 --- a/core/src/org/apache/cloudstack/storage/command/CreatePrimaryDataStoreCmd.java +++ b/core/src/org/apache/cloudstack/storage/command/CreatePrimaryDataStoreCmd.java @@ -35,4 +35,8 @@ public final class CreatePrimaryDataStoreCmd extends Command implements StorageS return false; } + @Override + public void setExecuteInSequence(boolean inSeq) { + + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c2449da/core/src/org/apache/cloudstack/storage/command/DeleteCommand.java ---------------------------------------------------------------------- diff --git a/core/src/org/apache/cloudstack/storage/command/DeleteCommand.java b/core/src/org/apache/cloudstack/storage/command/DeleteCommand.java index 76696da..7445050 100644 --- a/core/src/org/apache/cloudstack/storage/command/DeleteCommand.java +++ b/core/src/org/apache/cloudstack/storage/command/DeleteCommand.java @@ -42,4 +42,8 @@ public final class DeleteCommand extends Command implements StorageSubSystemComm return this.data; } + @Override + public void setExecuteInSequence(boolean inSeq) { + + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c2449da/core/src/org/apache/cloudstack/storage/command/DettachCommand.java ---------------------------------------------------------------------- diff --git a/core/src/org/apache/cloudstack/storage/command/DettachCommand.java b/core/src/org/apache/cloudstack/storage/command/DettachCommand.java index 61cb88b..1e501d9 100644 --- a/core/src/org/apache/cloudstack/storage/command/DettachCommand.java +++ b/core/src/org/apache/cloudstack/storage/command/DettachCommand.java @@ -87,4 +87,9 @@ public class DettachCommand extends Command implements StorageSubSystemCommand { public int getStoragePort() { return _storagePort; } + + @Override + public void setExecuteInSequence(boolean inSeq) { + + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c2449da/core/src/org/apache/cloudstack/storage/command/ForgetObjectCmd.java ---------------------------------------------------------------------- diff --git a/core/src/org/apache/cloudstack/storage/command/ForgetObjectCmd.java b/core/src/org/apache/cloudstack/storage/command/ForgetObjectCmd.java index 58fb780..919dc36 100644 --- a/core/src/org/apache/cloudstack/storage/command/ForgetObjectCmd.java +++ b/core/src/org/apache/cloudstack/storage/command/ForgetObjectCmd.java @@ -34,4 +34,9 @@ public class ForgetObjectCmd extends Command implements StorageSubSystemCommand public boolean executeInSequence() { return false; } + + @Override + public void setExecuteInSequence(boolean inSeq) { + + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c2449da/core/src/org/apache/cloudstack/storage/command/IntroduceObjectCmd.java ---------------------------------------------------------------------- diff --git a/core/src/org/apache/cloudstack/storage/command/IntroduceObjectCmd.java b/core/src/org/apache/cloudstack/storage/command/IntroduceObjectCmd.java index 1aabed2..a2be64f 100644 --- a/core/src/org/apache/cloudstack/storage/command/IntroduceObjectCmd.java +++ b/core/src/org/apache/cloudstack/storage/command/IntroduceObjectCmd.java @@ -35,4 +35,9 @@ public class IntroduceObjectCmd extends Command implements StorageSubSystemComma public boolean executeInSequence() { return false; } + + @Override + public void setExecuteInSequence(boolean inSeq) { + + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c2449da/core/src/org/apache/cloudstack/storage/command/StorageSubSystemCommand.java ---------------------------------------------------------------------- diff --git a/core/src/org/apache/cloudstack/storage/command/StorageSubSystemCommand.java b/core/src/org/apache/cloudstack/storage/command/StorageSubSystemCommand.java index d14161a..fb7b373 100644 --- a/core/src/org/apache/cloudstack/storage/command/StorageSubSystemCommand.java +++ b/core/src/org/apache/cloudstack/storage/command/StorageSubSystemCommand.java @@ -19,5 +19,5 @@ package org.apache.cloudstack.storage.command; public interface StorageSubSystemCommand { - + void setExecuteInSequence(boolean inSeq); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c2449da/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java ---------------------------------------------------------------------- diff --git a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java index 67858b4..e8422d5 100755 --- a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java @@ -974,7 +974,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac handlePath(vmTO.getDisks(), vm.getHypervisorType()); cmds = new Commands(Command.OnError.Stop); - cmds.addCommand(new StartCommand(vmTO, dest.getHost(), getExecuteInSequence())); + cmds.addCommand(new StartCommand(vmTO, dest.getHost(), getExecuteInSequence(vm.getHypervisorType()))); vmGuru.finalizeDeployment(cmds, vmProfile, dest, ctx); @@ -1017,7 +1017,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac s_logger.info("The guru did not like the answers so stopping " + vm); } - StopCommand cmd = new StopCommand(vm, getExecuteInSequence()); + StopCommand cmd = new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType())); StopAnswer answer = (StopAnswer) _agentMgr.easySend(destHostId, cmd); if ( answer != null ) { if (vm.getType() == VirtualMachine.Type.User) { @@ -1179,13 +1179,17 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac } } - protected boolean getExecuteInSequence() { - return ExecuteInSequence.value(); + protected boolean getExecuteInSequence(HypervisorType hypervisorType) { + if (HypervisorType.KVM == hypervisorType) { + return false; + } else { + return ExecuteInSequence.value(); + } } protected boolean sendStop(VirtualMachineGuru guru, VirtualMachineProfile profile, boolean force) { VirtualMachine vm = profile.getVirtualMachine(); - StopCommand stop = new StopCommand(vm, getExecuteInSequence()); + StopCommand stop = new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType())); try { StopAnswer answer = (StopAnswer) _agentMgr.send(vm.getHostId(), stop); if ( answer != null ) { @@ -1431,7 +1435,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac } vmGuru.prepareStop(profile); - StopCommand stop = new StopCommand(vm, getExecuteInSequence()); + StopCommand stop = new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType())); boolean stopped = false; StopAnswer answer = null; try { @@ -2325,11 +2329,11 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac } public Command cleanup(VirtualMachine vm) { - return new StopCommand(vm, getExecuteInSequence()); + return new StopCommand(vm, getExecuteInSequence(vm.getHypervisorType())); } public Command cleanup(String vmName) { - return new StopCommand(vmName, getExecuteInSequence()); + return new StopCommand(vmName, getExecuteInSequence(null)); } public Commands fullHostSync(final long hostId, StartupRoutingCommand startup) { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c2449da/server/src/com/cloud/hypervisor/KVMGuru.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/hypervisor/KVMGuru.java b/server/src/com/cloud/hypervisor/KVMGuru.java index 58e46e1..5497224 100644 --- a/server/src/com/cloud/hypervisor/KVMGuru.java +++ b/server/src/com/cloud/hypervisor/KVMGuru.java @@ -19,16 +19,19 @@ package com.cloud.hypervisor; import javax.ejb.Local; import javax.inject.Inject; +import com.cloud.agent.api.Command; import com.cloud.agent.api.to.VirtualMachineTO; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.storage.GuestOSVO; import com.cloud.storage.dao.GuestOSDao; +import com.cloud.utils.Pair; import com.cloud.vm.VirtualMachineProfile; +import org.apache.cloudstack.storage.command.StorageSubSystemCommand; @Local(value=HypervisorGuru.class) public class KVMGuru extends HypervisorGuruBase implements HypervisorGuru { @Inject GuestOSDao _guestOsDao; - + @Override public HypervisorType getHypervisorType() { return HypervisorType.KVM; @@ -48,8 +51,17 @@ public class KVMGuru extends HypervisorGuruBase implements HypervisorGuru { return to; } - - @Override + + @Override + public Pair getCommandHostDelegation(long hostId, Command cmd) { + if (cmd instanceof StorageSubSystemCommand) { + StorageSubSystemCommand c = (StorageSubSystemCommand)cmd; + c.setExecuteInSequence(false); + } + return new Pair(false, new Long(hostId)); + } + + @Override public boolean trackVmHostChange() { return false; }