diff --git a/module/cne/model.php b/module/cne/model.php index af4ec3ee66..ffabdaca48 100644 --- a/module/cne/model.php +++ b/module/cne/model.php @@ -306,10 +306,11 @@ class cneModel extends model { $diskSetting = new stdclass; $diskSetting->resizable = false; - $diskSetting->size = 0; - $diskSetting->used = 0; - $diskSetting->limit = 0; - $diskSetting->name = ''; + $diskSetting->size = 0; + $diskSetting->used = 0; + $diskSetting->limit = 0; + $diskSetting->name = ''; + $diskSetting->requestSize = 0; $volumes = $this->getAppVolumes($instance, $component); if($volumes) @@ -319,10 +320,11 @@ class cneModel extends model if(!$volume->is_block_device) return $diskSetting; $diskSetting->resizable = true; - $diskSetting->size = ceil($volume->size / 1073741824); - $diskSetting->used = ceil($volume->actual_size / 1073741824); - $diskSetting->limit = floor($volume->max_increase_size / 1073741824); - $diskSetting->name = $volume->setting_keys->size->path; + $diskSetting->size = ceil($volume->size / 1073741824); + $diskSetting->used = ceil($volume->actual_size / 1073741824); + $diskSetting->limit = floor($volume->max_increase_size / 1073741824); + $diskSetting->name = $volume->setting_keys->size->path; + $diskSetting->requestSize = ceil($volume->request_size / 1073741824); break; } } diff --git a/module/instance/control.php b/module/instance/control.php index c330e5fa59..71845773f7 100644 --- a/module/instance/control.php +++ b/module/instance/control.php @@ -44,7 +44,6 @@ class instance extends control public function view(int $id, string $type = 'store', string $tab = 'baseinfo') { if(!commonModel::hasPriv('space', 'browse')) $this->loadModel('common')->deny('space', 'browse', false); - if($type === 'store') { $this->instanceZen->storeView($id, $tab); @@ -92,10 +91,8 @@ class instance extends control if(!commonModel::hasPriv('instance', 'manage')) $this->loadModel('common')->deny('instance', 'manage', false); $instance = $this->instance->getByID($id); $currentResource = $this->cne->getAppConfig($instance); - if(empty($component)) $component = false; $diskSettings = $this->cne->getDiskSettings($instance, $component); - $this->lang->instance->errors->invalidDiskSize = sprintf($this->lang->instance->errors->invalidDiskSize, $diskSettings->size, $diskSettings->limit); $this->lang->instance->tips->resizeDisk = sprintf($this->lang->instance->tips->resizeDisk, $diskSettings->size, $diskSettings->limit); @@ -125,7 +122,7 @@ class instance extends control } $disk = $newInstance->disk_gb; - if(is_numeric($disk) && $disk != $diskSettings->size) + if(is_numeric($disk) && $disk != $diskSettings->size && $disk != $diskSettings->requestSize) { if($disk < $diskSettings->size || $disk > $diskSettings->limit) return $this->send(array('result' => 'fail', 'message' => $this->lang->instance->errors->invalidDiskSize)); if(!$this->instance->updateVolSize($instance, $disk . 'Gi', $diskSettings->name)) return $this->send(array('result' => 'fail', 'message' => dao::getError())); diff --git a/module/instance/js/view.ui.js b/module/instance/js/view.ui.js index 7ecf03e2da..58e427439c 100644 --- a/module/instance/js/view.ui.js +++ b/module/instance/js/view.ui.js @@ -25,6 +25,7 @@ $('#mainContent').on('click', '.db-management', function() }); var currentStatus = instanceStatus; +var currentDiskStatus = null; var timer = null; const postData = new FormData(); postData.append('idList[]', instanceID); @@ -54,10 +55,11 @@ function refreshStatus() { if(res.data.length == 0) return false; - if(currentStatus != res.data[0].status) + if(currentStatus != res.data[0].status || currentDiskStatus != res.data[0].diskStatus) { loadPage($.createLink('instance', 'view', `instanceID=${instanceID}`), '#setting,#statusTD,#dbStatusTD,#systemLoad,.float-toolbar'); currentStatus = res.data[0].status; + currentDiskStatus = res.data[0].diskStatus; return false; } } diff --git a/module/instance/lang/de.php b/module/instance/lang/de.php index 3de8cd30a6..82f0d7e45c 100644 --- a/module/instance/lang/de.php +++ b/module/instance/lang/de.php @@ -360,4 +360,5 @@ $lang->instance->tips = new stdclass; $lang->instance->tips->resizeDisk = 'Fill in an integer from %s to %s with unit GB'; $lang->instance->tips->resizeDiskDisabled = 'The disk space not adjustable'; $lang->instance->tips->fSettingsAttention = 'Changing the Settings of CPU, memory, disk, etc. will restart the application, and the disk space size can only be increased, not reduced, please be careful!'; -$lang->instance->tips->pSettingsAttention = 'Changing the CPU, memory, and other Settings will restart the application, please be careful!'; \ No newline at end of file +$lang->instance->tips->pSettingsAttention = 'Changing the CPU, memory, and other Settings will restart the application, please be careful!'; +$lang->instance->tips->diskAdjusting = 'The disk cannot be adjusted during disk expansion'; \ No newline at end of file diff --git a/module/instance/lang/en.php b/module/instance/lang/en.php index 3de8cd30a6..82f0d7e45c 100644 --- a/module/instance/lang/en.php +++ b/module/instance/lang/en.php @@ -360,4 +360,5 @@ $lang->instance->tips = new stdclass; $lang->instance->tips->resizeDisk = 'Fill in an integer from %s to %s with unit GB'; $lang->instance->tips->resizeDiskDisabled = 'The disk space not adjustable'; $lang->instance->tips->fSettingsAttention = 'Changing the Settings of CPU, memory, disk, etc. will restart the application, and the disk space size can only be increased, not reduced, please be careful!'; -$lang->instance->tips->pSettingsAttention = 'Changing the CPU, memory, and other Settings will restart the application, please be careful!'; \ No newline at end of file +$lang->instance->tips->pSettingsAttention = 'Changing the CPU, memory, and other Settings will restart the application, please be careful!'; +$lang->instance->tips->diskAdjusting = 'The disk cannot be adjusted during disk expansion'; \ No newline at end of file diff --git a/module/instance/lang/fr.php b/module/instance/lang/fr.php index 3de8cd30a6..82f0d7e45c 100644 --- a/module/instance/lang/fr.php +++ b/module/instance/lang/fr.php @@ -360,4 +360,5 @@ $lang->instance->tips = new stdclass; $lang->instance->tips->resizeDisk = 'Fill in an integer from %s to %s with unit GB'; $lang->instance->tips->resizeDiskDisabled = 'The disk space not adjustable'; $lang->instance->tips->fSettingsAttention = 'Changing the Settings of CPU, memory, disk, etc. will restart the application, and the disk space size can only be increased, not reduced, please be careful!'; -$lang->instance->tips->pSettingsAttention = 'Changing the CPU, memory, and other Settings will restart the application, please be careful!'; \ No newline at end of file +$lang->instance->tips->pSettingsAttention = 'Changing the CPU, memory, and other Settings will restart the application, please be careful!'; +$lang->instance->tips->diskAdjusting = 'The disk cannot be adjusted during disk expansion'; \ No newline at end of file diff --git a/module/instance/lang/zh-cn.php b/module/instance/lang/zh-cn.php index 6eeff1eb58..3ac47032eb 100644 --- a/module/instance/lang/zh-cn.php +++ b/module/instance/lang/zh-cn.php @@ -360,4 +360,5 @@ $lang->instance->tips = new stdclass; $lang->instance->tips->resizeDisk = '填写%s~%s的整数,单位GB'; $lang->instance->tips->resizeDiskDisabled = '该应用的磁盘空间不可调整'; $lang->instance->tips->fSettingsAttention = '修改CPU、内存、磁盘等设置会重启应用,且磁盘空间大小只能增加不可减少,请谨慎操作!'; -$lang->instance->tips->pSettingsAttention = '修改CPU、内存等设置会重启应用,请谨慎操作!'; \ No newline at end of file +$lang->instance->tips->pSettingsAttention = '修改CPU、内存等设置会重启应用,请谨慎操作!'; +$lang->instance->tips->diskAdjusting = '磁盘扩容中,暂不可调整'; \ No newline at end of file diff --git a/module/instance/model.php b/module/instance/model.php index 62a21c2383..fe5cf69d54 100644 --- a/module/instance/model.php +++ b/module/instance/model.php @@ -868,10 +868,11 @@ class instanceModel extends model if($instance->status == 'running') $this->saveAuthInfo($instance); } + $diskSettings = $this->cne->getDiskSettings($instance); $status = new stdclass; - $status->id = $instance->id; - $status->status = $instance->status; - + $status->id = $instance->id; + $status->status = $instance->status; + $status->diskStatus = $diskSettings->requestSize != $diskSettings->size ? 'adjust' : 'normal'; $newStatusList[] = $status; } diff --git a/module/instance/ui/setting.html.php b/module/instance/ui/setting.html.php index 07f8304376..f22df0e4f4 100644 --- a/module/instance/ui/setting.html.php +++ b/module/instance/ui/setting.html.php @@ -71,13 +71,17 @@ formPanel ( set::type('number'), set::name('disk_gb'), - set::value($diskSettings->size), + set::value($diskSettings->requestSize), set::placeholder($lang->instance->tips->resizeDisk), set::min($diskSettings->size), - set::max($diskSettings->limit) + set::max($diskSettings->limit), + set::disabled($diskSettings->requestSize != $diskSettings->size) ), span('GB', set::className('input-group-addon')) - ) + ), + $diskSettings->size != $diskSettings->requestSize ? + span($lang->instance->tips->diskAdjusting,set::className('form-tip text-warning')) : + span($lang->instance->tips->resizeDisk,set::className('form-tip text-info')) ) ) );