/**
  * Handle a deprovisioning request
  *
  * @param DeprovisionJob $command
  *
  * @return bool|mixed
  */
 public function handle(DeprovisionJob $command)
 {
     $_options = $command->getOptions();
     $this->debug('>>> deprovision "' . $command->getInstanceId() . '" request received');
     try {
         //  Find the instance
         $_instance = $this->_findInstance($command->getInstanceId());
     } catch (\Exception $_ex) {
         $this->error('deprovision request failure: instance not found.');
         return false;
     }
     try {
         $_provisioner = Provision::getProvisioner($_instance->guest_location_nbr);
         if (empty($_provisioner)) {
             throw new \RuntimeException('The provisioner of the request is not valid.');
         }
         $_response = $_provisioner->deprovision(new ProvisionServiceRequest($_instance, null, true, false, $_options));
         if (!$_response) {
             throw new ProvisioningException('deprovision failure');
         }
         $this->info('deprovision request complete in ' . number_format($_response->getElapsedTime(), 4) . 's');
         $this->debug('<<< deprovision "' . $command->getInstanceId() . '" request SUCCESS');
         $command->setResult($_response);
         return $_response;
     } catch (\Exception $_ex) {
         $this->error('deprovision "' . $command->getInstanceId() . '" request exception: ' . $_ex->getMessage());
     }
     $this->debug('<<< deprovision "' . $command->getInstanceId() . '" request FAILURE');
     return false;
 }
 /** @inheritdoc */
 public function deprovision(DeprovisionJob $job)
 {
     return $this->resolve($job->getInstance()->guest_location_nbr)->deprovision(ProvisionServiceRequest::createDeprovision($job->getInstance()));
 }