コード例 #1
0
 function handle($queue, Scalr_Messaging_Msg $message, $rawMessage)
 {
     $dbserver = DBServer::LoadByID($message->getServerId());
     if ($message instanceof Scalr_Messaging_Msg_ExecScriptResult) {
         try {
             $this->db->Execute("INSERT DELAYED INTO scripting_log SET \n\t\t\t\t\tfarmid = ?,\n\t\t\t\t\tserver_id = ?, \n\t\t\t\t\tevent = ?,\n\t\t\t\t\tmessage = ?, \n\t\t\t\t\tdtadded = NOW() \n\t\t\t\t", array($dbserver->farmId, $message->getServerId(), $message->eventName, sprintf("Script '%s' execution result (Time: %s s, Exit code: %s). %s %s", $message->scriptName, round($message->timeElapsed, 2), $message->returnCode, base64_decode($message->stderr), base64_decode($message->stdout))));
             if ($message->meta[Scalr_Messaging_MsgMeta::SZR_VERSION]) {
                 DBServer::LoadByID($message->getServerId())->SetProperty(SERVER_PROPERTIES::SZR_VESION, $message->meta[Scalr_Messaging_MsgMeta::SZR_VERSION]);
             }
         } catch (Exception $e) {
             $this->logger->warn($e->getMessage());
         }
     } elseif ($message instanceof Scalr_Messaging_Msg_Log) {
         foreach ($message->entries as $entry) {
             try {
                 $this->db->Execute("INSERT DELAYED INTO logentries SET \n\t\t\t\t\t\tserverid = ?, \n\t\t\t\t\t\tmessage = ?, \n\t\t\t\t\t\tseverity = ?, \n\t\t\t\t\t\ttime = ?, \n\t\t\t\t\t\tsource = ?, \n\t\t\t\t\t\tfarmid = ?\n\t\t\t\t\t", array($message->getServerId(), $entry->msg, self::$severityCodes[$entry->level], time(), $entry->name, $dbserver->farmId));
                 if ($message->meta[Scalr_Messaging_MsgMeta::SZR_VERSION]) {
                     DBServer::LoadByID($message->getServerId())->SetProperty(SERVER_PROPERTIES::SZR_VESION, $message->meta[Scalr_Messaging_MsgMeta::SZR_VERSION]);
                 }
             } catch (Exception $e) {
                 $this->logger->error($e->getMessage());
             }
         }
     } elseif ($message instanceof Scalr_Messaging_Msg_RebundleLog) {
         try {
             $this->db->Execute("INSERT INTO bundle_task_log SET \n\t\t\t\t\tbundle_task_id = ?,\n\t\t\t\t\tdtadded = NOW(),\n\t\t\t\t\tmessage = ?\n\t\t\t\t", array($message->bundleTaskId, $message->message));
         } catch (Exception $e) {
             $this->logger->error($e->getMessage());
         }
     } elseif ($message instanceof Scalr_Messaging_Msg_DeployLog) {
         try {
             $this->db->Execute("INSERT INTO dm_deployment_task_logs SET \n\t\t\t\t\t`dm_deployment_task_id` = ?,\n\t\t\t\t\t`dtadded` = NOW(),\n\t\t\t\t\t`message` = ?\n\t\t\t\t", array($message->deployTaskId, $message->message));
         } catch (Exception $e) {
         }
     } elseif ($message instanceof Scalr_Messaging_Msg_OperationDefinition) {
         try {
             if ($message->name == 'Execute scripts') {
                 return;
             }
             $this->db->Execute("INSERT INTO server_operations SET \n\t\t\t\t\t`id` = ?,\n\t\t\t\t\t`server_id` = ?,\n\t\t\t\t\t`timestamp` = ?,\n\t\t\t\t\t`status`\t= ?,\n\t\t\t\t\t`name` = ?,\n\t\t\t\t\t`phases` = ?\n\t\t\t\t", array($message->id, $dbserver->serverId, time(), 'running', $message->name, json_encode($message->phases)));
         } catch (Exception $e) {
         }
     } elseif ($message instanceof Scalr_Messaging_Msg_OperationProgress) {
         try {
             if ($message->warning) {
                 $msg = $message->warning->message;
                 $trace = $message->warning->trace;
                 $handler = $message->warning->handler;
             }
             $this->db->Execute("INSERT INTO server_operation_progress SET \n\t\t\t\t\t`operation_id` = ?,\n\t\t\t\t\t`timestamp` = ?,\n\t\t\t\t\t`phase` = ?,\n\t\t\t\t\t`step` = ?,\n\t\t\t\t\t`status` = ?,\n\t\t\t\t\t`message`= ?,\n\t\t\t\t\t`trace` = ?,\n\t\t\t\t\t`handler` = ?,\n\t\t\t\t\t`progress` = ?,\n\t\t\t\t\t`stepno` = ? \n\t\t\t\t\tON DUPLICATE KEY UPDATE status = ?, progress = ?, trace = ?, handler = ?, message = ?\n\t\t\t\t", array($message->id, $message->getTimestamp(), $message->phase, $message->step, $message->status, $msg, $trace, $handler, $message->progress, $message->stepno, $message->status, $message->progress, $trace, $handler, $msg));
         } catch (Exception $e) {
         }
     }
 }