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
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,22 @@
* Created by LiangHanYu on 2021/8/13 16:32
*/
public class CompareCpuFunctionOnHostReply extends MessageReply {
private boolean match;
private String compareError;

public boolean isMatch() {
return match;
}

public void setMatch(boolean match) {
this.match = match;
}

public String getCompareError() {
return compareError;
}

public void setCompareError(String compareError) {
this.compareError = compareError;
}
}
18 changes: 18 additions & 0 deletions plugin/kvm/src/main/java/org/zstack/kvm/KVMAgentCommands.java
Original file line number Diff line number Diff line change
Expand Up @@ -3770,6 +3770,24 @@ public void setCpuXml(String cpuXml) {
}

public static class VmCompareCpuFunctionResponse extends AgentResponse {
private boolean match = true;
private String compareError;

public boolean isMatch() {
return match;
}

public void setMatch(boolean match) {
this.match = match;
}

public String getCompareError() {
return compareError;
}

public void setCompareError(String compareError) {
this.compareError = compareError;
}
}

public static class MergeSnapshotRsp extends AgentResponse {
Expand Down
18 changes: 11 additions & 7 deletions plugin/kvm/src/main/java/org/zstack/kvm/KVMHost.java
Original file line number Diff line number Diff line change
Expand Up @@ -1492,14 +1492,12 @@ public void fail(ErrorCode errorCode) {
}

private void handle(CompareCpuFunctionOnHostMsg msg) {
CompareCpuFunctionOnHostReply reply = new CompareCpuFunctionOnHostReply();

thdf.singleFlightSubmit(new SingleFlightTask(msg)
.setSyncSignature(String.format("compare-host-%s-cpu-function-xml-on-host-%s", msg.getSrcHostUuid(), msg.getDstHostUuid()))
.run((com) -> compareCpuFunctionOnHost(msg, new ReturnValueCompletion<CompareCpuFunctionOnHostReply>(com) {
.run((com) -> compareCpuFunctionOnHost(msg, new ReturnValueCompletion<VmCompareCpuFunctionResponse>(com) {
@Override
public void success(CompareCpuFunctionOnHostReply returnValue) {
com.success(returnValue);
public void success(VmCompareCpuFunctionResponse resp) {
com.success(resp);
}

@Override
Expand All @@ -1508,14 +1506,20 @@ public void fail(ErrorCode errorCode) {
}
}))
.done(((result) -> {
CompareCpuFunctionOnHostReply reply = new CompareCpuFunctionOnHostReply();
if (!result.isSuccess()) {
reply.setError(result.getErrorCode());
bus.reply(msg, reply);
return;
}
VmCompareCpuFunctionResponse resp = (VmCompareCpuFunctionResponse)result.getResult();
reply.setMatch(resp.isMatch());
reply.setCompareError(resp.getCompareError());
bus.reply(msg, reply);
})));
}

private void compareCpuFunctionOnHost(final CompareCpuFunctionOnHostMsg msg, ReturnValueCompletion<CompareCpuFunctionOnHostReply> completion) {
private void compareCpuFunctionOnHost(final CompareCpuFunctionOnHostMsg msg, ReturnValueCompletion<VmCompareCpuFunctionResponse> completion) {
VmCompareCpuFunctionCmd cmd = new VmCompareCpuFunctionCmd();
cmd.setCpuXml(msg.getCpuXml());
restf.asyncJsonPost(compareCpuFunctionPath, cmd, new JsonAsyncRESTCallback<VmCompareCpuFunctionResponse>(completion) {
Expand All @@ -1525,7 +1529,7 @@ public void success(VmCompareCpuFunctionResponse ret) {
completion.fail(operr(ret.getError()));
return;
}
completion.success(new CompareCpuFunctionOnHostReply());
completion.success(ret);
}

@Override
Expand Down