9
9
"runtime/trace"
10
10
"strings"
11
11
"sync"
12
- "syscall"
13
12
"time"
14
13
15
14
// bindings constants and binding configs
@@ -1098,7 +1097,7 @@ func mergeEnabled(enabledFlags ...*bool) bool {
1098
1097
}
1099
1098
1100
1099
// PushDeleteModule pushes moduleDelete task for a module into the main queue
1101
- func (mm * ModuleManager ) PushDeleteModule (moduleName string ) {
1100
+ func (mm * ModuleManager ) PushDeleteModuleTask (moduleName string ) {
1102
1101
// check if there is already moduleDelete task in the main queue for the module
1103
1102
if queueHasPendingModuleDeleteTask (mm .dependencies .TaskQueues .GetMain (), moduleName ) {
1104
1103
return
@@ -1113,10 +1112,27 @@ func (mm *ModuleManager) PushDeleteModule(moduleName string) {
1113
1112
newTask .SetProp ("triggered-by" , "ModuleManager" )
1114
1113
1115
1114
mm .dependencies .TaskQueues .GetMain ().AddLast (newTask .WithQueuedAt (time .Now ()))
1115
+
1116
+ log .Infof ("Push ConvergeModules task because %q Module was disabled" , moduleName )
1117
+ mm .PushConvergeModulesTask (moduleName , "disabled" )
1118
+ }
1119
+
1120
+ // PushConvergeModulesTask pushes ConvergeModulesTask into the main queue to update all modules on a module enable/disable event
1121
+ func (mm * ModuleManager ) PushConvergeModulesTask (moduleName , moduleState string ) {
1122
+ newConvergeTask := sh_task .NewTask (task .ConvergeModules ).
1123
+ WithQueueName ("main" ).
1124
+ WithMetadata (task.HookMetadata {
1125
+ EventDescription : fmt .Sprintf ("ModuleManager-%s-Module" , moduleState ),
1126
+ ModuleName : moduleName ,
1127
+ }).
1128
+ WithQueuedAt (time .Now ())
1129
+ newConvergeTask .SetProp ("triggered-by" , "ModuleManager" )
1130
+
1131
+ mm .dependencies .TaskQueues .GetMain ().AddLast (newConvergeTask .WithQueuedAt (time .Now ()))
1116
1132
}
1117
1133
1118
- // PushRunModule pushes moduleRun task for a module into the main queue if there is no such a task for the module
1119
- func (mm * ModuleManager ) PushRunModule (moduleName string ) error {
1134
+ // PushRunModuleTask pushes moduleRun task for a module into the main queue if there is no such a task for the module
1135
+ func (mm * ModuleManager ) PushRunModuleTask (moduleName string ) error {
1120
1136
// update module's kube config
1121
1137
err := mm .dependencies .KubeConfigManager .UpdateModuleConfig (moduleName )
1122
1138
if err != nil {
@@ -1206,8 +1222,9 @@ func (mm *ModuleManager) RegisterModule(moduleSource, modulePath string) error {
1206
1222
}
1207
1223
1208
1224
if isEnabled {
1209
- log .Infof ("Restarting operator because %q Module was re-enabled" , moduleName )
1210
- return syscall .Kill (1 , syscall .SIGUSR2 )
1225
+ log .Infof ("Push ConvergeModules task because %q Module was re-enabled" , moduleName )
1226
+ mm .PushConvergeModulesTask (moduleName , "re-enabled" )
1227
+
1211
1228
}
1212
1229
return nil
1213
1230
}
@@ -1234,7 +1251,7 @@ func (mm *ModuleManager) RegisterModule(moduleSource, modulePath string) error {
1234
1251
1235
1252
if isEnabled {
1236
1253
// enqueue module startup sequence if it is enabled
1237
- mm .PushRunModule (moduleName )
1254
+ mm .PushRunModuleTask (moduleName )
1238
1255
if err != nil {
1239
1256
return err
1240
1257
}
@@ -1245,7 +1262,7 @@ func (mm *ModuleManager) RegisterModule(moduleSource, modulePath string) error {
1245
1262
EventType : events .ModuleDisabled ,
1246
1263
}
1247
1264
mm .SendModuleEvent (ev )
1248
- mm .PushDeleteModule (moduleName )
1265
+ mm .PushDeleteModuleTask (moduleName )
1249
1266
// modules is disabled - update modulemanager's state
1250
1267
mm .DeleteEnabledModuleName (moduleName )
1251
1268
}
@@ -1272,8 +1289,8 @@ func (mm *ModuleManager) RegisterModule(moduleSource, modulePath string) error {
1272
1289
}
1273
1290
1274
1291
if isEnabled {
1275
- log .Infof ("Restarting operator because %q Module was registered " , moduleName )
1276
- return syscall . Kill ( 1 , syscall . SIGUSR2 )
1292
+ log .Infof ("Push ConvergeModules task because %q Module was enabled " , moduleName )
1293
+ mm . PushConvergeModulesTask ( moduleName , "registered-and-enabled" )
1277
1294
}
1278
1295
return nil
1279
1296
}
0 commit comments