Exemplo n.º 1
0
 public bool Invoke(OculiVolumePersistedState volumeInfo)
 {
     this._Logger.Verbose("Locking down job for disk removal for job " + this._Context.JobInfoWrapper.Name);
     try
     {
         lock (Win32Utils.HelperOSLock)
         {
             VmdkProperties local_2 = this._FindDriveVmdkProperties(volumeInfo);
             if (local_2 != null)
             {
                 string local_3 = volumeInfo.PNPDeviceID;
                 if (local_3 != null)
                 {
                     this._RemoveSCSIDevice(local_3);
                 }
                 this._RemoveVirtualDisk(volumeInfo, local_2);
                 this._Logger.Verbose("Removed Drive for " + local_3);
             }
             else
             {
                 this._Logger.Warning("Could not find hard disk: " + volumeInfo.VirtualDiskFilename);
             }
             return(true);
         }
     }
     finally
     {
         this._Logger.Verbose("Releasing lock for disk removal for job " + this._Context.JobInfoWrapper.Name);
     }
 }
Exemplo n.º 2
0
 private void _RemoveVirtualDisk(OculiVolumePersistedState volumeInfo, VmdkProperties driveProperties)
 {
     VmdkProperties[] vmdkProps = new VmdkProperties[1] {
         driveProperties
     };
     try
     {
         CUtils.Retry(this._RemoveVirtualDisk_Retry, this._RemoveVirtualDisk_Delay, (CUtils.Workload)(() =>
         {
             this._HelperVm_RemoveVirtualDisk(vmdkProps);
             if (!this._CheckDriveGone(volumeInfo))
             {
                 throw new OculiServiceException(0, string.Format("Failed to detach a volume from the Helper VM ({0:d})", (object)volumeInfo.DriveName));
             }
         }));
     }
     catch (Exception ex)
     {
         this._Logger.FormatWarningWithException(ex, "Failed to detach volume {0} from helper VM due to exception:  ", (object)volumeInfo.VolumeName);
         throw;
     }
 }
Exemplo n.º 3
0
        public VmdkProperties Clone()
        {
            VmdkProperties vmdkProperties = new VmdkProperties();

            vmdkProperties.FileName      = this.FileName;
            vmdkProperties.Label         = this.Label;
            vmdkProperties.Capacity      = this.Capacity;
            vmdkProperties.DatastoreName = this.DatastoreName;
            vmdkProperties.DatastoreUrl  = this.DatastoreUrl;
            vmdkProperties.DiskMode      = this.DiskMode;
            vmdkProperties.Key           = this.Key;
            vmdkProperties.UnitNumber    = this.UnitNumber;
            vmdkProperties.ControllerKey = this.ControllerKey;
            vmdkProperties.BusNumber     = this.BusNumber;
            vmdkProperties.Datastore     = this.Datastore;
            int num = this.ThinProvisioned ? 1 : 0;

            vmdkProperties.ThinProvisioned = num != 0;
            Guid guid = this.Guid;

            vmdkProperties.Guid = guid;
            return(vmdkProperties);
        }