[67510558] include pluginData as one of the parameter while registration. This will be used for plugin version tracker
diff --git a/apid.go b/apid.go
index 3f590e3..fd325d5 100644
--- a/apid.go
+++ b/apid.go
@@ -29,6 +29,7 @@
var (
APIDInitializedEvent = systemEvent{"apid initialized"}
APIListeningEvent = systemEvent{"api listening"}
+ PluginVersionTracker []PluginData
pluginInitFuncs []PluginInitFunc
services Services
@@ -67,8 +68,9 @@
ss.events.Emit(SystemEventsSelector, APIDInitializedEvent)
}
-func RegisterPlugin(plugin PluginInitFunc) {
+func RegisterPlugin(plugin PluginInitFunc, pluginData PluginData) {
pluginInitFuncs = append(pluginInitFuncs, plugin)
+ PluginVersionTracker = append(PluginVersionTracker, pluginData)
}
func InitializePlugins(versionNumber string) {
diff --git a/events/events_test.go b/events/events_test.go
index d4d2703..877e385 100644
--- a/events/events_test.go
+++ b/events/events_test.go
@@ -267,17 +267,12 @@
})
It("should publish PluginsInitialized event", func(done Done) {
- xData := make(map[string]interface{})
- xData["schemaVersion"] = "1.2.3"
+ dummyPluginData := getDummyPluginDataForTest(0);
p := func(s apid.Services) (pd apid.PluginData, err error) {
- pd = apid.PluginData{
- Name: "test plugin",
- Version: "1.0.0",
- ExtraData: xData,
- }
+ pd = dummyPluginData
return
}
- apid.RegisterPlugin(p)
+ apid.RegisterPlugin(p, dummyPluginData)
h := func(event apid.Event) {
defer GinkgoRecover()
@@ -286,7 +281,7 @@
Expect(len(pie.Plugins)).Should(Equal(1))
p := pie.Plugins[0]
- Expect(p.Name).To(Equal("test plugin"))
+ Expect(p.Name).To(Equal("test plugin 0"))
Expect(p.Version).To(Equal("1.0.0"))
Expect(p.ExtraData["schemaVersion"]).To(Equal("1.2.3"))
@@ -320,7 +315,7 @@
// create and register plugins, listen to shutdown event
for i:=0; i<pluginNum; i++ {
- apid.RegisterPlugin(createDummyPlugin(i))
+ apid.RegisterPlugin(createDummyPlugin(i), getDummyPluginDataForTest(i))
h := func(event apid.Event) {
if pie, ok := event.(apid.ShutdownEvent); ok {
Expect(pie.Description).Should(Equal("apid is going to shutdown"))
@@ -343,17 +338,12 @@
})
It("should be able to read apid version from PluginsInitialized event", func(done Done) {
- xData := make(map[string]interface{})
- xData["schemaVersion"] = "1.2.3"
+ dummyPluginData := getDummyPluginDataForTest(0)
p := func(s apid.Services) (pd apid.PluginData, err error) {
- pd = apid.PluginData{
- Name: "test plugin",
- Version: "1.0.0",
- ExtraData: xData,
- }
+ pd = dummyPluginData
return
}
- apid.RegisterPlugin(p)
+ apid.RegisterPlugin(p,dummyPluginData)
apidVersion := "dummy_version"
@@ -373,18 +363,21 @@
})
func createDummyPlugin(id int) apid.PluginInitFunc{
- xData := make(map[string]interface{})
- xData["schemaVersion"] = "1.2.3"
p := func(s apid.Services) (pd apid.PluginData, err error) {
- pd = apid.PluginData{
- Name: "test plugin " + strconv.Itoa(id),
- Version: "1.0.0",
- ExtraData: xData,
- }
+ pd = getDummyPluginDataForTest(id)
return
}
return p
}
+func getDummyPluginDataForTest(id int) apid.PluginData {
+ xData := make(map[string]interface{})
+ xData["schemaVersion"] = "1.2.3"
+ return apid.PluginData{
+ Name: "test plugin " + strconv.Itoa(id),
+ Version: "1.0.0",
+ ExtraData: xData,
+ }
+}
type test_handler struct {
description string