From 7c08fedcd87be6f09a0b2e69665de64bc5c3dadf Mon Sep 17 00:00:00 2001 From: NaturalSelect <2145973003@qq.com> Date: Wed, 30 Aug 2023 14:52:46 +0800 Subject: [PATCH] feat(master): add forbid vol feature Signed-off-by: NaturalSelect <2145973003@qq.com> --- cli/cmd/fmt.go | 1 + master/http_server.go | 3 +++ metanode/partition_op_dentry.go | 2 ++ sdk/master/api_admin.go | 9 +++++++++ 4 files changed, 15 insertions(+) diff --git a/cli/cmd/fmt.go b/cli/cmd/fmt.go index cf317fedb..6b3e2a2c6 100644 --- a/cli/cmd/fmt.go +++ b/cli/cmd/fmt.go @@ -169,6 +169,7 @@ func formatSimpleVolView(svv *proto.SimpleVolView) string { sb.WriteString(fmt.Sprintf(" Tx conflict retry num : %v\n", svv.TxConflictRetryNum)) sb.WriteString(fmt.Sprintf(" Tx conflict retry interval(ms) : %v\n", svv.TxConflictRetryInterval)) sb.WriteString(fmt.Sprintf(" Tx limit interval(s) : %v\n", svv.TxOpLimit)) + sb.WriteString(fmt.Sprintf(" Forbidden : %v\n", svv.Forbidden)) sb.WriteString(fmt.Sprintf(" DisableAuditLog : %v\n", svv.DisableAuditLog)) sb.WriteString(fmt.Sprintf(" Forbidden : %v\n", svv.Forbidden)) sb.WriteString(fmt.Sprintf(" DpRepairBlockSize : %v\n", strutil.FormatSize(svv.DpRepairBlockSize))) diff --git a/master/http_server.go b/master/http_server.go index 8728992f9..024fd824f 100644 --- a/master/http_server.go +++ b/master/http_server.go @@ -286,6 +286,9 @@ func (m *Server) registerAPIRoutes(router *mux.Router) { router.NewRoute().Methods(http.MethodGet, http.MethodPost). Path(proto.AdminClusterFreeze). HandlerFunc(m.setupAutoAllocation) + router.NewRoute().Methods(http.MethodGet, http.MethodPost). + Path(proto.AdminVolForbidden). + HandlerFunc(m.forbidVolume) router.NewRoute().Methods(http.MethodGet, http.MethodPost). Path(proto.AdminVolEnableAuditLog). HandlerFunc(m.setEnableAuditLogForVolume) diff --git a/metanode/partition_op_dentry.go b/metanode/partition_op_dentry.go index c98e46ebe..c927bd0ac 100644 --- a/metanode/partition_op_dentry.go +++ b/metanode/partition_op_dentry.go @@ -20,6 +20,8 @@ import ( "sync/atomic" "time" + "github.com/cubefs/cubefs/util/log" + "github.com/cubefs/cubefs/proto" "github.com/cubefs/cubefs/util/auditlog" "github.com/cubefs/cubefs/util/errors" diff --git a/sdk/master/api_admin.go b/sdk/master/api_admin.go index 9fda738c4..8706f0feb 100644 --- a/sdk/master/api_admin.go +++ b/sdk/master/api_admin.go @@ -391,6 +391,15 @@ func (api *AdminAPI) SetVolumeForbidden(volName string, forbidden bool) (err err _, err = api.mc.serveRequest(request) return } +func (api *AdminAPI) SetVolumeForbidden(volName string, forbidden bool) (err error) { + request := newAPIRequest(http.MethodGet, proto.AdminVolForbidden) + request.addParam("name", volName) + request.addParam("forbidden", strconv.FormatBool(forbidden)) + if _, err = api.mc.serveRequest(request); err != nil { + return + } + return +} func (api *AdminAPI) SetVolumeAuditLog(volName string, enable bool) (err error) { request := newRequest(post, proto.AdminVolEnableAuditLog).Header(api.h)