diff --git a/ext/datasource/nacos/nacos.go b/ext/datasource/nacos/nacos.go index 39226ecff..488ff3e70 100644 --- a/ext/datasource/nacos/nacos.go +++ b/ext/datasource/nacos/nacos.go @@ -17,24 +17,26 @@ var ( type NacosDataSource struct { datasource.Base - client config_client.IConfigClient - isInitialized util.AtomicBool - propertyConfig vo.ConfigParam - closeChan chan struct{} + client config_client.IConfigClient + isInitialized util.AtomicBool + group string + dataId string + closeChan chan struct{} } -func NewNacosDataSource(client config_client.IConfigClient, propertyConfig vo.ConfigParam, handlers ...datasource.PropertyHandler) (*NacosDataSource, error) { +func NewNacosDataSource(client config_client.IConfigClient, group, dataId string, handlers ...datasource.PropertyHandler) (*NacosDataSource, error) { if client == nil { return nil, errors.New("Nil nacos config client") } - if len(propertyConfig.Group) == 0 || len(propertyConfig.DataId) == 0 { - return nil, errors.New(fmt.Sprintf("Invalid property config, group: %s, dataId: %s.", propertyConfig.Group, propertyConfig.DataId)) + if len(group) == 0 || len(dataId) == 0 { + return nil, errors.New(fmt.Sprintf("Invalid parameters, group: %s, dataId: %s", group, dataId)) } var ds = &NacosDataSource{ - Base: datasource.Base{}, - client: client, - propertyConfig: propertyConfig, - closeChan: make(chan struct{}, 1), + Base: datasource.Base{}, + client: client, + group: group, + dataId: dataId, + closeChan: make(chan struct{}, 1), } for _, h := range handlers { ds.AddPropertyHandler(h) @@ -55,18 +57,21 @@ func (s *NacosDataSource) Initialize() error { } err = s.listen(s.client) if err == nil { - logger.Infof("Nacos data source is successfully initialized, property config: %+v", s.propertyConfig) + logger.Infof("Nacos data source is successfully initialized, group: %s, dataId: %s", s.group, s.dataId) } return err } func (s *NacosDataSource) ReadSource() ([]byte, error) { - content, err := s.client.GetConfig(s.propertyConfig) + content, err := s.client.GetConfig(vo.ConfigParam{ + DataId: s.group, + Group: s.dataId, + }) if err != nil { return nil, errors.Errorf("Failed to read the nacos data source when initialization, err: %+v", err) } - logger.Infof("Succeed to read source for property config: %+v, data: %s", s.propertyConfig, content) + logger.Infof("Succeed to read source for group: %s, dataId: %s, data: %s", s.group, s.dataId, content) return []byte(content), err } @@ -76,10 +81,10 @@ func (s *NacosDataSource) doUpdate(data []byte) error { func (s *NacosDataSource) listen(client config_client.IConfigClient) (err error) { listener := vo.ConfigParam{ - DataId: s.propertyConfig.DataId, - Group: s.propertyConfig.Group, + DataId: s.dataId, + Group: s.group, OnChange: func(namespace, group, dataId, data string) { - logger.Infof("Receive listened property. namespace: %s, group: %s, dataId: %s, data: %s.", namespace, group, dataId, data) + logger.Infof("Receive listened property. namespace: %s, group: %s, dataId: %s, data: %s", namespace, group, dataId, data) err := s.doUpdate([]byte(data)) if err != nil { logger.Errorf("Fail to update data source, err: %+v", err) @@ -96,6 +101,6 @@ func (s *NacosDataSource) listen(client config_client.IConfigClient) (err error) func (s *NacosDataSource) Close() error { s.closeChan <- struct{}{} - logger.Infof("The nacos datasource had been closed. property config: %+v", s.propertyConfig) + logger.Infof("The nacos datasource had been closed, group: %s, dataId: %s", s.group, s.dataId) return nil } diff --git a/ext/datasource/nacos/nacos_example.go b/ext/datasource/nacos/nacos_example.go index 44e73e9be..e9cf6b091 100644 --- a/ext/datasource/nacos/nacos_example.go +++ b/ext/datasource/nacos/nacos_example.go @@ -9,7 +9,6 @@ import ( "github.com/nacos-group/nacos-sdk-go/clients/nacos_client" "github.com/nacos-group/nacos-sdk-go/common/constant" "github.com/nacos-group/nacos-sdk-go/common/http_agent" - "github.com/nacos-group/nacos-sdk-go/vo" "github.com/stretchr/testify/mock" ) @@ -44,10 +43,7 @@ func Example_NacosDatasource_CustomizeClient() { h := &datasource.MockPropertyHandler{} h.On("isPropertyConsistent", mock.Anything).Return(true) h.On("Handle", mock.Anything).Return(nil) - nds, err := NewNacosDataSource(client, vo.ConfigParam{ - DataId: "system-rules", - Group: "sentinel-go", - }, h) + nds, err := NewNacosDataSource(client, "sentinel-go", "system-rules", h) if err != nil { fmt.Printf("Fail to create nacos data source client, err: %+v", err) return diff --git a/ext/datasource/nacos/nacos_test.go b/ext/datasource/nacos/nacos_test.go index 9829cc711..0e1bb9d74 100644 --- a/ext/datasource/nacos/nacos_test.go +++ b/ext/datasource/nacos/nacos_test.go @@ -33,10 +33,10 @@ const ( ]` ) -var configParam = vo.ConfigParam{ - DataId: "system-rules", - Group: "sentinel-go", -} +var ( + Group = "sentinel-go" + DataId = "system-rules" +) type nacosClientMock struct { mock.Mock @@ -66,11 +66,11 @@ func (n *nacosClientMock) SearchConfig(param vo.SearchConfigParm) (*model.Config return ret.Get(0).(*model.ConfigPage), ret.Error(1) } -func getNacosDataSource(client config_client.IConfigClient, getConfig vo.ConfigParam) (*NacosDataSource, error) { +func getNacosDataSource(client config_client.IConfigClient) (*NacosDataSource, error) { mh1 := &datasource.MockPropertyHandler{} mh1.On("Handle", mock.Anything).Return(nil) mh1.On("isPropertyConsistent", mock.Anything).Return(false) - nds, err := NewNacosDataSource(client, getConfig, mh1) + nds, err := NewNacosDataSource(client, Group, DataId, mh1) return nds, err } @@ -80,7 +80,7 @@ func TestNacosDataSource(t *testing.T) { t.Run("NewNacosDataSource", func(t *testing.T) { client, err := createConfigClientTest() assert.Nil(t, err) - nds, err := getNacosDataSource(client, configParam) + nds, err := getNacosDataSource(client) assert.True(t, nds != nil && err == nil) }) @@ -91,7 +91,7 @@ func TestNacosDataSource(t *testing.T) { nacosClientMock := new(nacosClientMock) nacosClientMock.On("GetConfig", mock.Anything).Return(TestSystemRules, nil) nacosClientMock.On("ListenConfig", mock.Anything).Return(nil) - nds, err := getNacosDataSource(nacosClientMock, configParam) + nds, err := getNacosDataSource(nacosClientMock) assert.True(t, nds != nil && err == nil) err = nds.Initialize() assert.True(t, err == nil)