It is nice to hear this is getting some attention, but there are definitely more items needed. There are at least two different issues with LogicModule maintenance.
The one in this F/R relates to upgrades (e.g., new version of VMware modules). The hope was that you could retain previous data by matching DS/DP in the old to the new in a merge operation when importing the new datasource. I get it is complex, but it is also frustrating to see loss of historical data treated so casually.
The one you are referencing is about module parameter override preservation. I like what you have above, but really, the correct solution for this is to allow linked cloning with inheritance and individual override of any or all elements in the module. There are already many examples of almost the same but not quite modules that could benefit from this. A great example of how that leads to problems is the excellent changes made by Steve Francis to support ActualSpeed ILPs for interfaces. Because that applies to only one (albeit common) case, all other interface DSes fail to get the same behavior. If that was done in a base interface module and the rest inherited from there with overrides/additions for there specific needs, that could be a general improvement for all interfaces.
Lacking that, I would ask that in addition to the above, the following also be preserved:
-
additional datapoints (including scripts, etc.)
-
changes to datapoint settings (perhaps not scripts, but alert settings including templates)
I am dealing with a specific use case right now where a fairly complicated NetApp DS needs to be updated to alarm when space available drops below a threshold. We can add a custom threshold, but then the alert template is default and the units are bytes. I can fix this, but this creates a maintenance headache regardless of whether I update in place (new versions will kill my changes) or clone (new versions require manual review to sync into the clone(s)).
That said, the filter preservation would at least avoid issues with my changes to BGP- (filters admin down sessions) and changes to the collection interval for HP network devices (default is set to 1 day instead of 1 hour), so I will take what I can get!