Open manishtomar opened 9 years ago
Original ask from @cyli:
Should logs be synthesized by the steps provided?
Also, what happens if we want to log a step not taken? For instance, not adding a server to a CLB because that server does not have a ServiceNet address? Possibly we want to produce reporting objects/steps/structures so that they can also be optimized later. For instance, instead of the following messages:
Server 1 not added to CLB 1 because Server 1 does not have ServiceNet configured.
Server 2 not added to CLB 1 because Server 2 does not have ServiceNet configured.
Server 3 not added to CLB 1 because Server 3 does not have ServiceNet configured.
Server 1 not added to CLB 2 because Server 1 does not have ServiceNet configured.
Server 2 not added to CLB 2 because Server 2 does not have ServiceNet configured.
Server 3 not added to CLB 2 because Server 3 does not have ServiceNet configured.
Maybe we just want:
Servers 1, 2, and 3, cannot be added to CLBs 1 and 2 because Servers 1, 2, and 3, do not have ServiceNet configured.
Alternately, just 3 separate messages, 1 for each server. Alternately, 2 separate messages, 1 for each CLB. But that can be up to the optimizer.
@radix suggestion: I think whatever we do, we should probably log based on a bag of steps, instead of sprinkling log statements throughout our convergence functions. And I guess it should be done post-optimization. What would be really nice is if we also logged the inputs to convergence, so if we need to debug something, we can reproduce those inputs and call the functions to get the same outputs.
Forked from #884. This ticket is to decide the kind of messages that will be logged by convergence. Unfortunately, the discussion has been in different places. My suggestion copied from https://github.com/rackerlabs/otter/issues/838#issuecomment-69071481:
id
id
id
with ipip
error
scheduleTime
attribute will contain the timestamp of when the policy execution (that should ideally be as close to event time as possible)