Skip to content

Commit fca409e

Browse files
committed
Store and show Guest os type in the backup metadata
1 parent 3b1e91b commit fca409e

File tree

2 files changed

+31
-9
lines changed

2 files changed

+31
-9
lines changed

server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,12 +122,14 @@
122122
import com.cloud.serializer.GsonHelper;
123123
import com.cloud.service.dao.ServiceOfferingDao;
124124
import com.cloud.storage.DiskOfferingVO;
125+
import com.cloud.storage.GuestOSVO;
125126
import com.cloud.storage.ScopeType;
126127
import com.cloud.storage.Storage;
127128
import com.cloud.storage.Volume;
128129
import com.cloud.storage.VolumeApiService;
129130
import com.cloud.storage.VolumeVO;
130131
import com.cloud.storage.dao.DiskOfferingDao;
132+
import com.cloud.storage.dao.GuestOSDao;
131133
import com.cloud.storage.dao.VMTemplateDao;
132134
import com.cloud.storage.dao.VolumeDao;
133135
import com.cloud.template.VirtualMachineTemplate;
@@ -232,6 +234,8 @@ public class BackupManagerImpl extends ManagerBase implements BackupManager {
232234
private ResourceLimitService resourceLimitMgr;
233235
@Inject
234236
private AlertManager alertManager;
237+
@Inject
238+
private GuestOSDao _guestOSDao;
235239

236240
private AsyncJobDispatcher asyncJobDispatcher;
237241
private Timer backupTimer;
@@ -380,7 +384,12 @@ public Map<String, String> getBackupDetailsFromVM(VirtualMachine vm) {
380384
details.put(ApiConstants.SERVICE_OFFERING_ID, serviceOffering.getUuid());
381385
VirtualMachineTemplate template = vmTemplateDao.findById(vm.getTemplateId());
382386
if (template != null) {
387+
long guestOSId = template.getGuestOSId();
383388
details.put(ApiConstants.TEMPLATE_ID, template.getUuid());
389+
GuestOSVO guestOS = _guestOSDao.findById(guestOSId);
390+
if (guestOS != null) {
391+
details.put(ApiConstants.OS_ID, guestOS.getUuid());
392+
}
384393
}
385394

386395
List<VMInstanceDetailVO> vmDetails = vmInstanceDetailsDao.listDetails(vm.getId());
@@ -2104,6 +2113,12 @@ Map<String, String> getDetailsFromBackupDetails(Long backupId) {
21042113
details.put(ApiConstants.IS_ISO, String.valueOf(template.getFormat().equals(Storage.ImageFormat.ISO)));
21052114
}
21062115
}
2116+
if (details.containsKey(ApiConstants.OS_ID)) {
2117+
GuestOSVO guestOS = _guestOSDao.findByUuid(details.get(ApiConstants.OS_ID));
2118+
if (guestOS != null) {
2119+
details.put(ApiConstants.OS_NAME, guestOS.getDisplayName());
2120+
}
2121+
}
21072122
if (details.containsKey(ApiConstants.SERVICE_OFFERING_ID)) {
21082123
ServiceOffering serviceOffering = serviceOfferingDao.findByUuid(details.get(ApiConstants.SERVICE_OFFERING_ID));
21092124
if (serviceOffering != null) {

ui/src/components/view/BackupMetadata.vue

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@
4242
{{ getTemplateDisplayName() }}
4343
</router-link>
4444
</div>
45+
<div v-else-if="item === 'osid'">
46+
<router-link :to="{ path: '/guestos' + '/' + backupMetadata[item] }">
47+
{{ backupMetadata.osname }}
48+
</router-link>
49+
</div>
4550
<div v-else-if="item === 'serviceofferingid'">
4651
<router-link :to="{ path: '/computeoffering/' + backupMetadata[item] }">
4752
{{ getServiceOfferingDisplayName() }}
@@ -84,15 +89,14 @@ export default {
8489
if (!this.backupMetadata || Object.keys(this.backupMetadata).length === 0) {
8590
return []
8691
}
87-
const fieldOrder = []
88-
fieldOrder.push('templateid')
89-
if (this.backupMetadata.isiso === 'true') {
90-
fieldOrder.push('hypervisor')
91-
}
92-
fieldOrder.push('serviceofferingid')
93-
fieldOrder.push('nics')
94-
fieldOrder.push('vmsettings')
95-
92+
const fieldOrder = [
93+
'templateid',
94+
'osid',
95+
'hypervisor',
96+
'serviceofferingid',
97+
'nics',
98+
'vmsettings'
99+
]
96100
return fieldOrder.filter(field => this.backupMetadata[field] !== undefined)
97101
},
98102
getNicEntities () {
@@ -108,6 +112,9 @@ export default {
108112
if (field === 'vmsettings') {
109113
return this.$t('label.settings')
110114
}
115+
if (field === 'osid') {
116+
return this.$t('label.ostypeid')
117+
}
111118
return this.$t('label.' + String(field).toLowerCase())
112119
},
113120
getTemplateDisplayName () {

0 commit comments

Comments
 (0)