die; } if (!$server->isAuthorized()) { echo return_error(3, 'Server is not authorized'); die; } $old_roles = $server->getAttribute('roles'); if ($ret['status'] == Server::SERVER_STATUS_ONLINE) { if (!$server->getConfiguration()) { echo return_error(4, 'Server does not send a valid configuration'); die; } } // check if server's roles have been changes $new_roles = $server->getAttribute('roles'); foreach ($old_roles as $a_role => $enable) { if (array_key_exists($a_role, $new_roles) == false) { // the server has not anymore the role Abstract_Server::removeRole($server->getAttribute('fqdn'), $a_role); } } $server->setStatus($ret['status']); Abstract_Server::save($server); header('Content-Type: text/xml; charset=utf-8'); $dom = new DomDocument('1.0', 'utf-8'); $node = $dom->createElement('server'); $node->setAttribute('name', $server->fqdn); $node->setAttribute('status', $server->status); $dom->appendChild($node); echo $dom->saveXML(); exit(0);
webservices_return_error(2, 'Server does not exist'); } if (!$server->isAuthorized()) { Logger::error('main', '(webservices/server/status) Server is not authorized (error_code: 3)'); webservices_return_error(3, 'Server is not authorized'); } $old_roles = $server->getAttribute('roles'); if ($ret['status'] == Server::SERVER_STATUS_ONLINE) { if (!$server->getConfiguration()) { Logger::error('main', '(webservices/server/status) Server does not send a valid configuration (error_code: 4)'); webservices_return_error(4, 'Server does not send a valid configuration'); } } // check if server's roles have been changed $new_roles = $server->getAttribute('roles'); foreach ($old_roles as $a_role => $enable) { if (array_key_exists($a_role, $new_roles) == false) { // the server has not anymore the role Abstract_Server::removeRole($server->id, $a_role); } } $server->setStatus($ret['status']); Abstract_Server::save($server); header('Content-Type: text/xml; charset=utf-8'); $dom = new DomDocument('1.0', 'utf-8'); $node = $dom->createElement('server'); $node->setAttribute('name', $server->id); $node->setAttribute('status', $server->status); $dom->appendChild($node); echo $dom->saveXML(); exit(0);
public static function delete($fqdn_) { Logger::debug('main', 'Starting Abstract_Server::delete for \'' . $fqdn_ . '\''); if (substr($fqdn_, -1) == '.') { $fqdn_ = substr($fqdn_, 0, strlen($fqdn_) - 1); } $SQL = SQL::getInstance(); $fqdn = $fqdn_; $SQL->DoQuery('SELECT 1 FROM @1 WHERE @2 = %3 LIMIT 1', $SQL->prefix . 'servers', 'fqdn', $fqdn); $total = $SQL->NumRows(); if ($total == 0) { Logger::error('main', "Abstract_Server::delete({$server_}) server does not exist (NumRows == 0)"); return false; } $sessions_liaisons = Abstract_Liaison::load('ServerSession', $fqdn_, NULL); foreach ($sessions_liaisons as $sessions_liaison) { $session = Abstract_Session::load($sessions_liaison->group); if (!$session) { continue; } $session->orderDeletion(true, Session::SESSION_END_STATUS_SERVER_DELETED); } Abstract_Liaison::delete('ServerSession', $fqdn_, NULL); $a_server = Abstract_Server::load($fqdn_); $roles = $a_server->getAttribute('roles'); if (is_array($roles)) { foreach ($roles as $a_role) { Abstract_Server::removeRole($fqdn_, $a_role); } } $SQL->DoQuery('DELETE FROM @1 WHERE @2 = %3', $SQL->prefix . 'servers_properties', 'fqdn', $fqdn); $SQL->DoQuery('DELETE FROM @1 WHERE @2 = %3 LIMIT 1', $SQL->prefix . 'servers', 'fqdn', $fqdn); return true; }
public static function delete($id_) { Logger::debug('main', 'Starting Abstract_Server::delete for \'' . $id_ . '\''); $SQL = SQL::getInstance(); $SQL->DoQuery('SELECT 1 FROM #1 WHERE @2 = %3 LIMIT 1', self::table, 'id', $id_); $total = $SQL->NumRows(); if ($total == 0) { Logger::error('main', "Abstract_Server::delete({$id_}) server does not exist (NumRows == 0)"); return false; } $sessions_liaisons = Abstract_Liaison::load('ServerSession', $id_, NULL); foreach ($sessions_liaisons as $sessions_liaison) { $session = Abstract_Session::load($sessions_liaison->group); if (!$session) { continue; } $session->orderDeletion(true, Session::SESSION_END_STATUS_SERVER_DELETED); } Abstract_Liaison::delete('ServerSession', $id_, NULL); $a_server = Abstract_Server::load($id_); $roles = $a_server->getAttribute('roles'); if (is_array($roles)) { foreach ($roles as $a_role => $role_enabled) { Abstract_Server::removeRole($id_, $a_role); } } $SQL->DoQuery('DELETE FROM #1 WHERE @2 = %3', self::table_properties, 'server', $id_); $SQL->DoQuery('DELETE FROM #1 WHERE @2 = %3 LIMIT 1', self::table, 'id', $id_); return true; }