diff --git a/module/install/control.php b/module/install/control.php index 1c808b5a58..73e8cf21b8 100644 --- a/module/install/control.php +++ b/module/install/control.php @@ -422,15 +422,14 @@ class install extends control $components = json_decode($solution->components); foreach($components as $categorty => $componentApp) { - if($componentApp->status == 'installing') + $instance = $this->loadModel('instance')->instanceOfSolution($solution, $componentApp->chart); + if($instance && $componentApp->status == 'installing') { - $instance = $this->loadModel('instance')->instanceOfSolution($solution, $componentApp->chart); - if($instance) - { - $chartLogs = $this->loadModel('cne')->getAppLogs($instance); - $logs[$componentApp->chart] = !empty($chartLogs->data) ? $chartLogs->data : array(); - } + $chartLogs = $this->loadModel('cne')->getAppLogs($instance); + $logs[$componentApp->chart] = !empty($chartLogs->data) ? $chartLogs->data : array(); } + + if($instance && $componentApp->status === 'installed') $this->instance->saveAuthInfo($instance); } } } diff --git a/module/instance/control.php b/module/instance/control.php index a17b9e4718..27858a96e0 100644 --- a/module/instance/control.php +++ b/module/instance/control.php @@ -132,7 +132,7 @@ class instance extends control $currentResource = $this->cne->getAppConfig($instance); $customItems = $this->cne->getCustomItems($instance); - if($instance->status == 'running') $this->instanceZen->saveAuthInfo($instance); + if($instance->status == 'running') $this->instance->saveAuthInfo($instance); if(in_array($instance->chart, $this->config->instance->devopsApps)) { $url = strstr(getWebRoot(true), ':', true) . '://' . $instance->domain; diff --git a/module/instance/model.php b/module/instance/model.php index 45b0194f1d..0f46bbf85f 100644 --- a/module/instance/model.php +++ b/module/instance/model.php @@ -2103,4 +2103,62 @@ class InstanceModel extends model return ($existInstance || $existExternal) ? false : true; } + + /** + * 自动保存devops应用授权信息。 + * Auto save auth info of devops. + * + * @param object $instance + * @access protected + * @return void + */ + public function saveAuthInfo(object $instance): void + { + if(!in_array($instance->chart, $this->config->instance->devopsApps)) return; + + $url = strstr(getWebRoot(true), ':', true) . '://' . $instance->domain; + $pipeline = $this->loadModel('pipeline')->getByUrl($url); + if(!empty($pipeline)) return; + + $tempMappings = $this->loadModel('cne')->getSettingsMapping($instance); + if(empty($tempMappings)) return; + + $pipeline = new stdclass(); + $instance->type = $instance->chart; + $pipeline->type = $instance->type; + $pipeline->private = md5(strval(rand(10,113450))); + $pipeline->createdBy = 'system'; + $pipeline->createdDate = helper::now(); + $pipeline->url = $url; + $pipeline->name = $this->generatePipelineName($instance); + $pipeline->token = zget($tempMappings, 'api_token', ''); + $pipeline->account = zget($tempMappings, 'z_username', ''); + $pipeline->password = zget($tempMappings, 'z_password', ''); + if($instance->chart == 'sonarqube') $pipeline->token = base64_encode($pipeline->token . ':'); + if(empty($pipeline->account)) $pipeline->account = zget($tempMappings, 'admin_username', ''); + + $this->pipeline->create($pipeline); + if(dao::isError()) dao::getError(); + } + + /** + * 自动生成pipline表name字段。 + * Auto generate name of pipline table. + * + * @param object $instance + * @access protected + * @return string + */ + public function generatePipelineName(object $instance): string + { + $name = $instance->name; + $type = $instance->type; + if(empty($this->loadModel('pipeline')->getByNameAndType($name, $type))) return $name; + if(empty($this->loadModel('pipeline')->getByNameAndType($name . '-' . $instance->appVersion, $type))) return $name . '-' . $instance->appVersion; + + for($times = 1; $times < 5; $times ++) + { + if(empty($this->loadModel('pipeline')->getByNameAndType($name . '-' . $times, $name))) return $name . '-' . $times; + } + } } diff --git a/module/instance/zen.php b/module/instance/zen.php deleted file mode 100644 index 674eed1faa..0000000000 --- a/module/instance/zen.php +++ /dev/null @@ -1,72 +0,0 @@ - - * @package instance - * @link https://www.zentao.net - */ -class instanceZen extends instance -{ - /** - * 自动保存devops应用授权信息。 - * Auto save auth info of devops. - * - * @param object $instance - * @access protected - * @return void - */ - protected function saveAuthInfo(object $instance): void - { - if(!in_array($instance->chart, $this->config->instance->devopsApps)) return; - - $url = strstr(getWebRoot(true), ':', true) . '://' . $instance->domain; - $pipeline = $this->loadModel('pipeline')->getByUrl($url); - if(!empty($pipeline)) return; - - $tempMappings = $this->loadModel('cne')->getSettingsMapping($instance); - if(empty($tempMappings)) return; - - $pipeline = new stdclass(); - $instance->type = $instance->chart; - $pipeline->type = $instance->type; - $pipeline->private = md5(strval(rand(10,113450))); - $pipeline->createdBy = 'system'; - $pipeline->createdDate = helper::now(); - $pipeline->url = $url; - $pipeline->name = $this->generatePipelineName($instance); - $pipeline->token = zget($tempMappings, 'api_token', ''); - $pipeline->account = zget($tempMappings, 'z_username', ''); - $pipeline->password = zget($tempMappings, 'z_password', ''); - if($instance->appID == 60) $pipeline->token = base64_encode($pipeline->token . ':'); - if(empty($pipeline->account)) $pipeline->account = zget($tempMappings, 'admin_username', ''); - - $this->pipeline->create($pipeline); - if(dao::isError()) dao::getError(); - } - - /** - * 自动保存devops应用授权信息。 - * Auto save auth info of devops. - * - * @param object $instance - * @access protected - * @return string - */ - protected function generatePipelineName(object $instance): string - { - $name = $instance->name; - $type = $instance->type; - if(empty($this->loadModel('pipeline')->getByNameAndType($name, $type))) return $name; - if(empty($this->loadModel('pipeline')->getByNameAndType($name . '-' . $instance->appVersion, $type))) return $name . '-' . $instance->appVersion; - - for($times = 1; $times < 5; $times ++) - { - if(empty($this->loadModel('pipeline')->getByNameAndType($name . '-' . $times, $name))) return $name . '-' . $times; - } - } -} - diff --git a/module/tree/view/browse.html.php b/module/tree/view/browse.html.php index a623fa72b0..d071301f19 100644 --- a/module/tree/view/browse.html.php +++ b/module/tree/view/browse.html.php @@ -54,6 +54,11 @@ if($viewType == 'doc' or $viewType == 'api') $editTitle = $lang->doc->editType; $deleteTitle = $lang->doc->deleteType; } +if($viewType == 'host') +{ + $deleteTitle = $lang->tree->deleteHost; + $editTitle = $lang->tree->editHost; +} ?>