/**
  * @param ProvisionServiceRequest $request
  *
  * @return bool
  */
 protected function deprovisionStorage($request)
 {
     $this->info('[deprovisioning:storage] begin');
     //  Use requested file system if one...
     $_filesystem = $request->getStorage();
     //  Do it!
     Provision::resolveStorage($request->getInstance()->guest_location_nbr)->deprovision($request);
     $this->info('[deprovisioning:storage] complete');
     return $_filesystem;
 }
 /**
  * Deprovision an instance
  *
  * @param ProvisionServiceRequest $request
  * @param array                   $options
  *
  * @return bool
  */
 protected function doDeprovision($request, $options = [])
 {
     $_instance = $request->getInstance();
     $_filesystem = $request->getStorage();
     $_storagePath = $_instance->instance_id_text;
     $this->info('[deprovisioning:storage] instance "' . $_instance->instance_id_text . '" begin');
     //  I'm not sure how hard this tries to delete the directory
     if (!$_filesystem->has($_storagePath)) {
         $this->notice('[deprovisioning:storage] unable to stat storage path "' . $_storagePath . '". not deleting!');
         return false;
     }
     if (!$_filesystem->deleteDir($_storagePath)) {
         $this->error('[deprovisioning:storage] error deleting storage area "' . $_storagePath . '"');
         return false;
     }
     //  Fire off a "storage.deprovisioned" event...
     \Event::fire('dfe.storage.deprovisioned', [$this, $request]);
     $this->info('[deprovisioning:storage] instance "' . $_instance->instance_id_text . '" complete');
     return true;
 }