Example #1
0
 public function getAgentErr($subtask_id, $ip)
 {
     $query = DcmdTaskNode::findOne(['subtask_id' => $subtask_id, 'ip' => $ip]);
     if ($query) {
         return $query['err_msg'];
     }
     return "";
     /*$query = DcmdCenter::findOne(['master'=>1]);
     
           if ($query) {
              list($host, $port) = explode(':', $query["host"]);
              $agent_info = getTaskOutput($host, $port, $subtask_id, $ip, 0);
              return $agent_info->getErr(); 
            }
            return "获取Center失败";*/
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params, $page_size = 5)
 {
     $query = DcmdTaskNode::find()->orderBy('utime desc');
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pagesize' => $page_size]]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     if (array_key_exists('task_id', $params)) {
         $query->andFilterWhere(['task_id' => $params['task_id']]);
     }
     if (array_key_exists('state', $params)) {
         $query->andFilterWhere(['state' => $params['state']]);
     }
     if (array_key_exists('svr_pool', $params)) {
         if ($params['svr_pool'] != "all") {
             $query->andFilterWhere(['svr_pool' => $params['svr_pool']]);
         }
     }
     $query->andFilterWhere(['subtask_id' => $this->subtask_id, 'task_id' => $this->task_id, 'state' => $this->state, 'ignored' => $this->ignored, 'start_time' => $this->start_time, 'finish_time' => $this->finish_time, 'utime' => $this->utime, 'ctime' => $this->ctime, 'opr_uid' => $this->opr_uid]);
     $query->andFilterWhere(['like', 'task_cmd', $this->task_cmd])->andFilterWhere(['=', 'svr_pool', $this->svr_pool])->andFilterWhere(['like', 'svr_name', $this->svr_name])->andFilterWhere(['like', 'ip', $this->ip])->andFilterWhere(['like', 'process', $this->process])->andFilterWhere(['like', 'err_msg', $this->err_msg]);
     return $dataProvider;
 }
 public function actionAddServicePoolNode()
 {
     //var_dump(Yii::$app->request->post()); echo "=====<br>";
     $task_id = Yii::$app->request->post()['task_id'];
     $svr_pool = array();
     $svr_pool_node = array();
     foreach (Yii::$app->request->post() as $k => $v) {
         if (substr($k, 0, 6) == 'AppSvr') {
             array_push($svr_pool, substr($k, 6));
         }
     }
     foreach (Yii::$app->request->post() as $k => $ip) {
         if (substr($k, 0, 11) == 'SvrPoolNode') {
             ///设备信息
             $pool_ip = substr($k, 11);
             foreach ($svr_pool as $pool) {
                 if (substr($pool_ip, 0, strlen($pool)) == $pool) {
                     if (array_key_exists($pool, $svr_pool_node)) {
                         array_push($svr_pool_node[$pool], $ip);
                     } else {
                         $svr_pool_node[$pool] = array($ip);
                     }
                     break;
                 }
             }
         }
     }
     //var_dump($svr_pool); echo "=======";
     ///var_dump($svr_pool_node);exit;
     $ret_msg = "";
     $task = DcmdTask::findOne($task_id);
     foreach ($svr_pool_node as $pool => $ips) {
         foreach ($ips as $ip) {
             $query = DcmdTaskNode::findOne(['task_id' => $task_id, 'svr_pool' => $pool, 'ip' => $ip]);
             if ($query) {
                 $ret_msg .= $ip . " : 已经存在 ";
             } else {
                 $dcmd_task_node = new DcmdTaskNode();
                 $dcmd_task_node->task_id = $task_id;
                 $dcmd_task_node->task_cmd = $task->task_cmd;
                 $dcmd_task_node->svr_pool = $pool;
                 $dcmd_task_node->svr_name = $task->svr_name;
                 $dcmd_task_node->ip = $ip;
                 $dcmd_task_node->state = 0;
                 $dcmd_task_node->ignored = 0;
                 $dcmd_task_node->start_time = '0000-00-00 00:00:00';
                 $dcmd_task_node->finish_time = '0000-00-00 00:00:00';
                 $dcmd_task_node->process = "0";
                 $dcmd_task_node->err_msg = "NULL";
                 $dcmd_task_node->utime = date('Y-m-d H:i:s');
                 $dcmd_task_node->ctime = $dcmd_task_node->utime;
                 $dcmd_task_node->opr_uid = Yii::$app->user->getId();
                 $dcmd_task_node->save();
                 $ret_msg .= $ip . " : 添加成功 ";
             }
         }
     }
     Yii::$app->getSession()->setFlash('success', $ret_msg);
     $this->redirect(array('dcmd-task-async/monitor-task', 'task_id' => $task_id));
 }
 /**
  * Finds the DcmdTaskNode model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return DcmdTaskNode the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = DcmdTaskNode::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
 public function actionSuccessSubTaskList($task_id, $svr_pool)
 {
     $con = array('task_id' => $task_id, 'state' => 2);
     if ($svr_pool != 'all') {
         $con['svr_pool'] = $svr_pool;
     }
     $query = DcmdTaskNode::find()->andWhere($con)->orderBy("utime desc")->limit(5);
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $searchModel = new DcmdTaskNodeSearch();
     $this->layout = false;
     return $this->render('success_sub_task_list', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'task_id' => $task_id, 'svr_pool' => $svr_pool]);
 }
 public function actionTaskList($ip)
 {
     $ret_msg = '<table class="table table-striped table-bordered"><tbody>';
     $ret_msg .= "<tr><td>任务名称</td><td>脚本名称</td><td>产品名称</td><td>创建时间</td>";
     ///获取任务列表
     $query = DcmdTaskNode::findAll(['ip' => $ip]);
     if ($query) {
         $task_id = "task_id in (0";
         foreach ($query as $item) {
             $task_id .= "," . $item->task_id;
         }
         $task_id .= ")";
         ///获取任务信息
         $query = DcmdTask::find()->andWhere($task_id)->orderBy('task_id desc')->all();
         if ($query) {
             foreach ($query as $task) {
                 $ret_msg .= "<tr><td><a href='index.php?r=dcmd-task-async/monitor-task&task_id=" . $task->task_id . "' target=_blank>" . $task->task_name . "</a></td>";
                 $ret_msg .= "<td>" . $task->task_cmd . "</td>";
                 $ret_msg .= "<td>" . $task->app_name . "</td>";
                 $ret_msg .= "<td>" . $task->ctime . "</td>";
                 $ret_msg .= "</tr>";
             }
         }
     }
     $ret_msg .= "</tbody></table>";
     echo $ret_msg;
 }