diff --git a/internal/web/actions/default/clusters/cluster/createNode.go b/internal/web/actions/default/clusters/cluster/createNode.go
index fb4fb22b..ccebf73f 100644
--- a/internal/web/actions/default/clusters/cluster/createNode.go
+++ b/internal/web/actions/default/clusters/cluster/createNode.go
@@ -37,6 +37,33 @@ func (this *CreateNodeAction) RunGet(params struct {
}
this.Data["leftMenuItems"] = leftMenuItems
+ // DNS线路
+ clusterDNSResp, err := this.RPC().NodeClusterRPC().FindEnabledNodeClusterDNS(this.AdminContext(), &pb.FindEnabledNodeClusterDNSRequest{NodeClusterId: params.ClusterId})
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
+ dnsRouteMaps := []maps.Map{}
+ this.Data["dnsDomainId"] = 0
+ if clusterDNSResp.Domain != nil {
+ domainId := clusterDNSResp.Domain.Id
+ this.Data["dnsDomainId"] = domainId
+ if domainId > 0 {
+ routesResp, err := this.RPC().DNSDomainRPC().FindAllDNSDomainRoutes(this.AdminContext(), &pb.FindAllDNSDomainRoutesRequest{DnsDomainId: domainId})
+ if err != nil {
+ this.ErrorPage(err)
+ return
+ }
+ for _, route := range routesResp.Routes {
+ dnsRouteMaps = append(dnsRouteMaps, maps.Map{
+ "name": route.Name,
+ "code": route.Code,
+ })
+ }
+ }
+ }
+ this.Data["dnsRoutes"] = dnsRouteMaps
+
this.Show()
}
@@ -49,6 +76,9 @@ func (this *CreateNodeAction) RunPost(params struct {
SshHost string
SshPort int
+ DnsDomainId int64
+ DnsRoute string
+
Must *actions.Must
}) {
params.Must.
@@ -78,10 +108,12 @@ func (this *CreateNodeAction) RunPost(params struct {
// 保存
createResp, err := this.RPC().NodeRPC().CreateNode(this.AdminContext(), &pb.CreateNodeRequest{
- Name: params.Name,
- ClusterId: params.ClusterId,
- GroupId: params.GroupId,
- Login: loginInfo,
+ Name: params.Name,
+ ClusterId: params.ClusterId,
+ GroupId: params.GroupId,
+ Login: loginInfo,
+ DnsDomainId: params.DnsDomainId,
+ DnsRoute: params.DnsRoute,
})
if err != nil {
this.ErrorPage(err)
diff --git a/internal/web/actions/default/clusters/cluster/index.go b/internal/web/actions/default/clusters/cluster/index.go
index a272ff2d..b233c78c 100644
--- a/internal/web/actions/default/clusters/cluster/index.go
+++ b/internal/web/actions/default/clusters/cluster/index.go
@@ -102,6 +102,7 @@ func (this *IndexAction) RunGet(params struct {
"name": node.Name,
"isInstalled": node.IsInstalled,
"isOn": node.IsOn,
+ "isUp": node.IsUp,
"installStatus": maps.Map{
"isRunning": node.InstallStatus.IsRunning,
"isFinished": node.InstallStatus.IsFinished,
diff --git a/internal/web/actions/default/clusters/cluster/settings/dns/index.go b/internal/web/actions/default/clusters/cluster/settings/dns/index.go
index e82c1fe4..3102ac95 100644
--- a/internal/web/actions/default/clusters/cluster/settings/dns/index.go
+++ b/internal/web/actions/default/clusters/cluster/settings/dns/index.go
@@ -39,6 +39,8 @@ func (this *IndexAction) RunGet(params struct {
return
}
this.Data["dnsName"] = dnsInfoResp.Name
+ this.Data["nodesAutoSync"] = dnsInfoResp.NodesAutoSync
+ this.Data["serversAutoSync"] = dnsInfoResp.ServersAutoSync
if dnsInfoResp.Domain != nil {
this.Data["domainId"] = dnsInfoResp.Domain.Id
this.Data["domainName"] = dnsInfoResp.Domain.Name
@@ -50,8 +52,10 @@ func (this *IndexAction) RunGet(params struct {
func (this *IndexAction) RunPost(params struct {
ClusterId int64
- DnsDomainId int64
- DnsName string
+ DnsDomainId int64
+ DnsName string
+ NodesAutoSync bool
+ ServersAutoSync bool
Must *actions.Must
CSRF *actionutils.CSRF
@@ -80,9 +84,11 @@ func (this *IndexAction) RunPost(params struct {
}
_, err := this.RPC().NodeClusterRPC().UpdateNodeClusterDNS(this.AdminContext(), &pb.UpdateNodeClusterDNSRequest{
- NodeClusterId: params.ClusterId,
- DnsName: params.DnsName,
- DnsDomainId: params.DnsDomainId,
+ NodeClusterId: params.ClusterId,
+ DnsName: params.DnsName,
+ DnsDomainId: params.DnsDomainId,
+ NodesAutoSync: params.NodesAutoSync,
+ ServersAutoSync: params.ServersAutoSync,
})
if err != nil {
this.ErrorPage(err)
diff --git a/internal/web/actions/default/clusters/clusterutils/cluster_helper.go b/internal/web/actions/default/clusters/clusterutils/cluster_helper.go
index 58df7f44..9a0302f4 100644
--- a/internal/web/actions/default/clusters/clusterutils/cluster_helper.go
+++ b/internal/web/actions/default/clusters/clusterutils/cluster_helper.go
@@ -51,9 +51,9 @@ func (this *ClusterHelper) BeforeAction(action *actions.ActionObject) {
tabbar := actionutils.NewTabbar()
tabbar.Add("集群列表", "", "/clusters", "", false)
- tabbar.Add("节点", "", "/clusters/cluster?clusterId="+clusterIdString, "server", selectedTabbar == "node")
- tabbar.Add("设置", "", "/clusters/cluster/settings?clusterId="+clusterIdString, "setting", selectedTabbar == "setting")
- tabbar.Add("删除", "", "/clusters/cluster/delete?clusterId="+clusterIdString, "trash", selectedTabbar == "delete")
+ tabbar.Add("集群节点", "", "/clusters/cluster?clusterId="+clusterIdString, "server", selectedTabbar == "node")
+ tabbar.Add("集群设置", "", "/clusters/cluster/settings?clusterId="+clusterIdString, "setting", selectedTabbar == "setting")
+ tabbar.Add("删除集群", "", "/clusters/cluster/delete?clusterId="+clusterIdString, "trash", selectedTabbar == "delete")
{
m := tabbar.Add("当前集群:"+cluster.Name, "", "/clusters/cluster?clusterId="+clusterIdString, "", false)
diff --git a/internal/web/actions/default/dns/updateClusterPopup.go b/internal/web/actions/default/dns/updateClusterPopup.go
index e2313b67..26dd602e 100644
--- a/internal/web/actions/default/dns/updateClusterPopup.go
+++ b/internal/web/actions/default/dns/updateClusterPopup.go
@@ -29,6 +29,8 @@ func (this *UpdateClusterPopupAction) RunGet(params struct {
return
}
this.Data["dnsName"] = dnsResp.Name
+ this.Data["nodesAutoSync"] = dnsResp.NodesAutoSync
+ this.Data["serversAutoSync"] = dnsResp.ServersAutoSync
if dnsResp.Domain != nil {
this.Data["domainId"] = dnsResp.Domain.Id
this.Data["domain"] = dnsResp.Domain.Name
@@ -63,9 +65,11 @@ func (this *UpdateClusterPopupAction) RunGet(params struct {
}
func (this *UpdateClusterPopupAction) RunPost(params struct {
- ClusterId int64
- DnsName string
- DomainId int64
+ ClusterId int64
+ DnsName string
+ DomainId int64
+ NodesAutoSync bool
+ ServersAutoSync bool
Must *actions.Must
CSRF *actionutils.CSRF
@@ -94,9 +98,11 @@ func (this *UpdateClusterPopupAction) RunPost(params struct {
}
_, err = this.RPC().NodeClusterRPC().UpdateNodeClusterDNS(this.AdminContext(), &pb.UpdateNodeClusterDNSRequest{
- NodeClusterId: params.ClusterId,
- DnsName: params.DnsName,
- DnsDomainId: params.DomainId,
+ NodeClusterId: params.ClusterId,
+ DnsName: params.DnsName,
+ DnsDomainId: params.DomainId,
+ NodesAutoSync: params.NodesAutoSync,
+ ServersAutoSync: params.ServersAutoSync,
})
if err != nil {
this.ErrorPage(err)
diff --git a/internal/web/actions/default/nodes/delete.go b/internal/web/actions/default/nodes/delete.go
index 41f93a16..de3381ee 100644
--- a/internal/web/actions/default/nodes/delete.go
+++ b/internal/web/actions/default/nodes/delete.go
@@ -13,7 +13,7 @@ type DeleteAction struct {
func (this *DeleteAction) RunPost(params struct {
NodeId int64
}) {
- _, err := this.RPC().NodeRPC().DisableNode(this.AdminContext(), &pb.DisableNodeRequest{NodeId: params.NodeId})
+ _, err := this.RPC().NodeRPC().DeleteNode(this.AdminContext(), &pb.DeleteNodeRequest{NodeId: params.NodeId})
if err != nil {
this.ErrorPage(err)
return
diff --git a/web/public/js/components/common/health-check-config-box.js b/web/public/js/components/common/health-check-config-box.js
index 48da937d..eb31aed7 100644
--- a/web/public/js/components/common/health-check-config-box.js
+++ b/web/public/js/components/common/health-check-config-box.js
@@ -14,7 +14,10 @@ Vue.component("health-check-config-box", {
statusCodes: [200],
timeout: {count: 10, unit: "second"},
countTries: 3,
- tryDelay: {count: 100, unit: "ms"}
+ tryDelay: {count: 100, unit: "ms"},
+ autoDown: true,
+ countUp: 1,
+ countDown: 1
}
let that = this
setTimeout(function () {
@@ -44,7 +47,14 @@ Vue.component("health-check-config-box", {
if (healthCheckConfig.tryDelay == null) {
healthCheckConfig.tryDelay = {count: 100, unit: "ms"}
}
+ if (healthCheckConfig.countUp == null || healthCheckConfig.countUp < 1) {
+ healthCheckConfig.countUp = 1
+ }
+ if (healthCheckConfig.countDown == null || healthCheckConfig.countDown < 1) {
+ healthCheckConfig.countDown = 1
+ }
}
+ console.log(healthCheckConfig.countUp, healthCheckConfig.countDown)
return {
healthCheck: healthCheckConfig,
advancedVisible: false,
@@ -79,6 +89,22 @@ Vue.component("health-check-config-box", {
} else {
this.healthCheck.countTries = 0
}
+ },
+ "healthCheck.countUp": function (v) {
+ let count = parseInt(v)
+ if (!isNaN(count)) {
+ this.healthCheck.countUp = count
+ } else {
+ this.healthCheck.countUp = 0
+ }
+ },
+ "healthCheck.countDown": function (v) {
+ let count = parseInt(v)
+ if (!isNaN(count)) {
+ this.healthCheck.countDown = count
+ } else {
+ this.healthCheck.countDown = 0
+ }
}
},
methods: {
@@ -145,6 +171,30 @@ Vue.component("health-check-config-box", {
选中后系统会根据健康检查的结果自动标记节点的上线/下线状态。
+连续N次检查成功后自动恢复上线。
+连续N次检查失败后自动下线。
+用于访问节点和域名解析等。
+可用线路是根据集群设置的域名获取的,注意DNS服务商可能对这些线路有所限制。
比如192.168.1.100
-常见的比如22。
-比如192.168.1.100
+常见的比如22。
+用于访问节点和域名解析等。
和主域名一起组成子域名。
| 集群 | -{{cluster.name}} | +|
| 子域名 | diff --git a/web/views/@default/dns/clusters/cluster.js b/web/views/@default/dns/clusters/cluster.js index 1718e584..45482f8d 100644 --- a/web/views/@default/dns/clusters/cluster.js +++ b/web/views/@default/dns/clusters/cluster.js @@ -1,7 +1,7 @@ Tea.context(function () { this.updateCluster = function (clusterId) { teaweb.popup("/dns/updateClusterPopup?clusterId=" + clusterId, { - height: "22em", + height: "25em", callback: function () { teaweb.success("保存成功", function () { teaweb.reload() diff --git a/web/views/@default/dns/index.js b/web/views/@default/dns/index.js index 2227ab69..bda1984e 100644 --- a/web/views/@default/dns/index.js +++ b/web/views/@default/dns/index.js @@ -1,7 +1,7 @@ Tea.context(function () { this.updateCluster = function (clusterId) { teaweb.popup("/dns/updateClusterPopup?clusterId=" + clusterId, { - height: "22em", + height: "25em", callback: function () { teaweb.success("保存成功", function () { teaweb.reload() diff --git a/web/views/@default/dns/issues/index.js b/web/views/@default/dns/issues/index.js index fb9d38d1..abc6488e 100644 --- a/web/views/@default/dns/issues/index.js +++ b/web/views/@default/dns/issues/index.js @@ -8,7 +8,7 @@ Tea.context(function () { this.updateCluster = function (clusterId) { let that = this teaweb.popup("/dns/updateClusterPopup?clusterId=" + clusterId, { - height: "22em", + height: "25em", callback: function () { teaweb.success("保存成功", function () { that.reload() diff --git a/web/views/@default/dns/updateClusterPopup.html b/web/views/@default/dns/updateClusterPopup.html index baf72101..a041379d 100644 --- a/web/views/@default/dns/updateClusterPopup.html +++ b/web/views/@default/dns/updateClusterPopup.html @@ -43,6 +43,29 @@||
| 是否同步节点DNS状态 | +
+
+
+
+
+ |
+ |
| 是否同步网站服务DNS状态 | +
+
+
+
+
+ |
+ |