/**
  * 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 actionSelectServicePoolNode($task_id)
 {
     ///获取已有的设备ip
     $query = DcmdTaskNode::find()->andWhere(['task_id' => $task_id])->asArray()->all();
     $exist_ips = array();
     foreach ($query as $item) {
         array_push($exist_ips, $item['ip']);
     }
     $task_service_pool = DcmdTaskServicePool::find()->andWhere(['task_id' => $task_id])->asArray()->all();
     $service_pool = array();
     foreach ($task_service_pool as $item) {
         $node = array();
         $node['svr_pool_id'] = $item['svr_pool_id'];
         $node['svr_pool'] = $item['svr_pool'];
         $node['ip'] = array();
         $svr_pool_node = DcmdServicePoolNode::find()->andWhere(['svr_pool_id' => $item['svr_pool_id']])->asArray()->all();
         foreach ($svr_pool_node as $ip) {
             if (array_key_exists($ip['ip'], $exist_ips)) {
                 continue;
             }
             array_push($node['ip'], $ip['ip']);
         }
         array_push($service_pool, $node);
     }
     return $this->render('select_service_pool_node', ['service_pool' => $service_pool, 'task_id' => $task_id, 'task_name' => "task_name"]);
 }
 /**
  * Displays a single DcmdTaskNode model.
  * @param integer $id
  * @return mixed
  */
 private function actionView($id)
 {
     $model = $this->fidModel($id);
     ///获取该节点上存在的task_id
     $query = DcmdTaskNode::find()->andWhere(['ip' => $model->ip])->asArray()->all();
     $task_con = "task_id in (0,";
     foreach ($query as $item) {
         $task_con .= "," . $item->task_id;
     }
     return $this->render('view', ['model' => $this->findModel($id)]);
 }
 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]);
 }