public static removeServerFloatingIp ( DBServer $dbServer ) | ||
$dbServer | DBServer |
public function OnHostDown(\HostDownEvent $event) { if (!$event->DBServer->isOpenstack()) { return; } // DO NOT remove Floating IP from suspended server. // Consider make this configurable if ($event->isSuspended) { return; } OpenstackHelper::removeServerFloatingIp($event->DBServer); }
public function xServerCancelOperationAction() { $this->request->defineParams(array('serverId')); $dbServer = DBServer::LoadByID($this->getParam('serverId')); $this->user->getPermissions()->validate($dbServer); $bt_id = $this->db->GetOne("\n SELECT id FROM bundle_tasks WHERE server_id=? AND prototype_role_id='0' AND status NOT IN (?,?,?) LIMIT 1\n ", array($dbServer->serverId, SERVER_SNAPSHOT_CREATION_STATUS::FAILED, SERVER_SNAPSHOT_CREATION_STATUS::SUCCESS, SERVER_SNAPSHOT_CREATION_STATUS::CANCELLED)); if ($bt_id) { $BundleTask = BundleTask::LoadById($bt_id); $BundleTask->SnapshotCreationFailed("Server was terminated before snapshot was created."); } if ($dbServer->status == SERVER_STATUS::IMPORTING) { $dbServer->Remove(); } else { $dbServer->terminate(DBServer::TERMINATE_REASON_SNAPSHOT_CANCELLATION, true, $this->user); if (PlatformFactory::isOpenstack($dbServer->platform)) { OpenstackHelper::removeServerFloatingIp($dbServer); } } $this->response->success("Server was successfully canceled"); }