fix: 避免重装系统后同步信息导致磁盘类型都为系统盘

This commit is contained in:
ioito
2019-09-07 13:37:00 +08:00
parent d29b4fbaa1
commit c46f274ff6
+13
View File
@@ -18,6 +18,7 @@ import (
"context"
"fmt"
"reflect"
"sort"
"strings"
"time"
@@ -54,6 +55,17 @@ type SVirtualMachine struct {
guestIps map[string]string
}
type byDiskType []SVirtualDisk
func (d byDiskType) Len() int { return len(d) }
func (d byDiskType) Swap(i, j int) { d[i], d[j] = d[j], d[i] }
func (d byDiskType) Less(i, j int) bool {
if d[i].GetDiskType() == api.DISK_TYPE_SYS || d[j].GetDiskType() == api.DISK_TYPE_DATA {
return true
}
return false
}
func NewVirtualMachine(manager *SESXiClient, vm *mo.VirtualMachine, dc *SDatacenter) *SVirtualMachine {
svm := &SVirtualMachine{SManagedObject: newManagedObject(manager, vm, dc)}
svm.fetchHardwareInfo()
@@ -216,6 +228,7 @@ func (self *SVirtualMachine) getIHost() cloudprovider.ICloudHost {
func (self *SVirtualMachine) GetIDisks() ([]cloudprovider.ICloudDisk, error) {
idisks := make([]cloudprovider.ICloudDisk, len(self.vdisks))
sort.Sort(byDiskType(self.vdisks))
for i := 0; i < len(self.vdisks); i += 1 {
idisks[i] = &(self.vdisks[i])
}