You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by mc...@apache.org on 2013/08/16 02:52:55 UTC
git commit: updated refs/heads/4.2 to f856c35
Updated Branches:
refs/heads/4.2 3eacdb154 -> f856c359e
CLOUDSTACK-3229: deleteSnapshotBackup failed on devcloud due to
different SR mount point on devcloud hypervisor.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f856c359
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f856c359
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f856c359
Branch: refs/heads/4.2
Commit: f856c359eb274c6cbbb2656c791b461ac4a4c49d
Parents: 3eacdb1
Author: Min Chen <mi...@citrix.com>
Authored: Thu Aug 15 17:52:25 2013 -0700
Committer: Min Chen <mi...@citrix.com>
Committed: Thu Aug 15 17:52:44 2013 -0700
----------------------------------------------------------------------
.../hypervisor/xen/resource/XcpOssResource.java | 105 ++++++++++---------
.../xen/resource/XenServerStorageProcessor.java | 4 +
2 files changed, 62 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f856c359/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java
index 5261ca0..cb885c3 100644
--- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java
+++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XcpOssResource.java
@@ -41,6 +41,8 @@ import com.cloud.agent.api.to.NicTO;
import com.cloud.agent.api.to.VirtualMachineTO;
import com.cloud.network.Networks.TrafficType;
import com.cloud.resource.ServerResource;
+import com.cloud.storage.resource.StorageSubsystemCommandHandler;
+import com.cloud.storage.resource.StorageSubsystemCommandHandlerBase;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.script.Script;
import com.cloud.vm.VirtualMachine;
@@ -71,35 +73,36 @@ public class XcpOssResource extends CitrixResourceBase {
}
@Override
- protected void fillHostInfo(Connection conn, StartupRoutingCommand cmd) {
- super.fillHostInfo(conn, cmd);
- cmd.setCaps(cmd.getCapabilities() + " , hvm");
+ protected void fillHostInfo(Connection conn, StartupRoutingCommand cmd) {
+ super.fillHostInfo(conn, cmd);
+ cmd.setCaps(cmd.getCapabilities() + " , hvm");
}
@Override
protected String getGuestOsType(String stdType, boolean bootFromCD) {
- if (stdType.equalsIgnoreCase("Debian GNU/Linux 6(64-bit)")) {
- return "Debian Squeeze 6.0 (64-bit)";
- } else {
- return CitrixHelper.getXcpGuestOsType(stdType);
- }
+ if (stdType.equalsIgnoreCase("Debian GNU/Linux 6(64-bit)")) {
+ return "Debian Squeeze 6.0 (64-bit)";
+ } else {
+ return CitrixHelper.getXcpGuestOsType(stdType);
+ }
}
+ @Override
protected VBD createPatchVbd(Connection conn, String vmName, VM vm) throws XmlRpcException, XenAPIException {
- if (_host.localSRuuid != null) {
- //create an iso vdi on it
- String result = callHostPlugin(conn, "vmops", "createISOVHD", "uuid", _host.localSRuuid);
- if (result == null || result.equalsIgnoreCase("Failed")) {
- throw new CloudRuntimeException("can not create systemvm vdi");
- }
-
- Set<VDI> vdis = VDI.getByNameLabel(conn, "systemvm-vdi");
- if (vdis.size() != 1) {
- throw new CloudRuntimeException("can not find systemvmiso");
- }
- VDI systemvmVDI = vdis.iterator().next();
-
- VBD.Record cdromVBDR = new VBD.Record();
+ if (_host.localSRuuid != null) {
+ //create an iso vdi on it
+ String result = callHostPlugin(conn, "vmops", "createISOVHD", "uuid", _host.localSRuuid);
+ if (result == null || result.equalsIgnoreCase("Failed")) {
+ throw new CloudRuntimeException("can not create systemvm vdi");
+ }
+
+ Set<VDI> vdis = VDI.getByNameLabel(conn, "systemvm-vdi");
+ if (vdis.size() != 1) {
+ throw new CloudRuntimeException("can not find systemvmiso");
+ }
+ VDI systemvmVDI = vdis.iterator().next();
+
+ VBD.Record cdromVBDR = new VBD.Record();
cdromVBDR.VM = vm;
cdromVBDR.empty = false;
cdromVBDR.bootable = false;
@@ -109,9 +112,9 @@ public class XcpOssResource extends CitrixResourceBase {
cdromVBDR.VDI = systemvmVDI;
VBD cdromVBD = VBD.create(conn, cdromVBDR);
return cdromVBD;
- } else {
- throw new CloudRuntimeException("can not find local sr");
- }
+ } else {
+ throw new CloudRuntimeException("can not find local sr");
+ }
}
@@ -143,36 +146,44 @@ public class XcpOssResource extends CitrixResourceBase {
@Override
public StartAnswer execute(StartCommand cmd) {
- StartAnswer answer = super.execute(cmd);
-
- VirtualMachineTO vmSpec = cmd.getVirtualMachine();
- if (vmSpec.getType() == VirtualMachine.Type.ConsoleProxy) {
- Connection conn = getConnection();
- String publicIp = null;
- for (NicTO nic : vmSpec.getNics()) {
- if (nic.getType() == TrafficType.Guest) {
- publicIp = nic.getIp();
- }
- }
- callHostPlugin(conn, "vmops", "setDNATRule", "ip", publicIp, "port", "8443", "add", "true");
- }
-
- return answer;
+ StartAnswer answer = super.execute(cmd);
+
+ VirtualMachineTO vmSpec = cmd.getVirtualMachine();
+ if (vmSpec.getType() == VirtualMachine.Type.ConsoleProxy) {
+ Connection conn = getConnection();
+ String publicIp = null;
+ for (NicTO nic : vmSpec.getNics()) {
+ if (nic.getType() == TrafficType.Guest) {
+ publicIp = nic.getIp();
+ }
+ }
+ callHostPlugin(conn, "vmops", "setDNATRule", "ip", publicIp, "port", "8443", "add", "true");
+ }
+
+ return answer;
}
@Override
public StopAnswer execute(StopCommand cmd) {
- StopAnswer answer = super.execute(cmd);
- String vmName = cmd.getVmName();
- if (vmName.startsWith("v-")) {
- Connection conn = getConnection();
- callHostPlugin(conn, "vmops", "setDNATRule", "add", "false");
- }
- return answer;
+ StopAnswer answer = super.execute(cmd);
+ String vmName = cmd.getVmName();
+ if (vmName.startsWith("v-")) {
+ Connection conn = getConnection();
+ callHostPlugin(conn, "vmops", "setDNATRule", "add", "false");
+ }
+ return answer;
}
@Override
protected void setMemory(Connection conn, VM vm, long minMemsize, long maxMemsize) throws XmlRpcException, XenAPIException {
vm.setMemoryLimits(conn, mem_32m, maxMemsize, minMemsize, maxMemsize);
}
+
+ @Override
+ protected StorageSubsystemCommandHandler getStorageHandler() {
+ XenServerStorageProcessor processor = new XenServerStorageProcessor(this);
+ processor.setBaseMountPointOnHost("/run/cloud_mount"); // sr mount point on devcloud
+ return new StorageSubsystemCommandHandlerBase(processor);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f856c359/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
index 60f1ef9..39ecd9a 100644
--- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
+++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
@@ -91,6 +91,10 @@ public class XenServerStorageProcessor implements StorageProcessor {
this.hypervisorResource = resource;
}
+ public void setBaseMountPointOnHost(String baseMountPointOnHost) {
+ BaseMountPointOnHost = baseMountPointOnHost;
+ }
+
@Override
public AttachAnswer attachIso(AttachCommand cmd) {
DiskTO disk = cmd.getDisk();