mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
fix: esxi references2Objects refer nil objects
This commit is contained in:
@@ -62,9 +62,12 @@ func (dc *SDatacenter) scanDatastores() error {
|
||||
if dc.istorages == nil {
|
||||
var stores []mo.Datastore
|
||||
dsList := dc.getDatacenter().Datastore
|
||||
err := dc.manager.references2Objects(dsList, DATASTORE_PROPS, &stores)
|
||||
if err != nil {
|
||||
return err
|
||||
if dsList != nil {
|
||||
err := dc.manager.references2Objects(dsList, DATASTORE_PROPS, &stores)
|
||||
if err != nil {
|
||||
log.Errorf("references2Objects dsList fail %s", err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
dc.istorages = make([]cloudprovider.ICloudStorage, len(stores))
|
||||
for i := 0; i < len(stores); i += 1 {
|
||||
@@ -114,10 +117,12 @@ func (dc *SDatacenter) getDcObj() *object.Datacenter {
|
||||
|
||||
func (dc *SDatacenter) fetchVms(vmRefs []types.ManagedObjectReference) ([]cloudprovider.ICloudVM, error) {
|
||||
var vms []mo.VirtualMachine
|
||||
err := dc.manager.references2Objects(vmRefs, VIRTUAL_MACHINE_PROPS, &vms)
|
||||
if err != nil {
|
||||
log.Errorf("references2Objects fail %s", err)
|
||||
return nil, err
|
||||
if vmRefs != nil {
|
||||
err := dc.manager.references2Objects(vmRefs, VIRTUAL_MACHINE_PROPS, &vms)
|
||||
if err != nil {
|
||||
log.Errorf("references2Objects fail %s", err)
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
retVms := make([]cloudprovider.ICloudVM, len(vms))
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/log"
|
||||
"yunion.io/x/pkg/util/netutils"
|
||||
"yunion.io/x/pkg/util/regutils"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
"yunion.io/x/onecloud/pkg/compute/models"
|
||||
@@ -80,7 +81,7 @@ func NewHost(manager *SESXiClient, host *mo.HostSystem, dc *SDatacenter) *SHost
|
||||
func (self *SHost) GetName() string {
|
||||
name := self.SManagedObject.GetName()
|
||||
dotPos := strings.IndexByte(name, '.')
|
||||
if dotPos > 0 {
|
||||
if dotPos > 0 && !regutils.MatchIP4Addr(name) {
|
||||
name = name[:dotPos]
|
||||
}
|
||||
return name
|
||||
|
||||
Reference in New Issue
Block a user