Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions plugin/kvm/src/main/java/org/zstack/kvm/KVMHost.java
Original file line number Diff line number Diff line change
Expand Up @@ -2716,7 +2716,7 @@ public void done() {
private void handle(final KVMHotPlugVmShmemMsg msg) {
KVMAgentCommands.HotPlugVmShmemCmd cmd = new KVMAgentCommands.HotPlugVmShmemCmd();
cmd.vmUuid = msg.getVmUuid();
cmd.shmem = msg.getShmem();
cmd.shmem = buildVmShmemDevice(msg.getShmemName(), msg.getShmemPath(), msg.getShmemSize());

sendVmShmemCommand(msg, cmd, KVMConstant.KVM_VM_SHMEM_HOTPLUG_PATH,
KVMAgentCommands.HotPlugVmShmemRsp.class);
Expand All @@ -2725,12 +2725,20 @@ private void handle(final KVMHotPlugVmShmemMsg msg) {
private void handle(final KVMHotUnplugVmShmemMsg msg) {
KVMAgentCommands.HotUnplugVmShmemCmd cmd = new KVMAgentCommands.HotUnplugVmShmemCmd();
cmd.vmUuid = msg.getVmUuid();
cmd.shmem = msg.getShmem();
cmd.shmem = buildVmShmemDevice(msg.getShmemName(), msg.getShmemPath(), msg.getShmemSize());

sendVmShmemCommand(msg, cmd, KVMConstant.KVM_VM_SHMEM_HOTUNPLUG_PATH,
KVMAgentCommands.HotUnplugVmShmemRsp.class);
}

private KVMAgentCommands.VmShmemDevice buildVmShmemDevice(String name, String path, long size) {
KVMAgentCommands.VmShmemDevice shmem = new KVMAgentCommands.VmShmemDevice();
shmem.name = name;
shmem.path = path;
shmem.size = size;
return shmem;
}

private <T extends AgentResponse> void sendVmShmemCommand(NeedReplyMessage origin,
Object cmd,
String path,
Expand Down
47 changes: 40 additions & 7 deletions plugin/kvm/src/main/java/org/zstack/kvm/KVMHotPlugVmShmemMsg.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,63 @@
public class KVMHotPlugVmShmemMsg extends NeedReplyMessage implements HostMessage {
private String hostUuid;
private String vmUuid;
private KVMAgentCommands.VmShmemDevice shmem;
private String shmemName;
private String shmemPath;
private long shmemSize;

@Override
public String getHostUuid() {
return hostUuid;
}

public void setHostUuid(String hostUuid) {
this.hostUuid = hostUuid;
this.hostUuid = normalize(hostUuid, "hostUuid");
}

public String getVmUuid() {
return vmUuid;
}

public void setVmUuid(String vmUuid) {
this.vmUuid = vmUuid;
this.vmUuid = normalize(vmUuid, "vmUuid");
}

public KVMAgentCommands.VmShmemDevice getShmem() {
return shmem;
public String getShmemName() {
return shmemName;
}

public void setShmem(KVMAgentCommands.VmShmemDevice shmem) {
this.shmem = shmem;
public void setShmemName(String shmemName) {
this.shmemName = normalize(shmemName, "shmemName");
}

public String getShmemPath() {
return shmemPath;
}

public void setShmemPath(String shmemPath) {
this.shmemPath = normalize(shmemPath, "shmemPath");
}

public long getShmemSize() {
return shmemSize;
}

public void setShmemSize(long shmemSize) {
if (shmemSize <= 0) {
throw new IllegalArgumentException("shmemSize must be greater than 0");
}
this.shmemSize = shmemSize;
}

private String normalize(String value, String fieldName) {
if (value == null) {
return null;
}

String normalized = value.trim();
if (normalized.isEmpty()) {
throw new IllegalArgumentException(fieldName + " cannot be empty");
}
return normalized;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,63 @@
public class KVMHotUnplugVmShmemMsg extends NeedReplyMessage implements HostMessage {
private String hostUuid;
private String vmUuid;
private KVMAgentCommands.VmShmemDevice shmem;
private String shmemName;
private String shmemPath;
private long shmemSize;

@Override
public String getHostUuid() {
return hostUuid;
}

public void setHostUuid(String hostUuid) {
this.hostUuid = hostUuid;
this.hostUuid = normalize(hostUuid, "hostUuid");
}

public String getVmUuid() {
return vmUuid;
}

public void setVmUuid(String vmUuid) {
this.vmUuid = vmUuid;
this.vmUuid = normalize(vmUuid, "vmUuid");
}

public KVMAgentCommands.VmShmemDevice getShmem() {
return shmem;
public String getShmemName() {
return shmemName;
}

public void setShmem(KVMAgentCommands.VmShmemDevice shmem) {
this.shmem = shmem;
public void setShmemName(String shmemName) {
this.shmemName = normalize(shmemName, "shmemName");
}

public String getShmemPath() {
return shmemPath;
}

public void setShmemPath(String shmemPath) {
this.shmemPath = normalize(shmemPath, "shmemPath");
}

public long getShmemSize() {
return shmemSize;
}

public void setShmemSize(long shmemSize) {
if (shmemSize <= 0) {
throw new IllegalArgumentException("shmemSize must be greater than 0");
}
this.shmemSize = shmemSize;
}

private String normalize(String value, String fieldName) {
if (value == null) {
return null;
}

String normalized = value.trim();
if (normalized.isEmpty()) {
throw new IllegalArgumentException(fieldName + " cannot be empty");
}
return normalized;
}
}
7 changes: 0 additions & 7 deletions sdk/src/main/java/org/zstack/sdk/SetVmDGpuStrategyResult.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
import java.util.Map;
import org.zstack.sdk.*;

public class SetVmDGpuStrategyAction extends AbstractAction {
public class UpdateVmDGpuAction extends AbstractAction {

private static final HashMap<String, Parameter> parameterMap = new HashMap<>();

private static final HashMap<String, Parameter> nonAPIParameterMap = new HashMap<>();

public static class Result {
public ErrorCode error;
public org.zstack.sdk.SetVmDGpuStrategyResult value;
public org.zstack.sdk.UpdateVmDGpuResult value;

public Result throwExceptionIfError() {
if (error != null) {
Expand Down Expand Up @@ -72,8 +72,8 @@ private Result makeResult(ApiResult res) {
return ret;
}

org.zstack.sdk.SetVmDGpuStrategyResult value = res.getResult(org.zstack.sdk.SetVmDGpuStrategyResult.class);
ret.value = value == null ? new org.zstack.sdk.SetVmDGpuStrategyResult() : value;
org.zstack.sdk.UpdateVmDGpuResult value = res.getResult(org.zstack.sdk.UpdateVmDGpuResult.class);
ret.value = value == null ? new org.zstack.sdk.UpdateVmDGpuResult() : value;

return ret;
}
Expand Down Expand Up @@ -106,7 +106,7 @@ protected RestInfo getRestInfo() {
info.path = "/vm-instances/{vmInstanceUuid}/actions";
info.needSession = true;
info.needPoll = true;
info.parameterName = "setVmDGpuStrategy";
info.parameterName = "updateVmDGpu";
return info;
}

Expand Down
7 changes: 7 additions & 0 deletions sdk/src/main/java/org/zstack/sdk/UpdateVmDGpuResult.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.zstack.sdk;



public class UpdateVmDGpuResult {

}
4 changes: 2 additions & 2 deletions testlib/src/main/java/org/zstack/testlib/ApiHelper.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -40519,8 +40519,8 @@ abstract class ApiHelper {
}


def setVmDGpuStrategy(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.SetVmDGpuStrategyAction.class) Closure c) {
def a = new org.zstack.sdk.SetVmDGpuStrategyAction()
def updateVmDGpu(@DelegatesTo(strategy = Closure.OWNER_FIRST, value = org.zstack.sdk.UpdateVmDGpuAction.class) Closure c) {
def a = new org.zstack.sdk.UpdateVmDGpuAction()
a.sessionId = Test.currentEnvSpec?.session?.uuid
c.resolveStrategy = Closure.OWNER_FIRST
c.delegate = a
Expand Down