/** * Displays a single DcmdServicePool model. * @param integer $id * @return mixed */ public function actionView($id) { $searchModel = new DcmdServicePoolNodeSearch(); $con = array(); $con['DcmdServicePoolNodeSearch'] = array('svr_pool_id' => $id); if (array_key_exists('DcmdServicePoolNodeSearch', Yii::$app->request->queryParams)) { $con = array_merge($con, Yii::$app->request->queryParams); } $con['DcmdServicePoolNodeSearch']['svr_pool_id'] = $id; $dataProvider = $searchModel->search($con, false); $show_div = "dcmd-service-pool-node"; if (array_key_exists("show_div", Yii::$app->request->queryParams)) { $show_div = Yii::$app->request->queryParams['show_div']; } ///获取属性 $self_attr = DcmdServicePoolAttr::find()->andWhere(['svr_pool_id' => $id])->asArray()->all(); $def_attr = DcmdServicePoolAttrDef::find()->asArray()->all(); $attr_str = '<div id="w1" class="grid-view"> <table class="table table-striped table-bordered"><thead> <tr><th>属性名</th><th>值</th><th>操作</th></tr> </thead><tbody>'; $attr = array(); foreach ($self_attr as $item) { $attr_str .= '<tr><td>' . $item['attr_name'] . '</td><td>' . $item['attr_value'] . '</td><td><a href="/ducter/index.php?r=dcmd-service-pool-attr/update&id=' . $item['id'] . '&svr_pool_id=' . $id . '">修改</a></td></tr>'; $attr[$item['attr_name']] = $item['attr_name']; } foreach ($def_attr as $item) { if (array_key_exists($item['attr_name'], $attr)) { continue; } $attr_str .= '<tr><td>' . $item['attr_name'] . '</td><td>' . $item['def_value'] . '</td><td><a href="/ducter/index.php?r=dcmd-service-pool-attr/update&id=0&attr_id=' . $item['attr_id'] . '&svr_pool_id=' . $id . '">修改</a></td></tr>'; } $attr_str .= "</tbody></table></div>"; return $this->render('view', ['svr_pool_id' => $id, 'model' => $this->findModel($id), 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'show_div' => $show_div, 'attr_str' => $attr_str]); }
/** * Lists all DcmdServicePoolNode models. * @return mixed */ public function actionIndex() { $params = array(); if (array_key_exists('DcmdServicePoolNodeSearch', Yii::$app->request->queryParams)) { $params['DcmdServicePoolNodeSearch'] = Yii::$app->request->queryParams['DcmdServicePoolNodeSearch']; if ($params['DcmdServicePoolNodeSearch']['app_id'] == "") { $params['DcmdServicePoolNodeSearch']['svr_id'] = ""; } if ($params['DcmdServicePoolNodeSearch']['svr_id'] == "") { $params['DcmdServicePoolNodeSearch']['svr_pool_id'] = ""; } } ///应用足用户只可查看所在组的应用 $app_con = ""; if (Yii::$app->user->getIdentity()->admin != 1) { $app_con = "svr_gid in (0"; $query = DcmdUserGroup::find()->andWhere(['uid' => Yii::$app->user->getId()])->asArray()->all(); if ($query) { foreach ($query as $item) { $app_con .= "," . $item['gid']; } } $app_con .= ")"; } $query = DcmdApp::find()->where($app_con)->orderBy('app_name')->asArray()->all(); $app = array(); foreach ($query as $item) { $app[$item['app_id']] = $item['app_alias']; } $svr = array(); if (array_key_exists('DcmdServicePoolNodeSearch', $params) && array_key_exists('app_id', $params['DcmdServicePoolNodeSearch'])) { $query = DcmdService::find()->andWhere(['app_id' => $params['DcmdServicePoolNodeSearch']['app_id']])->asArray()->all(); if ($query) { foreach ($query as $item) { $svr[$item['svr_id']] = $item['svr_name']; } } if (!array_key_exists($params['DcmdServicePoolNodeSearch']['svr_id'], $svr)) { $params['DcmdServicePoolNodeSearch']['svr_id'] = ""; } } $svr_pool = array(); if (array_key_exists('DcmdServicePoolNodeSearch', $params) && array_key_exists('svr_id', $params['DcmdServicePoolNodeSearch']) && array_key_exists($params['DcmdServicePoolNodeSearch']['svr_id'], $svr)) { $query = DcmdServicePool::find()->andWhere(['svr_id' => $params['DcmdServicePoolNodeSearch']['svr_id']])->asArray()->all(); if ($query) { foreach ($query as $item) { $svr_pool[$item['svr_pool_id']] = $item['svr_pool']; } } } if (array_key_exists('DcmdServicePoolNodeSearch', $params)) { if (!array_key_exists($params['DcmdServicePoolNodeSearch']['svr_pool_id'], $svr_pool)) { $params['DcmdServicePoolNodeSearch']['svr_pool_id'] = ""; } } $searchModel = new DcmdServicePoolNodeSearch(); $dataProvider = $searchModel->search($params); return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'app' => $app, 'svr' => $svr, 'svr_pool' => $svr_pool]); }
public function actionAdd($task_id) { $task_id = Yii::$app->request->queryParams['task_id']; $svr_pool_array = array(); $query = DcmdTaskServicePool::find()->andWhere(['task_id' => $task_id])->asArray()->all(); foreach ($query as $item) { $svr_pool_array[$item['svr_pool_id']] = $item['svr_pool']; } if (Yii::$app->request->post() && array_key_exists('selection', Yii::$app->request->post())) { $ret_msg = ""; $query = DcmdCenter::findOne(['master' => 1]); if ($query) { list($host, $port) = explode(':', $query["host"]); var_dump(Yii::$app->request->post()); ///exit; $task_id = Yii::$app->request->post()['task_id']; $select = Yii::$app->request->post()['selection']; foreach ($select as $k => $v) { list($ip, $svr_pool_id) = explode(',', $v); $reply = execTaskCmd($host, $port, $task_id, Yii::$app->user->getId(), 6, NULL, $ip, NULL, $svr_pool_array[$svr_pool_id]); if ($reply->getState() == 0) { $ret_msg .= $ip . ":添加成功 "; } else { $ret_msg .= $ip . ":添加失败:" . $reply->getErr() . " "; } } } else { $ret_msg = "添加失败:无法获取Center!"; } Yii::$app->getSession()->setFlash('success', $ret_msg); } ///echo "==="; ////var_dump(Yii::$app->request->queryParams); ///获取已经存在池子及对应的ip $query = DcmdTaskNode::find()->andWhere(['task_id' => $task_id])->asArray()->all(); $exist_svr_pool_ip = array(); foreach ($query as $item) { if (array_key_exists($item['svr_pool'], $exist_svr_pool_ip)) { array_push($exist_svr_pool_ip[$item['svr_pool']], $item['ip']); } else { $exist_svr_pool_ip[$item['svr_pool']] = array($item['ip']); } } ///限制服务池子 $query_con = "(1 = 0)"; if (array_key_exists('DcmdServicePoolNodeSearch', Yii::$app->request->queryParams) && array_key_exists('svr_pool_id', Yii::$app->request->queryParams['DcmdServicePoolNodeSearch']) && Yii::$app->request->queryParams['DcmdServicePoolNodeSearch']['svr_pool_id'] != '') { $query_con .= " or (svr_pool_id = " . $Yii::$app->request->queryParams['DcmdServicePoolNodeSearch']['svr_pool_id'] . " and ip not in (0"; ///排除该服务池子对应的ip $svr_pool = $svr_pool_array($Yii::$app->request->queryParams['DcmdServicePoolNodeSearch']['svr_pool_id']); if (array_key_exists($svr_pool, $exist_svr_pool_ip)) { foreach ($exist_svr_pool_ip[$svr_pool] as $ip) { $query_con .= ",'" . $ip . "'"; } } $query_con .= "))"; } else { foreach ($svr_pool_array as $svr_pool_id => $svr_pool) { $query_con .= " or (svr_pool_id = " . $svr_pool_id . " and ip not in (0"; if (array_key_exists($svr_pool, $exist_svr_pool_ip)) { foreach ($exist_svr_pool_ip[$svr_pool] as $ip) { $query_con .= ",'" . $ip . "'"; } } $query_con .= "))"; } } ///echo $query_con;exit; ///排除已经存在的ip $query = DcmdServicePoolNode::find()->where($query_con); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pagesize' => 50]]); $searchModel = new DcmdServicePoolNodeSearch(); $searchModel->load(Yii::$app->request->queryParams); return $this->render('add', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'task_id' => $task_id, 'svr_pool' => $svr_pool_array]); }