节点可以单独设置缓存的磁盘、内存容量

This commit is contained in:
GoEdgeLab
2021-05-12 21:37:43 +08:00
parent b376fcda27
commit f01eb13cb1
4 changed files with 246 additions and 121 deletions

View File

@@ -185,6 +185,33 @@ func (this *NodeAction) RunGet(params struct {
} }
} }
// 缓存硬盘 & 内存容量
var maxCacheDiskCapacity maps.Map = nil
if node.MaxCacheDiskCapacity != nil {
maxCacheDiskCapacity = maps.Map{
"count": node.MaxCacheDiskCapacity.Count,
"unit": node.MaxCacheDiskCapacity.Unit,
}
} else {
maxCacheDiskCapacity = maps.Map{
"count": 0,
"unit": "gb",
}
}
var maxCacheMemoryCapacity maps.Map = nil
if node.MaxCacheMemoryCapacity != nil {
maxCacheMemoryCapacity = maps.Map{
"count": node.MaxCacheMemoryCapacity.Count,
"unit": node.MaxCacheMemoryCapacity.Unit,
}
} else {
maxCacheMemoryCapacity = maps.Map{
"count": 0,
"unit": "gb",
}
}
this.Data["node"] = maps.Map{ this.Data["node"] = maps.Map{
"id": node.Id, "id": node.Id,
"name": node.Name, "name": node.Name,
@@ -217,6 +244,9 @@ func (this *NodeAction) RunGet(params struct {
"group": groupMap, "group": groupMap,
"region": regionMap, "region": regionMap,
"maxCacheDiskCapacity": maxCacheDiskCapacity,
"maxCacheMemoryCapacity": maxCacheMemoryCapacity,
} }
this.Show() this.Show()

View File

@@ -7,6 +7,7 @@ import (
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils"
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/ipAddresses/ipaddressutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes/ipAddresses/ipaddressutils"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
"github.com/iwind/TeaGo/actions" "github.com/iwind/TeaGo/actions"
"github.com/iwind/TeaGo/maps" "github.com/iwind/TeaGo/maps"
) )
@@ -156,6 +157,33 @@ func (this *UpdateAction) RunGet(params struct {
} }
} }
// 缓存硬盘 & 内存容量
var maxCacheDiskCapacity maps.Map = nil
if node.MaxCacheDiskCapacity != nil {
maxCacheDiskCapacity = maps.Map{
"count": node.MaxCacheDiskCapacity.Count,
"unit": node.MaxCacheDiskCapacity.Unit,
}
} else {
maxCacheDiskCapacity = maps.Map{
"count": 0,
"unit": "gb",
}
}
var maxCacheMemoryCapacity maps.Map = nil
if node.MaxCacheMemoryCapacity != nil {
maxCacheMemoryCapacity = maps.Map{
"count": node.MaxCacheMemoryCapacity.Count,
"unit": node.MaxCacheMemoryCapacity.Unit,
}
} else {
maxCacheMemoryCapacity = maps.Map{
"count": 0,
"unit": "gb",
}
}
this.Data["node"] = maps.Map{ this.Data["node"] = maps.Map{
"id": node.Id, "id": node.Id,
"name": node.Name, "name": node.Name,
@@ -166,6 +194,8 @@ func (this *UpdateAction) RunGet(params struct {
"isOn": node.IsOn, "isOn": node.IsOn,
"group": groupMap, "group": groupMap,
"region": regionMap, "region": regionMap,
"maxCacheDiskCapacity": maxCacheDiskCapacity,
"maxCacheMemoryCapacity": maxCacheMemoryCapacity,
} }
// 所有集群 // 所有集群
@@ -202,6 +232,8 @@ func (this *UpdateAction) RunPost(params struct {
SshPort int SshPort int
MaxCPU int32 MaxCPU int32
IsOn bool IsOn bool
MaxCacheDiskCapacityJSON []byte
MaxCacheMemoryCapacityJSON []byte
DnsDomainId int64 DnsDomainId int64
DnsRoutesJSON []byte DnsRoutesJSON []byte
@@ -258,6 +290,35 @@ func (this *UpdateAction) RunPost(params struct {
}.AsJSON(), }.AsJSON(),
} }
// 缓存硬盘 & 内存容量
var pbMaxCacheDiskCapacity *pb.SizeCapacity
if len(params.MaxCacheDiskCapacityJSON) > 0 {
var sizeCapacity = &shared.SizeCapacity{}
err := json.Unmarshal(params.MaxCacheDiskCapacityJSON, sizeCapacity)
if err != nil {
this.ErrorPage(err)
return
}
pbMaxCacheDiskCapacity = &pb.SizeCapacity{
Count: sizeCapacity.Count,
Unit: sizeCapacity.Unit,
}
}
var pbMaxCacheMemoryCapacity *pb.SizeCapacity
if len(params.MaxCacheMemoryCapacityJSON) > 0 {
var sizeCapacity = &shared.SizeCapacity{}
err := json.Unmarshal(params.MaxCacheMemoryCapacityJSON, sizeCapacity)
if err != nil {
this.ErrorPage(err)
return
}
pbMaxCacheMemoryCapacity = &pb.SizeCapacity{
Count: sizeCapacity.Count,
Unit: sizeCapacity.Unit,
}
}
// 保存 // 保存
_, err := this.RPC().NodeRPC().UpdateNode(this.AdminContext(), &pb.UpdateNodeRequest{ _, err := this.RPC().NodeRPC().UpdateNode(this.AdminContext(), &pb.UpdateNodeRequest{
NodeId: params.NodeId, NodeId: params.NodeId,
@@ -270,6 +331,8 @@ func (this *UpdateAction) RunPost(params struct {
IsOn: params.IsOn, IsOn: params.IsOn,
DnsDomainId: params.DnsDomainId, DnsDomainId: params.DnsDomainId,
DnsRoutes: dnsRouteCodes, DnsRoutes: dnsRouteCodes,
MaxCacheDiskCapacity: pbMaxCacheDiskCapacity,
MaxCacheMemoryCapacity: pbMaxCacheMemoryCapacity,
}) })
if err != nil { if err != nil {
this.ErrorPage(err) this.ErrorPage(err)

View File

@@ -122,6 +122,24 @@
<span v-else class="disabled">没有限制。</span> <span v-else class="disabled">没有限制。</span>
</td> </td>
</tr> </tr>
<tr>
<td>缓存磁盘容量</td>
<td>
<span v-if="node.maxCacheDiskCapacity == null || node.maxCacheDiskCapacity.count <= 0" class="disabled">没有限制</span>
<div v-else>
<size-capacity-view :v-value="node.maxCacheDiskCapacity"></size-capacity-view>
</div>
</td>
</tr>
<tr>
<td>缓存内存容量</td>
<td>
<span v-if="node.maxCacheMemoryCapacity == null || node.maxCacheMemoryCapacity.count <= 0" class="disabled">没有限制</span>
<div v-else>
<size-capacity-view :v-value="node.maxCacheMemoryCapacity"></size-capacity-view>
</div>
</td>
</tr>
</tbody> </tbody>
</table> </table>
<div class="ui divider"></div> <div class="ui divider"></div>

View File

@@ -77,10 +77,24 @@
<tr> <tr>
<td>CPU线程数</td> <td>CPU线程数</td>
<td> <td>
<input type="text" name="maxCPU" v-model="node.maxCPU"/> <input type="text" name="maxCPU" v-model="node.maxCPU" style="width:5em" maxlength="5em"/>
<p class="comment">当前节点可以使用的最多的CPU线程数如果为0表示可以使用全部CPU。</p> <p class="comment">当前节点可以使用的最多的CPU线程数如果为0表示可以使用全部CPU。</p>
</td> </td>
</tr> </tr>
<tr>
<td>缓存磁盘容量</td>
<td>
<size-capacity-box :v-value="node.maxCacheDiskCapacity" :v-name="'maxCacheDiskCapacityJSON'"></size-capacity-box>
<p class="comment">缓存能使用的磁盘的最大容量0表示不限制。</p>
</td>
</tr>
<tr>
<td>缓存内存容量</td>
<td>
<size-capacity-box :v-value="node.maxCacheMemoryCapacity" :v-name="'maxCacheMemoryCapacityJSON'"></size-capacity-box>
<p class="comment">缓存能使用的内存的最大容量0表示不限制。</p>
</td>
</tr>
<tr> <tr>
<td>是否启用</td> <td>是否启用</td>
<td> <td>