Skip to content
Merged
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 @@ -19,14 +19,14 @@
import java.util.Date;
import java.util.List;

import com.google.gson.annotations.SerializedName;

import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseResponse;
import org.apache.cloudstack.api.EntityReference;

import com.cloud.host.Status;
import com.cloud.serializer.Param;
import com.cloud.vm.VirtualMachine;
import com.google.gson.annotations.SerializedName;

@EntityReference(value = VirtualMachine.class)
public class SystemVmResponse extends BaseResponse {
Expand Down Expand Up @@ -138,6 +138,10 @@ public class SystemVmResponse extends BaseResponse {
@Param(description = "the state of the system VM")
private String state;

@SerializedName("agentstate")
@Param(description = "the agent state of the system VM", since = "4.13.1")
private String agentState;

@SerializedName("activeviewersessions")
@Param(description = "the number of active console sessions for the console proxy system vm")
private Integer activeViewerSessions;
Expand All @@ -150,6 +154,14 @@ public class SystemVmResponse extends BaseResponse {
@Param(description = "public vlan range")
private List<String> publicVlan;

@SerializedName("lastpinged")
@Param(description = "the date and time the host was last pinged", since = "4.13.1")
private Date lastPinged;

@SerializedName("version")
@Param(description = "the systemvm agent version", since = "4.13.1")
private String version;

@Override
public String getObjectId() {
return this.getId();
Expand Down Expand Up @@ -331,6 +343,18 @@ public void setState(String state) {
this.state = state;
}

public String getAgentState() {
return agentState;
}

public void setAgentState(Status agentState) {
if (agentState != null) {
this.agentState = agentState.toString();
} else {
this.agentState = Status.Unknown.toString();
}
}

public Integer getActiveViewerSessions() {
return activeViewerSessions;
}
Expand Down Expand Up @@ -378,4 +402,20 @@ public List<String> getPublicVlan() {
public void setPublicVlan(List<String> publicVlan) {
this.publicVlan = publicVlan;
}

public Date getLastPinged() {
return lastPinged;
}

public void setLastPinged(Date lastPinged) {
this.lastPinged = lastPinged;
}

public String getVersion() {
return version;
}

public void setVersion(String version) {
this.version = version;
}
}
7 changes: 5 additions & 2 deletions server/src/main/java/com/cloud/api/ApiResponseHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@

import javax.inject.Inject;

import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.affinity.AffinityGroup;
Expand Down Expand Up @@ -336,6 +334,8 @@
import com.cloud.vm.dao.NicExtraDhcpOptionDao;
import com.cloud.vm.dao.NicSecondaryIpVO;
import com.cloud.vm.snapshot.VMSnapshot;
import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao;

public class ApiResponseHelper implements ResponseGenerator {

Expand Down Expand Up @@ -1375,6 +1375,9 @@ public SystemVmResponse createSystemVmResponse(VirtualMachine vm) {
vmResponse.setHostId(host.getUuid());
vmResponse.setHostName(host.getName());
vmResponse.setHypervisor(host.getHypervisorType().toString());
vmResponse.setAgentState(host.getStatus());
vmResponse.setLastPinged(new Date(host.getLastPinged()));
vmResponse.setVersion(host.getVersion());
}
}

Expand Down
31 changes: 4 additions & 27 deletions ui/scripts/system.js
Original file line number Diff line number Diff line change
Expand Up @@ -9368,7 +9368,7 @@
url: createURL('listSystemVms'),
data: data,
success: function (json) {
var systemvmObjs = json.listsystemvmsresponse.systemvm;
var systemvmObjs = json.listsystemvmsresponse.systemvm || [];
$(systemvmObjs).each(function(idx, item) {
var controlIp = item.linklocalip;
if (item.hypervisor == "VMware") {
Expand All @@ -9377,32 +9377,9 @@
item.controlip = controlIp;
});

if (systemvmObjs != undefined) {
$.ajax({
url: createURL('listHosts'),
data: {
details: 'min'
},
success: function (json) {
var hostObjs = json.listhostsresponse.host;
for (var i = 0; i < systemvmObjs.length; i++) {
for (var k = 0; k < hostObjs.length; k++) {
if (hostObjs[k].name == systemvmObjs[i].name) {
systemvmObjs[i].agentstate = hostObjs[k].state;
break;
}
}
}
args.response.success({
data: systemvmObjs
});
}
});
} else {
args.response.success({
data:[]
});
}
args.response.success({
data: systemvmObjs
});
}
});
},
Expand Down