private VmDiskInfo[] _BuildDiskList(OculiServiceVolumePersistedState[] volumes) { return(((IEnumerable <OculiServiceVolumePersistedState>)volumes).Select <OculiServiceVolumePersistedState, VmDiskInfo>((Func <OculiServiceVolumePersistedState, VmDiskInfo>)(volume => { if (string.IsNullOrEmpty(volume.VirtualDiskPath)) { this._Logger.Error("Volume missing Data Storage URL for job " + this._Context.JobInfoWrapper.Name); throw new OculiServiceServiceException(0, "Volume missing Data Storage URL"); } string file = ESXHost.BuildDiskName(this._Context.JobInfoWrapper.SourceHostName, volume.Name); IVimDatastore datastoreByUrl = this._GetDatastoreByUrl(volume); long datastoreMaxVmdkSizeMb = this._ESXHost.GetDatastoreMaxVmdkSizeMB(datastoreByUrl); this._CheckDiskProvisioningType(volume); VmDiskInfo disk = new VmDiskInfo(false, file, volume.VmSCSIBus + 1, volume.VmSCSIUnitNumber, Math.Min(volume.DesiredSize / 1048576L, datastoreMaxVmdkSizeMb), "persistent", datastoreByUrl, volume.DiskProvisioningType, volume.PreexistingDiskPath); this._ReportOnDisk(disk, volume); return disk; })).ToArray <VmDiskInfo>()); }
protected virtual string _BuildESXDiskName(OculiServiceVolumePersistedState vi) { return(ESXHost.BuildDiskName(this._Context.JobInfoWrapper.SourceHostName, vi.Name)); }