fix(region): nutanix disk type

This commit is contained in:
ioito
2022-01-25 16:51:28 +08:00
parent 5e405af576
commit e914b035c1
2 changed files with 20 additions and 1 deletions
+17 -1
View File
@@ -193,6 +193,8 @@ type SDisk struct {
FlashModeEnabled string `json:"flash_mode_enabled"`
DataSourceURL string `json:"data_source_url"`
Stats DiskStats `json:"stats"`
isSys bool
}
func (self *SDisk) GetName() string {
@@ -239,9 +241,23 @@ func (self *SDisk) GetDriver() string {
}
func (self *SDisk) GetDiskType() string {
if strings.HasSuffix(self.DiskAddress, ".0") {
if self.isSys {
return api.DISK_TYPE_SYS
}
ins, err := self.storage.zone.region.GetInstance(self.AttachedVMUUID)
if err != nil {
return api.DISK_TYPE_DATA
}
for _, disk := range ins.VMDiskInfo {
if disk.IsCdrom {
continue
}
if disk.DiskAddress.VmdiskUUID == self.UUID {
return api.DISK_TYPE_SYS
} else {
return api.DISK_TYPE_DATA
}
}
return api.DISK_TYPE_DATA
}
+3
View File
@@ -238,6 +238,7 @@ func (self *SInstance) GetIDisks() ([]cloudprovider.ICloudDisk, error) {
cdroms = append(cdroms, disk.DiskAddress.VmdiskUUID)
}
}
isSys := true
ret := []cloudprovider.ICloudDisk{}
for i := range disks {
if utils.IsInStringArray(disks[i].UUID, cdroms) { // skip cdrom disk
@@ -248,7 +249,9 @@ func (self *SInstance) GetIDisks() ([]cloudprovider.ICloudDisk, error) {
log.Errorf("can not found disk %s storage %s", disks[i].DiskAddress, disks[i].StorageContainerUUID)
continue
}
disks[i].isSys = isSys
disks[i].storage = storage.(*SStorage)
isSys = false
ret = append(ret, &disks[i])
}
return ret, nil