示例#1
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params, $unuse = false)
 {
     $con_str = "";
     if ($unuse) {
         $q = DcmdServicePoolNode::find()->asArray()->all();
         $con_str = " ip not in(0";
         foreach ($q as $item) {
             $con_str .= ",'" . $item['ip'] . "'";
         }
         $con_str .= ")";
     }
     $query = DcmdNode::find()->where($con_str)->orderBy('ip');
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pagesize' => '20']]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['nid' => $this->nid, 'ngroup_id' => $this->ngroup_id, 'online_time' => $this->online_time, 'purchase_time' => $this->purchase_time, 'maintain_time' => $this->maintain_time, 'utime' => $this->utime, 'ctime' => $this->ctime, 'opr_uid' => $this->opr_uid]);
     $query->andFilterWhere(['like', 'ip', $this->ip])->andFilterWhere(['like', 'host', $this->host])->andFilterWhere(['like', 'sid', $this->sid])->andFilterWhere(['like', 'did', $this->did])->andFilterWhere(['like', 'os_type', $this->os_type])->andFilterWhere(['like', 'os_ver', $this->os_ver])->andFilterWhere(['like', 'bend_ip', $this->bend_ip])->andFilterWhere(['like', 'public_ip', $this->public_ip])->andFilterWhere(['like', 'mach_room', $this->mach_room])->andFilterWhere(['like', 'rack', $this->rack])->andFilterWhere(['like', 'seat', $this->seat])->andFilterWhere(['like', 'server_brand', $this->server_brand])->andFilterWhere(['like', 'server_model', $this->server_model])->andFilterWhere(['like', 'cpu', $this->cpu])->andFilterWhere(['like', 'memory', $this->memory])->andFilterWhere(['like', 'disk', $this->disk])->andFilterWhere(['like', 'maintain_fac', $this->maintain_fac])->andFilterWhere(['like', 'comment', $this->comment]);
     return $dataProvider;
 }
 public function actionDeleteAll()
 {
     if (Yii::$app->user->getIdentity()->admin != 1) {
         Yii::$app->getSession()->setFlash('success', NULL);
         Yii::$app->getSession()->setFlash('error', "对不起, 你没有权限!");
         return $this->redirect(array('index'));
     }
     if (!array_key_exists('selection', Yii::$app->request->post())) {
         Yii::$app->getSession()->setFlash('error', '未选择设备组!');
         return $this->redirect(['index']);
     }
     $select = Yii::$app->request->post()['selection'];
     $success_msg = "";
     $err_msg = "";
     foreach ($select as $k => $v) {
         $model = $this->findModel($v);
         ///判断用户是否和该设备池子属于一个系统组
         $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $model['gid']]);
         if ($query == NULL) {
             $err_msg .= $model['ngroup_name'] . ":没有权限删除" . "<br>";
             continue;
         }
         ///判断设备池是否为空
         $node = DcmdNode::find()->where(['ngroup_id' => $v])->one();
         if ($node) {
             $err_msg .= $model['ngroup_name'] . ':设备池子不为空,不可删除' . "<br>";
             continue;
         }
         DcmdNodeGroupAttr::deleteAll(['ngroup_id' => $model->ngroup_id]);
         $model->delete();
         $success_msg .= $model['ngroup_name'] . ":删除成功" . "<br>";
     }
     if ($success_msg != "") {
         Yii::$app->getSession()->setFlash('success', $success_msg);
     }
     if ($err_msg != "") {
         Yii::$app->getSession()->setFlash('error', $err_msg);
     }
     return $this->redirect(['index']);
 }
 public function actionAddNode()
 {
     $app_id = Yii::$app->request->post()["app_id"];
     $svr_id = Yii::$app->request->post()["svr_id"];
     $svr_pool_id = Yii::$app->request->post()["svr_pool_id"];
     $model = DcmdApp::findOne($app_id);
     ///判断用户所属的系统组是否和该应用相同
     $query = DcmdUserGroup::findOne(['uid' => Yii::$app->user->getId(), 'gid' => $model['sa_gid']]);
     if ($query == NULL) {
         Yii::$app->getSession()->setFlash('success', NULL);
         Yii::$app->getSession()->setFlash('error', "对不起, 你没有权限!");
         return $this->redirect(array('dcmd-service-pool/view', 'id' => $svr_pool_id, 'show_div' => 'dcmd-service-pool-node'));
     }
     $service = DcmdService::findOne($svr_id);
     $success_msg = "";
     $err_msg = "";
     if (array_key_exists("selection", Yii::$app->request->post())) {
         $success_msg = "成功添加以下设备:";
         $nid_str = "nid in (0";
         foreach (Yii::$app->request->post()["selection"] as $k => $v) {
             $nid_str .= "," . $v;
         }
         $nid_str .= ")";
         $query = DcmdNode::find()->where($nid_str)->asArray()->all();
         $tm = date('Y-m-d H:i:s');
         foreach ($query as $item) {
             if ($service->node_multi_pool == 0) {
                 ///不可重复节点
                 $temp = DcmdServicePoolNode::findOne(['svr_id' => $svr_id, 'ip' => $item['ip']]);
                 if ($temp) {
                     $err_msg .= "已经有池子使用该节点:" . $item['ip'] . " ";
                     continue;
                 }
             }
             $server_pool_node = new DcmdServicePoolNode();
             $server_pool_node->svr_pool_id = $svr_pool_id;
             $server_pool_node->svr_id = $svr_id;
             $server_pool_node->app_id = $app_id;
             $server_pool_node->nid = $item['nid'];
             $server_pool_node->ip = $item['ip'];
             $server_pool_node->utime = $tm;
             $server_pool_node->ctime = $tm;
             $server_pool_node->opr_uid = Yii::$app->user->getId();
             $server_pool_node->save();
             $this->oprlog(1, "add ip:" . $item['ip']);
             $success_msg .= $item['ip'] . " ";
         }
     }
     if ($success_msg != "") {
         Yii::$app->getSession()->setFlash('success', $success_msg);
     }
     if ($err_msg != "") {
         Yii::$app->getSession()->setFlash('error', $err_msg);
     }
     return $this->redirect(array('dcmd-service-pool/view', 'id' => $svr_pool_id, 'show_div' => 'dcmd-service-pool-node'));
 }