Skip to content

Commit 949cf71

Browse files
authored
api: Display last updated time for VM (#4685)
Add a field in api response and ui to display last updated time
1 parent 2f8d557 commit 949cf71

File tree

6 files changed

+28
-0
lines changed

6 files changed

+28
-0
lines changed

api/src/main/java/org/apache/cloudstack/api/response/UserVmResponse.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,10 @@ public class UserVmResponse extends BaseResponseWithTagInformation implements Co
8282
@Param(description = "the date when this virtual machine was created")
8383
private Date created;
8484

85+
@SerializedName("lastupdated")
86+
@Param(description="the date when this virtual machine was updated last time", since="4.16.0")
87+
private Date lastUpdated;
88+
8589
@SerializedName(ApiConstants.STATE)
8690
@Param(description = "the state of the virtual machine")
8791
private String state;
@@ -911,4 +915,12 @@ public String getOsDisplayName() {
911915
public String getPoolType() { return poolType; }
912916

913917
public void setPoolType(String poolType) { this.poolType = poolType; }
918+
919+
public void setLastUpdated(Date lastUpdated) {
920+
this.lastUpdated = lastUpdated;
921+
}
922+
923+
public Date getLastUpdated() {
924+
return lastUpdated;
925+
}
914926
}

engine/schema/src/main/resources/META-INF/db/schema-41510to41600.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,7 @@ SELECT
422422
`vm_instance`.`limit_cpu_use` AS `limit_cpu_use`,
423423
`vm_instance`.`created` AS `created`,
424424
`vm_instance`.`state` AS `state`,
425+
`vm_instance`.`update_time` AS `update_time`,
425426
`vm_instance`.`removed` AS `removed`,
426427
`vm_instance`.`ha_enabled` AS `ha_enabled`,
427428
`vm_instance`.`hypervisor_type` AS `hypervisor_type`,

plugins/metrics/src/main/java/org/apache/cloudstack/metrics/MetricsServiceImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ public List<VmMetricsResponse> listVmMetrics(List<UserVmResponse> vmResponses) {
202202
metricsResponse.setDiskRead(vmResponse.getDiskKbsRead());
203203
metricsResponse.setDiskWrite(vmResponse.getDiskKbsWrite());
204204
metricsResponse.setDiskIopsTotal(vmResponse.getDiskIORead(), vmResponse.getDiskIOWrite());
205+
metricsResponse.setLastUpdated(vmResponse.getLastUpdated());
205206
metricsResponses.add(metricsResponse);
206207
}
207208
return metricsResponses;

server/src/main/java/com/cloud/api/query/dao/UserVmJoinDaoImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ public UserVmResponse newUserVmResponse(ResponseView view, String objectName, Us
138138
userVmResponse.setDomainName(userVm.getDomainName());
139139

140140
userVmResponse.setCreated(userVm.getCreated());
141+
userVmResponse.setLastUpdated(userVm.getLastUpdated());
141142
userVmResponse.setDisplayVm(userVm.isDisplayVm());
142143

143144
if (userVm.getState() != null) {

server/src/main/java/com/cloud/api/query/vo/UserVmJoinVO.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ public class UserVmJoinVO extends BaseViewWithTagInformationVO implements Contro
108108
@Column(name = GenericDao.REMOVED_COLUMN)
109109
private Date removed;
110110

111+
@Column(name="update_time")
112+
private Date lastUpdated;
113+
111114
@Column(name = "instance_name", updatable = true, nullable = false)
112115
private String instanceName;
113116

@@ -491,6 +494,10 @@ public Date getRemoved() {
491494
return removed;
492495
}
493496

497+
public Date getLastUpdated() {
498+
return lastUpdated;
499+
}
500+
494501
public String getInstanceName() {
495502
return instanceName;
496503
}

ui/src/components/view/InfoCard.vue

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,12 @@
554554
<a-icon type="calendar" />{{ $toLocaleDate(resource.created) }}
555555
</div>
556556
</div>
557+
<div class="resource-detail-item" v-if="resource.lastupdated">
558+
<div class="resource-detail-item__label">{{ $t('label.last.updated') }}</div>
559+
<div class="resource-detail-item__details">
560+
<a-icon type="calendar" />{{ $toLocaleDate(resource.lastupdated) }}
561+
</div>
562+
</div>
557563
</div>
558564

559565
<div class="account-center-tags" v-if="$route.meta.related">

0 commit comments

Comments
 (0)