Ejemplo n.º 1
0
    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);
Ejemplo n.º 2
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);
Ejemplo n.º 3
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;
 }
Ejemplo n.º 4
0
 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;
 }