public function suspend($user = null)
{
if ($this->status != Server::STATUS_RUNNING) {
return false;
}
if ($user instanceof User) {
$properties = $this->properties;
$properties[self::TERMINATED_BY_ID] = $user->getId();
$properties[self::TERMINATED_BY_EMAIL] = $user->getEmail();
$properties->save();
}
$this->update(['status' => Server::STATUS_PENDING_SUSPEND, 'shutdownScheduled' => new DateTime(Scalr::config('scalr.system.server_terminate_timeout'))]);
if (isset($this->farmId)) {
$DBServer = $this->__getDBServer();
Scalr::FireEvent($this->farmId, new BeforeHostTerminateEvent($DBServer, true));
}
return true;
}