/**
* Change the target owner
* @param Deferred $deferred
* @param TaskInterface $task
* @return bool
*/
protected function processDeferred(Deferred $deferred, TaskInterface $task)
{
yield;
/** @var Description $description */
$description = $task->getDescription();
try {
$deferred->notify(new Notification("Changing '{$description->getTarget()}' owner to '{$description->getOwner()}'", Notification::PRIORITY_NORMAL));
if ($this->getFileSystem()->changeOwner($description->getTarget(), $description->getOwner())) {
$deferred->resolve("Changed '{$description->getTarget()}' owner to '{$description->getOwner()}' successfully");
return;
}
} catch (\Exception $e) {
// do noting, we reject below
$deferred->reject("Failed to change the owner of {$description->getTarget()}: " . $e->getMessage());
return;
}
$deferred->reject("Failed to change the owner of {$description->getTarget()} to {$description->getOwner()}");
}