public static function save($server_) { Logger::debug('main', 'Starting Abstract_Server::save for \'' . $server_->fqdn . '\''); $SQL = SQL::getInstance(); $fqdn = $server_->fqdn; if (!Abstract_Server::exists($fqdn)) { Logger::debug('main', "Abstract_Server::save({$server_}) server does NOT exist, we must create it"); if (!Abstract_Server::create($server_)) { Logger::error('main', "Abstract_Server::save({$server_}) create failed"); return false; } } $SQL->DoQuery('UPDATE @1 SET @2=%3,@4=%5,@6=%7,@8=%9,@10=%11,@12=%13,@14=%15,@16=%17,@18=%19,@20=%21,@22=%23 WHERE @24 = %25 LIMIT 1', $SQL->prefix . 'servers', 'status', $server_->status, 'registered', (int) $server_->registered, 'locked', (int) $server_->locked, 'type', $server_->type, 'version', $server_->version, 'cpu_model', $server_->cpu_model, 'cpu_nb_cores', $server_->cpu_nb_cores, 'cpu_load', (int) ($server_->cpu_load * 100), 'ram_total', $server_->ram_total, 'ram_used', $server_->ram_used, 'timestamp', time(), 'fqdn', $fqdn); $properties = Abstract_Server::loadProperties($server_); foreach (Abstract_Server::$server_properties as $object_property => $db_property) { Abstract_Server::saveProperty($server_, $object_property, $db_property, isset($properties[$object_property]) ? $properties[$object_property] : NULL); } return true; }
if (! $server->isOnline()) { Logger::error('main', '(webservices/server/name) Server is not OK (error_code: 2)'); webservices_return_error(2, 'Server is not OK'); } if (! $server->isOK()) { Logger::error('main', '(webservices/server/name) Server is not online (error_code: 3)'); webservices_return_error(3, 'Server is not online'); } */ $ret = Abstract_Server::create($server); $try_count = 0; while ($ret !== true && $try_count < 10) { $server->id = generate_server_id(); $ret = Abstract_Server::create($server); $try_count++; } if ($ret !== true) { Logger . error(''); Logger::error('main', 'Unable to save new server after ' . $try_count . ' try'); webservices_return_error(0, 'Internal error'); } 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); $dom->appendChild($node); echo $dom->saveXML();