From e3018fa9fc550d1f380c478394da28fa32a157d6 Mon Sep 17 00:00:00 2001 From: cl2017 Date: Thu, 12 Oct 2023 18:18:14 +0800 Subject: mapper framework fix Signed-off-by: cl2017 --- .../mapper-framework/_template/mapper/cmd/main.go | 4 +- .../_template/mapper/device/device.go | 2 +- .../_template/mapper/device/devicetwin.go | 2 +- .../mapper-framework/pkg/grpcclient/config.go | 12 +++++ .../mapper-framework/pkg/grpcclient/register.go | 59 +++++++++++++++++++++ .../mapper-framework/pkg/grpcclient/report.go | 43 ++++++++++++++++ .../mapper-framework/pkg/util/grpcclient/config.go | 12 ----- .../pkg/util/grpcclient/register.go | 60 ---------------------- .../mapper-framework/pkg/util/grpcclient/report.go | 43 ---------------- .../mapper-framework/pkg/util/parse/parse.go | 8 ++- 10 files changed, 121 insertions(+), 124 deletions(-) create mode 100644 staging/src/github.com/kubeedge/mapper-framework/pkg/grpcclient/config.go create mode 100644 staging/src/github.com/kubeedge/mapper-framework/pkg/grpcclient/register.go create mode 100644 staging/src/github.com/kubeedge/mapper-framework/pkg/grpcclient/report.go delete mode 100644 staging/src/github.com/kubeedge/mapper-framework/pkg/util/grpcclient/config.go delete mode 100644 staging/src/github.com/kubeedge/mapper-framework/pkg/util/grpcclient/register.go delete mode 100644 staging/src/github.com/kubeedge/mapper-framework/pkg/util/grpcclient/report.go diff --git a/staging/src/github.com/kubeedge/mapper-framework/_template/mapper/cmd/main.go b/staging/src/github.com/kubeedge/mapper-framework/_template/mapper/cmd/main.go index 3ca00fb82..2f398d589 100644 --- a/staging/src/github.com/kubeedge/mapper-framework/_template/mapper/cmd/main.go +++ b/staging/src/github.com/kubeedge/mapper-framework/_template/mapper/cmd/main.go @@ -9,9 +9,9 @@ import ( "github.com/kubeedge/Template/device" "github.com/kubeedge/Template/pkg/common" "github.com/kubeedge/Template/pkg/config" + "github.com/kubeedge/Template/pkg/grpcclient" "github.com/kubeedge/Template/pkg/grpcserver" "github.com/kubeedge/Template/pkg/httpserver" - "github.com/kubeedge/Template/pkg/util/grpcclient" "github.com/kubeedge/Template/pkg/util/parse" ) @@ -50,7 +50,7 @@ func main() { // if dev init mode is register, mapper's dev will init when registry to edgecore if c.DevInit.Mode != common.DevInitModeRegister { klog.Infoln("======dev init mode is not register, will register to edgecore") - if _, _, err = grpcclient.RegisterMapper(&c, false); err != nil { + if _, _, err = grpcclient.RegisterMapper(false); err != nil { klog.Fatal(err) } klog.Infoln("registerMapper finished") diff --git a/staging/src/github.com/kubeedge/mapper-framework/_template/mapper/device/device.go b/staging/src/github.com/kubeedge/mapper-framework/_template/mapper/device/device.go index f0077566d..c4ddf7de8 100644 --- a/staging/src/github.com/kubeedge/mapper-framework/_template/mapper/device/device.go +++ b/staging/src/github.com/kubeedge/mapper-framework/_template/mapper/device/device.go @@ -277,7 +277,7 @@ func (d *DevPanel) DevInit(cfg *config.Config) error { // return err // } case common.DevInitModeRegister: - if err := parse.ParseByUsingRegister(cfg, devs, d.models, d.protocols); err != nil { + if err := parse.ParseByUsingRegister(devs, d.models, d.protocols); err != nil { return err } } diff --git a/staging/src/github.com/kubeedge/mapper-framework/_template/mapper/device/devicetwin.go b/staging/src/github.com/kubeedge/mapper-framework/_template/mapper/device/devicetwin.go index e5563f4a5..5df21570e 100644 --- a/staging/src/github.com/kubeedge/mapper-framework/_template/mapper/device/devicetwin.go +++ b/staging/src/github.com/kubeedge/mapper-framework/_template/mapper/device/devicetwin.go @@ -12,7 +12,7 @@ import ( "github.com/kubeedge/Template/driver" "github.com/kubeedge/Template/pkg/common" dmiapi "github.com/kubeedge/Template/pkg/dmi-api" - "github.com/kubeedge/Template/pkg/util/grpcclient" + "github.com/kubeedge/Template/pkg/grpcclient" "github.com/kubeedge/Template/pkg/util/parse" ) diff --git a/staging/src/github.com/kubeedge/mapper-framework/pkg/grpcclient/config.go b/staging/src/github.com/kubeedge/mapper-framework/pkg/grpcclient/config.go new file mode 100644 index 000000000..7de4d6233 --- /dev/null +++ b/staging/src/github.com/kubeedge/mapper-framework/pkg/grpcclient/config.go @@ -0,0 +1,12 @@ +package grpcclient + +import ( + "github.com/kubeedge/Template/pkg/config" +) + +var cfg *config.Config + +func Init(c *config.Config) { + cfg = &config.Config{} + cfg = c +} diff --git a/staging/src/github.com/kubeedge/mapper-framework/pkg/grpcclient/register.go b/staging/src/github.com/kubeedge/mapper-framework/pkg/grpcclient/register.go new file mode 100644 index 000000000..f582de56e --- /dev/null +++ b/staging/src/github.com/kubeedge/mapper-framework/pkg/grpcclient/register.go @@ -0,0 +1,59 @@ +package grpcclient + +import ( + "context" + "fmt" + "net" + "time" + + "google.golang.org/grpc" + + "github.com/kubeedge/Template/pkg/common" + dmiapi "github.com/kubeedge/Template/pkg/dmi-api" +) + +// RegisterMapper if withData is true, edgecore will send device and model list. +func RegisterMapper(withData bool) ([]*dmiapi.Device, []*dmiapi.DeviceModel, error) { + // connect grpc server + conn, err := grpc.Dial(cfg.Common.EdgeCoreSock, + grpc.WithInsecure(), + grpc.WithBlock(), + grpc.WithContextDialer( + func(ctx context.Context, s string) (net.Conn, error) { + unixAddress, err := net.ResolveUnixAddr("unix", cfg.Common.EdgeCoreSock) + if err != nil { + return nil, err + } + return net.DialUnix("unix", nil, unixAddress) + }, + ), + ) + if err != nil { + return nil, nil, fmt.Errorf("did not connect: %v", err) + } + defer conn.Close() + + // init Greeter client + c := dmiapi.NewDeviceManagerServiceClient(conn) + + // init ctx,set timeout + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() + + resp, err := c.MapperRegister(ctx, &dmiapi.MapperRegisterRequest{ + WithData: withData, + Mapper: &dmiapi.MapperInfo{ + Name: cfg.Common.Name, + Version: cfg.Common.Version, + ApiVersion: cfg.Common.APIVersion, + Protocol: cfg.Common.Protocol, + Address: []byte(cfg.GrpcServer.SocketPath), + State: common.DEVSTOK, + }, + }) + if err != nil { + return nil, nil, err + } + + return resp.DeviceList, resp.ModelList, err +} diff --git a/staging/src/github.com/kubeedge/mapper-framework/pkg/grpcclient/report.go b/staging/src/github.com/kubeedge/mapper-framework/pkg/grpcclient/report.go new file mode 100644 index 000000000..4e18d9b82 --- /dev/null +++ b/staging/src/github.com/kubeedge/mapper-framework/pkg/grpcclient/report.go @@ -0,0 +1,43 @@ +package grpcclient + +import ( + "context" + "fmt" + "net" + "time" + + "google.golang.org/grpc" + + dmiapi "github.com/kubeedge/Template/pkg/dmi-api" +) + +// ReportDeviceStatus report device status to edgecore +func ReportDeviceStatus(request *dmiapi.ReportDeviceStatusRequest) error { + conn, err := grpc.Dial(cfg.Common.EdgeCoreSock, + grpc.WithInsecure(), + grpc.WithBlock(), + grpc.WithContextDialer( + func(ctx context.Context, s string) (net.Conn, error) { + unixAddress, err := net.ResolveUnixAddr("unix", cfg.Common.EdgeCoreSock) + if err != nil { + return nil, err + } + return net.DialUnix("unix", nil, unixAddress) + }, + ), + ) + if err != nil { + return fmt.Errorf("did not connect: %v", err) + } + defer conn.Close() + + // init Greeter client + c := dmiapi.NewDeviceManagerServiceClient(conn) + + // init context,set timeout + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() + + _, err = c.ReportDeviceStatus(ctx, request) + return err +} diff --git a/staging/src/github.com/kubeedge/mapper-framework/pkg/util/grpcclient/config.go b/staging/src/github.com/kubeedge/mapper-framework/pkg/util/grpcclient/config.go deleted file mode 100644 index 7de4d6233..000000000 --- a/staging/src/github.com/kubeedge/mapper-framework/pkg/util/grpcclient/config.go +++ /dev/null @@ -1,12 +0,0 @@ -package grpcclient - -import ( - "github.com/kubeedge/Template/pkg/config" -) - -var cfg *config.Config - -func Init(c *config.Config) { - cfg = &config.Config{} - cfg = c -} diff --git a/staging/src/github.com/kubeedge/mapper-framework/pkg/util/grpcclient/register.go b/staging/src/github.com/kubeedge/mapper-framework/pkg/util/grpcclient/register.go deleted file mode 100644 index 3f577f956..000000000 --- a/staging/src/github.com/kubeedge/mapper-framework/pkg/util/grpcclient/register.go +++ /dev/null @@ -1,60 +0,0 @@ -package grpcclient - -import ( - "context" - "fmt" - "net" - "time" - - "google.golang.org/grpc" - - "github.com/kubeedge/Template/pkg/common" - "github.com/kubeedge/Template/pkg/config" - dmiapi "github.com/kubeedge/Template/pkg/dmi-api" -) - -// RegisterMapper if withData is true, edgecore will send device and model list. -func RegisterMapper(cfg *config.Config, withData bool) ([]*dmiapi.Device, []*dmiapi.DeviceModel, error) { - // connect grpc server - conn, err := grpc.Dial(cfg.Common.EdgeCoreSock, - grpc.WithInsecure(), - grpc.WithBlock(), - grpc.WithContextDialer( - func(ctx context.Context, s string) (net.Conn, error) { - unixAddress, err := net.ResolveUnixAddr("unix", cfg.Common.EdgeCoreSock) - if err != nil { - return nil, err - } - return net.DialUnix("unix", nil, unixAddress) - }, - ), - ) - if err != nil { - return nil, nil, fmt.Errorf("did not connect: %v", err) - } - defer conn.Close() - - // init Greeter client - c := dmiapi.NewDeviceManagerServiceClient(conn) - - // init ctx,set timeout - ctx, cancel := context.WithTimeout(context.Background(), time.Second) - defer cancel() - - resp, err := c.MapperRegister(ctx, &dmiapi.MapperRegisterRequest{ - WithData: withData, - Mapper: &dmiapi.MapperInfo{ - Name: cfg.Common.Name, - Version: cfg.Common.Version, - ApiVersion: cfg.Common.APIVersion, - Protocol: cfg.Common.Protocol, - Address: []byte(cfg.GrpcServer.SocketPath), - State: common.DEVSTOK, - }, - }) - if err != nil { - return nil, nil, err - } - - return resp.DeviceList, resp.ModelList, err -} diff --git a/staging/src/github.com/kubeedge/mapper-framework/pkg/util/grpcclient/report.go b/staging/src/github.com/kubeedge/mapper-framework/pkg/util/grpcclient/report.go deleted file mode 100644 index 4e18d9b82..000000000 --- a/staging/src/github.com/kubeedge/mapper-framework/pkg/util/grpcclient/report.go +++ /dev/null @@ -1,43 +0,0 @@ -package grpcclient - -import ( - "context" - "fmt" - "net" - "time" - - "google.golang.org/grpc" - - dmiapi "github.com/kubeedge/Template/pkg/dmi-api" -) - -// ReportDeviceStatus report device status to edgecore -func ReportDeviceStatus(request *dmiapi.ReportDeviceStatusRequest) error { - conn, err := grpc.Dial(cfg.Common.EdgeCoreSock, - grpc.WithInsecure(), - grpc.WithBlock(), - grpc.WithContextDialer( - func(ctx context.Context, s string) (net.Conn, error) { - unixAddress, err := net.ResolveUnixAddr("unix", cfg.Common.EdgeCoreSock) - if err != nil { - return nil, err - } - return net.DialUnix("unix", nil, unixAddress) - }, - ), - ) - if err != nil { - return fmt.Errorf("did not connect: %v", err) - } - defer conn.Close() - - // init Greeter client - c := dmiapi.NewDeviceManagerServiceClient(conn) - - // init context,set timeout - ctx, cancel := context.WithTimeout(context.Background(), time.Second) - defer cancel() - - _, err = c.ReportDeviceStatus(ctx, request) - return err -} diff --git a/staging/src/github.com/kubeedge/mapper-framework/pkg/util/parse/parse.go b/staging/src/github.com/kubeedge/mapper-framework/pkg/util/parse/parse.go index 6c02d9a7f..74558bbd8 100644 --- a/staging/src/github.com/kubeedge/mapper-framework/pkg/util/parse/parse.go +++ b/staging/src/github.com/kubeedge/mapper-framework/pkg/util/parse/parse.go @@ -22,17 +22,15 @@ import ( "k8s.io/klog/v2" "github.com/kubeedge/Template/pkg/common" - "github.com/kubeedge/Template/pkg/config" - "github.com/kubeedge/Template/pkg/util/grpcclient" + "github.com/kubeedge/Template/pkg/grpcclient" ) var ErrEmptyData error = errors.New("device or device model list is empty") -func ParseByUsingRegister(cfg *config.Config, - devices map[string]*common.DeviceInstance, +func ParseByUsingRegister(devices map[string]*common.DeviceInstance, dms map[string]common.DeviceModel, protocols map[string]common.ProtocolConfig) error { - deviceList, deviceModelList, err := grpcclient.RegisterMapper(cfg, true) + deviceList, deviceModelList, err := grpcclient.RegisterMapper(true) if err != nil { return err } -- cgit v1.2.3