Skip to content

Commit d974d07

Browse files
Rakshith-Rmergify[bot]
authored andcommitted
util: gatekeep autoUnfence in GetFenceClient req
This commit modifies code to make use of enableFence config to determine whether to auto unfence or not. Signed-off-by: Rakshith R <[email protected]>
1 parent df76231 commit d974d07

File tree

7 files changed

+26
-17
lines changed

7 files changed

+26
-17
lines changed

internal/cephfs/driver.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ func (fs *cephfsDriver) setupCSIAddonsServer(conf *util.Config) error {
233233
fs.cas.RegisterService(is)
234234

235235
if conf.IsControllerServer || conf.IsNodeServer {
236-
fcs := casceph.NewFenceControllerServer()
236+
fcs := casceph.NewFenceControllerServer(conf.EnableFencing)
237237
fs.cas.RegisterService(fcs)
238238
}
239239

internal/csi-addons/cephfs/network_fence.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,15 @@ import (
3333
// of CSI-Addons networkfence controller service spec.
3434
type FenceControllerServer struct {
3535
*fence.UnimplementedFenceControllerServer
36+
enableFencing bool
3637
}
3738

3839
// NewFenceControllerServer creates a new FenceControllerServer which handles
3940
// the FenceController Service requests from the CSI-Addons specification.
40-
func NewFenceControllerServer() *FenceControllerServer {
41-
return &FenceControllerServer{}
41+
func NewFenceControllerServer(enableFencing bool) *FenceControllerServer {
42+
return &FenceControllerServer{
43+
enableFencing: enableFencing,
44+
}
4245
}
4346

4447
// RegisterService registers the FenceControllerServer's service
@@ -124,5 +127,5 @@ func (fcs *FenceControllerServer) GetFenceClients(
124127
ctx context.Context,
125128
req *fence.GetFenceClientsRequest,
126129
) (*fence.GetFenceClientsResponse, error) {
127-
return nf.GetFenceClients(ctx, req)
130+
return nf.GetFenceClients(ctx, req, fcs.enableFencing)
128131
}

internal/csi-addons/cephfs/network_fence_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import (
2929
func TestFenceClusterNetwork(t *testing.T) {
3030
t.Parallel()
3131

32-
controller := NewFenceControllerServer()
32+
controller := NewFenceControllerServer(true)
3333

3434
req := &fence.FenceClusterNetworkRequest{
3535
Parameters: map[string]string{},
@@ -46,7 +46,7 @@ func TestFenceClusterNetwork(t *testing.T) {
4646
// operations can not be performed.
4747
func TestUnfenceClusterNetwork(t *testing.T) {
4848
t.Parallel()
49-
controller := NewFenceControllerServer()
49+
controller := NewFenceControllerServer(true)
5050

5151
req := &fence.UnfenceClusterNetworkRequest{
5252
Parameters: map[string]string{},

internal/csi-addons/networkfence/fencing.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,7 @@ func (nf *NetworkFence) parseBlocklistForCIDR(ctx context.Context, blocklist, ci
461461
func GetFenceClients(
462462
ctx context.Context,
463463
req *fence.GetFenceClientsRequest,
464+
enableFencing bool,
464465
) (*fence.GetFenceClientsResponse, error) {
465466
options := req.GetParameters()
466467
clusterID, err := util.GetClusterID(options)
@@ -509,12 +510,14 @@ func GetFenceClients(
509510
return nil, status.Errorf(codes.Internal, "failed to convert IP to CIDR: %s", err)
510511
}
511512

512-
err = autoUnfenceClientOnMatch(ctx, conn, addr)
513-
if err != nil {
514-
log.ErrorLog(ctx, "failed to auto unfence client: %s", err)
513+
if enableFencing {
514+
err = autoUnfenceClientOnMatch(ctx, conn, addr)
515+
if err != nil {
516+
log.ErrorLog(ctx, "failed to auto unfence client: %s", err)
515517

516-
return nil, status.Errorf(codes.Internal,
517-
"failed to unfence client: %s", err)
518+
return nil, status.Errorf(codes.Internal,
519+
"failed to unfence client: %s", err)
520+
}
518521
}
519522

520523
resp := &fence.GetFenceClientsResponse{

internal/csi-addons/rbd/network_fence.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,15 @@ import (
3030
// of CSI-addons networkfence controller service spec.
3131
type FenceControllerServer struct {
3232
*fence.UnimplementedFenceControllerServer
33+
enableFencing bool
3334
}
3435

3536
// NewFenceControllerServer creates a new FenceControllerServer which handles
3637
// the FenceController Service requests from the CSI-Addons specification.
37-
func NewFenceControllerServer() *FenceControllerServer {
38-
return &FenceControllerServer{}
38+
func NewFenceControllerServer(enableFencing bool) *FenceControllerServer {
39+
return &FenceControllerServer{
40+
enableFencing: enableFencing,
41+
}
3942
}
4043

4144
func (fcs *FenceControllerServer) RegisterService(server grpc.ServiceRegistrar) {
@@ -120,5 +123,5 @@ func (fcs *FenceControllerServer) GetFenceClients(
120123
ctx context.Context,
121124
req *fence.GetFenceClientsRequest,
122125
) (*fence.GetFenceClientsResponse, error) {
123-
return nf.GetFenceClients(ctx, req)
126+
return nf.GetFenceClients(ctx, req, fcs.enableFencing)
124127
}

internal/csi-addons/rbd/network_fence_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
func TestFenceClusterNetwork(t *testing.T) {
2727
t.Parallel()
2828

29-
controller := NewFenceControllerServer()
29+
controller := NewFenceControllerServer(true)
3030

3131
req := &fence.FenceClusterNetworkRequest{
3232
Parameters: map[string]string{},
@@ -43,7 +43,7 @@ func TestFenceClusterNetwork(t *testing.T) {
4343
// operations can not be performed.
4444
func TestUnfenceClusterNetwork(t *testing.T) {
4545
t.Parallel()
46-
controller := NewFenceControllerServer()
46+
controller := NewFenceControllerServer(true)
4747

4848
req := &fence.UnfenceClusterNetworkRequest{
4949
Parameters: map[string]string{},

internal/rbd/driver/driver.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ func (r *rbdDriver) setupCSIAddonsServer(conf *util.Config) error {
238238

239239
if conf.IsControllerServer || conf.IsNodeServer {
240240
// Register FenceController only once
241-
fcs := casrbd.NewFenceControllerServer()
241+
fcs := casrbd.NewFenceControllerServer(conf.EnableFencing)
242242
r.cas.RegisterService(fcs)
243243
}
244244
if conf.IsControllerServer {

0 commit comments

Comments
 (0)