Skip to content

Commit f7f7013

Browse files
authored
Added ostypeid in the snapshot response (#9150)
1 parent 6c06e85 commit f7f7013

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,21 @@
3535
import org.apache.cloudstack.query.QueryService;
3636
import org.apache.log4j.Logger;
3737

38+
import com.cloud.api.ApiDBUtils;
3839
import com.cloud.api.ApiResponseHelper;
3940
import com.cloud.api.query.vo.SnapshotJoinVO;
41+
import com.cloud.storage.GuestOS;
4042
import com.cloud.storage.Snapshot;
4143
import com.cloud.storage.VMTemplateStorageResourceAssoc;
44+
import com.cloud.storage.Volume.Type;
45+
import com.cloud.storage.VolumeVO;
4246
import com.cloud.user.Account;
4347
import com.cloud.user.AccountService;
4448
import com.cloud.utils.Pair;
4549
import com.cloud.utils.db.Filter;
4650
import com.cloud.utils.db.SearchBuilder;
4751
import com.cloud.utils.db.SearchCriteria;
52+
import com.cloud.vm.VMInstanceVO;
4853

4954
public class SnapshotJoinDaoImpl extends GenericDaoBaseWithTagInformation<SnapshotJoinVO, SnapshotResponse> implements SnapshotJoinDao {
5055

@@ -124,6 +129,16 @@ public SnapshotResponse newSnapshotResponse(ResponseObject.ResponseView view, bo
124129
snapshotResponse.setVolumeName(snapshot.getVolumeName());
125130
snapshotResponse.setVolumeType(snapshot.getVolumeType().name());
126131
snapshotResponse.setVirtualSize(snapshot.getVolumeSize());
132+
VolumeVO volume = ApiDBUtils.findVolumeById(snapshot.getVolumeId());
133+
if (volume != null && volume.getVolumeType() == Type.ROOT && volume.getInstanceId() != null) {
134+
VMInstanceVO vm = ApiDBUtils.findVMInstanceById(volume.getInstanceId());
135+
if (vm != null) {
136+
GuestOS guestOS = ApiDBUtils.findGuestOSById(vm.getGuestOSId());
137+
if (guestOS != null) {
138+
snapshotResponse.setOsTypeId(guestOS.getUuid());
139+
}
140+
}
141+
}
127142
}
128143
snapshotResponse.setZoneId(snapshot.getDataCenterUuid());
129144
snapshotResponse.setZoneName(snapshot.getDataCenterName());

0 commit comments

Comments
 (0)