github.com/openebs/node-disk-manager@v1.9.1-0.20230225014141-4531f06ffa1e/api-service/node/services/rescan.go (about) 1 /* 2 Copyright 2020 The OpenEBS Authors 3 Licensed under the Apache License, Version 2.0 (the "License"); 4 you may not use this file except in compliance with the License. 5 You may obtain a copy of the License at 6 http://www.apache.org/licenses/LICENSE-2.0 7 Unless required by applicable law or agreed to in writing, software 8 distributed under the License is distributed on an "AS IS" BASIS, 9 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10 See the License for the specific language governing permissions and 11 limitations under the License. 12 */ 13 14 package services 15 16 import ( 17 "context" 18 19 "github.com/openebs/node-disk-manager/cmd/ndm_daemonset/controller" 20 "github.com/openebs/node-disk-manager/cmd/ndm_daemonset/probe" 21 protos "github.com/openebs/node-disk-manager/spec/ndm" 22 23 "google.golang.org/grpc/codes" 24 "google.golang.org/grpc/status" 25 "k8s.io/klog/v2" 26 ) 27 28 // Rescan syncs etcd with ndm 29 func (n *Node) Rescan(ctx context.Context, null *protos.Null) (*protos.Message, error) { 30 31 klog.Info("Rescan initiated") 32 33 ctrl, err := controller.NewController() 34 if err != nil { 35 klog.Errorf("Error creating a controller %v", err) 36 return nil, status.Errorf(codes.NotFound, "Namespace not found") 37 } 38 39 err = ctrl.SetControllerOptions(controller.NDMOptions{ConfigFilePath: ConfigFilePath}) 40 if err != nil { 41 klog.Errorf("Error setting config to controller %v", err) 42 return nil, status.Errorf(codes.Internal, "Error setting config to controller") 43 } 44 45 err = probe.Rescan(ctrl) 46 if err != nil { 47 klog.Errorf("Rescan failed %v", err) 48 return nil, status.Errorf(codes.AlreadyExists, "Rescan failed") 49 } 50 51 return &protos.Message{Msg: "Rescan initiated"}, nil 52 }