)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"support Watcher HA active-active mode"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Wtcher-decision-engine and Applier currently don\u0027t support"},{"line_number":10,"context_line":"HA active-active mode."},{"line_number":11,"context_line":"If we enable more than one Wtcher-decision-engine, the question is"},{"line_number":12,"context_line":"how to know the relation between audit and Wtcher-decision-engine."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ff6b8bd7_3cf54bcc","line":9,"updated":"2018-03-06 05:22:12.000000000","message":"s/wtcher/watcher","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"support Watcher HA active-active mode"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Wtcher-decision-engine and Applier currently don\u0027t support"},{"line_number":10,"context_line":"HA active-active mode."},{"line_number":11,"context_line":"If we enable more than one Wtcher-decision-engine, the question is"},{"line_number":12,"context_line":"how to know the relation between audit and Wtcher-decision-engine."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df7087c5_1dc3333a","line":9,"in_reply_to":"ff6b8bd7_3cf54bcc","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Wtcher-decision-engine and Applier currently don\u0027t support"},{"line_number":10,"context_line":"HA active-active mode."},{"line_number":11,"context_line":"If we enable more than one Wtcher-decision-engine, the question is"},{"line_number":12,"context_line":"how to know the relation between audit and Wtcher-decision-engine."},{"line_number":13,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve"},{"line_number":14,"context_line":"this question. When we update the audit sate from PENDING"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ff6b8bd7_fcfef3ac","line":11,"updated":"2018-03-06 05:22:12.000000000","message":"ditto","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Wtcher-decision-engine and Applier currently don\u0027t support"},{"line_number":10,"context_line":"HA active-active mode."},{"line_number":11,"context_line":"If we enable more than one Wtcher-decision-engine, the question is"},{"line_number":12,"context_line":"how to know the relation between audit and Wtcher-decision-engine."},{"line_number":13,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve"},{"line_number":14,"context_line":"this question. When we update the audit sate from PENDING"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df7087c5_3dc0772a","line":11,"in_reply_to":"ff6b8bd7_fcfef3ac","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Wtcher-decision-engine and Applier currently don\u0027t support"},{"line_number":10,"context_line":"HA active-active mode."},{"line_number":11,"context_line":"If we enable more than one Wtcher-decision-engine, the question is"},{"line_number":12,"context_line":"how to know the relation between audit and Wtcher-decision-engine."},{"line_number":13,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve"},{"line_number":14,"context_line":"this question. When we update the audit sate from PENDING"},{"line_number":15,"context_line":"to ONGOING, we record the host into the \u0027host\u0027 field."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ff6b8bd7_9c2d7748","line":12,"updated":"2018-03-06 05:22:12.000000000","message":"ditto","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Wtcher-decision-engine and Applier currently don\u0027t support"},{"line_number":10,"context_line":"HA active-active mode."},{"line_number":11,"context_line":"If we enable more than one Wtcher-decision-engine, the question is"},{"line_number":12,"context_line":"how to know the relation between audit and Wtcher-decision-engine."},{"line_number":13,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve"},{"line_number":14,"context_line":"this question. When we update the audit sate from PENDING"},{"line_number":15,"context_line":"to ONGOING, we record the host into the \u0027host\u0027 field."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df7087c5_ddde1b10","line":12,"in_reply_to":"ff6b8bd7_9c2d7748","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"35df7761919ba87701b412ee6165138cf9bc036b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"to ONGOING, we record the host into the \u0027host\u0027 field."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I355e478bb0171a67bde8b95468e193e274c1fd0c"},{"line_number":18,"context_line":"Implements: blueprint support Watcher HA active-active mode"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ff6b8bd7_7ce183fe","line":18,"updated":"2018-03-06 05:24:40.000000000","message":"blueprint link also broken","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"to ONGOING, we record the host into the \u0027host\u0027 field."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I355e478bb0171a67bde8b95468e193e274c1fd0c"},{"line_number":18,"context_line":"Implements: blueprint support Watcher HA active-active mode"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df7087c5_fde3dfd7","line":18,"in_reply_to":"ff6b8bd7_7ce183fe","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"}],"specs/rocky/approved/support-watcher-ha-active-active-mode.rst":[{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/support-watcher-ha-active-active-mode"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Wtcher-decision-engine and Applier currently don\u0027t support HA active-active mode."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_fc5033d7","line":13,"updated":"2018-03-06 05:22:12.000000000","message":"s/wtcher/watcher","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/support-watcher-ha-active-active-mode"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Wtcher-decision-engine and Applier currently don\u0027t support HA active-active mode."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_1d0013ab","line":13,"in_reply_to":"ff6b8bd7_fc5033d7","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"There is often more than one controller in the real enviroment."},{"line_number":20,"context_line":"Wtcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Wtcher-decision-engine or Applier."},{"line_number":22,"context_line":"Otherwise Wtcher-decision-engine will make duplicate actionplans for"},{"line_number":23,"context_line":"CONTINUOUS audit. This causes confusion."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_9c5fb7e4","line":20,"updated":"2018-03-06 05:22:12.000000000","message":"s/wtcher/watcher","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"There is often more than one controller in the real enviroment."},{"line_number":20,"context_line":"Wtcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Wtcher-decision-engine or Applier."},{"line_number":22,"context_line":"Otherwise Wtcher-decision-engine will make duplicate actionplans for"},{"line_number":23,"context_line":"CONTINUOUS audit. This causes confusion."}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_fd343f95","line":20,"in_reply_to":"ff6b8bd7_9c5fb7e4","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"There is often more than one controller in the real enviroment."},{"line_number":20,"context_line":"Wtcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Wtcher-decision-engine or Applier."},{"line_number":22,"context_line":"Otherwise Wtcher-decision-engine will make duplicate actionplans for"},{"line_number":23,"context_line":"CONTINUOUS audit. This causes confusion."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_bc64fbba","line":21,"updated":"2018-03-06 05:22:12.000000000","message":"s/wtcher/watcher","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"There is often more than one controller in the real enviroment."},{"line_number":20,"context_line":"Wtcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Wtcher-decision-engine or Applier."},{"line_number":22,"context_line":"Otherwise Wtcher-decision-engine will make duplicate actionplans for"},{"line_number":23,"context_line":"CONTINUOUS audit. This causes confusion."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_bd2a4729","line":21,"in_reply_to":"ff6b8bd7_bc64fbba","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":19,"context_line":"There is often more than one controller in the real enviroment."},{"line_number":20,"context_line":"Wtcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Wtcher-decision-engine or Applier."},{"line_number":22,"context_line":"Otherwise Wtcher-decision-engine will make duplicate actionplans for"},{"line_number":23,"context_line":"CONTINUOUS audit. This causes confusion."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_5c591ffc","line":22,"updated":"2018-03-06 05:22:12.000000000","message":"s/wtcher/watcher","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"There is often more than one controller in the real enviroment."},{"line_number":20,"context_line":"Wtcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Wtcher-decision-engine or Applier."},{"line_number":22,"context_line":"Otherwise Wtcher-decision-engine will make duplicate actionplans for"},{"line_number":23,"context_line":"CONTINUOUS audit. This causes confusion."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_5d23eb56","line":22,"in_reply_to":"ff6b8bd7_5c591ffc","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":35,"context_line":"If we enable more than one Wtcher-decision-engine,"},{"line_number":36,"context_line":"the question is how to know the relation between audit and Wtcher-decision-engine."},{"line_number":37,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":38,"context_line":"When we update the audit sate from PENDING to ONGOING, we set the host "},{"line_number":39,"context_line":"field to record the Wtcher-decision-engine. "},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"So, the changes will include:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_1c73a782","line":38,"updated":"2018-03-06 05:22:12.000000000","message":"remove space","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"If we enable more than one Wtcher-decision-engine,"},{"line_number":36,"context_line":"the question is how to know the relation between audit and Wtcher-decision-engine."},{"line_number":37,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":38,"context_line":"When we update the audit sate from PENDING to ONGOING, we set the host "},{"line_number":39,"context_line":"field to record the Wtcher-decision-engine. "},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"So, the changes will include:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_7d202f49","line":38,"in_reply_to":"ff6b8bd7_1c73a782","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"the question is how to know the relation between audit and Wtcher-decision-engine."},{"line_number":37,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":38,"context_line":"When we update the audit sate from PENDING to ONGOING, we set the host "},{"line_number":39,"context_line":"field to record the Wtcher-decision-engine. "},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"So, the changes will include:"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_dc6c4f9e","line":39,"updated":"2018-03-06 05:22:12.000000000","message":"ditto","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"the question is how to know the relation between audit and Wtcher-decision-engine."},{"line_number":37,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":38,"context_line":"When we update the audit sate from PENDING to ONGOING, we set the host "},{"line_number":39,"context_line":"field to record the Wtcher-decision-engine. "},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"So, the changes will include:"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_3d1637f3","line":39,"in_reply_to":"ff6b8bd7_dc6c4f9e","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"So, the changes will include:"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* Add a new \u0027host\u0027 filed in the audit table"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Add a new \u0027host\u0027 filed in the actionplan table"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_9c0497c8","line":43,"updated":"2018-03-06 05:22:12.000000000","message":"can we add something like service_id rather than host??","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"So, the changes will include:"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* Add a new \u0027host\u0027 filed in the audit table"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"* Add a new \u0027host\u0027 filed in the actionplan table"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_7dceef82","line":43,"in_reply_to":"ff6b8bd7_9c0497c8","updated":"2018-03-13 03:20:08.000000000","message":"service_id may change if the process restarting.","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Record the host when updating the actionplan\u0027s state from PENDING to ONGOING"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* For CONTINUOUS audit, need to check the host that running decision engine and "},{"line_number":52,"context_line":"  recording host value in audit table, if they are differnet, just skip the audit."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* When starting Applier process, if there are ONGOING actionplan with the same host,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_5c0effe5","line":51,"updated":"2018-03-06 05:22:12.000000000","message":"remove space","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Record the host when updating the actionplan\u0027s state from PENDING to ONGOING"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* For CONTINUOUS audit, need to check the host that running decision engine and "},{"line_number":52,"context_line":"  recording host value in audit table, if they are differnet, just skip the audit."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* When starting Applier process, if there are ONGOING actionplan with the same host,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_1dc7b366","line":51,"in_reply_to":"ff6b8bd7_5c0effe5","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":111,"context_line":"Primary assignee:"},{"line_number":112,"context_line":"  licanwei"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Other contributors:"},{"line_number":115,"context_line":"  \u003claunchpad-id or None\u003e"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_1cf887c2","line":114,"updated":"2018-03-06 05:22:12.000000000","message":"remove this","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":111,"context_line":"Primary assignee:"},{"line_number":112,"context_line":"  licanwei"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Other contributors:"},{"line_number":115,"context_line":"  \u003claunchpad-id or None\u003e"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_9da8a38c","line":114,"in_reply_to":"ff6b8bd7_1cf887c2","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"ec2b2edc10cc1bbbef3d92dcf9b190e0cf4164b4","unresolved":false,"context_lines":[{"line_number":124,"context_line":"* Add checking host for CONTINUOUS audit"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* Check stale actonplans when starting Applier"},{"line_number":127,"context_line":" "},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Dependencies"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ff6b8bd7_7c13c30e","line":127,"updated":"2018-03-06 05:22:12.000000000","message":"ditto","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"35751e39de7b8d61c2578eeed880996000494a6b","unresolved":false,"context_lines":[{"line_number":124,"context_line":"* Add checking host for CONTINUOUS audit"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"* Check stale actonplans when starting Applier"},{"line_number":127,"context_line":" "},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Dependencies"},{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_7d934f5c","line":127,"in_reply_to":"ff6b8bd7_7c13c30e","updated":"2018-03-13 03:20:08.000000000","message":"Done","commit_id":"9d132f9c32c3d73da2a0a94a1aa4459de8948e67"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"0cfea16cb50194bb289fb38f486aa4314c696c08","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"support Watcher HA active-active mode"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/support-watcher-ha-active-active-mode"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_be86bd12","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":1},"updated":"2018-03-13 06:25:52.000000000","message":"should be capital letter.","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"dd98e72dc22c50382cb8987cb47662056da02a3e","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"support Watcher HA active-active mode"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/watcher/+spec/support-watcher-ha-active-active-mode"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_4e854e59","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":1},"in_reply_to":"df7087c5_be86bd12","updated":"2018-03-14 03:47:12.000000000","message":"Done","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"8cbaa45348eb614c1dfae2f0e165124d49b492e9","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"There is often more than one controller in the real enviroment."},{"line_number":20,"context_line":"Watcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Watcher-decision-engine or Applier."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_bef55def","line":18,"updated":"2018-03-13 06:18:57.000000000","message":"This spec seems to solve the bug you reported:\nhttps://bugs.launchpad.net/watcher/+bug/1735340.\n\nIn rocky ptg, we discussed active active HA. we also have to synchronize cluster data model between DEs when updating cluster data model by notification.\nThis bp does not refer to this problem. Please make clear that this bp is part of(not enough) support active active ha.","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"5ee2083997ecced1c12db913c8aaec6c4e588d89","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"There is often more than one controller in the real enviroment."},{"line_number":20,"context_line":"Watcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Watcher-decision-engine or Applier."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_dc00cbae","line":18,"in_reply_to":"df7087c5_aec3ca56","updated":"2018-03-19 07:46:14.000000000","message":"We have the time interval between each synchronization of the model.\nhttps://github.com/openstack/watcher/blob/master/watcher/decision_engine/model/collector/base.py#L171-L178\nWe can not synchronize the model just before each audit, am I wrong?","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"dd98e72dc22c50382cb8987cb47662056da02a3e","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"There is often more than one controller in the real enviroment."},{"line_number":20,"context_line":"Watcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Watcher-decision-engine or Applier."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_aec3ca56","line":18,"in_reply_to":"df7087c5_bef55def","updated":"2018-03-14 03:47:12.000000000","message":"I didn\u0027t take part in your discussion in ptg. but I don\u0027t think it\u0027s a good idea to updating CDM by notification. because notification isn\u0027t reliable. actually we invoke synchronize to update CDM before each audit, but this may impact performance if there are too many hosts.\nhttps://github.com/openstack/watcher/blob/master/watcher/decision_engine/model/collector/base.py#L185","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"8cbaa45348eb614c1dfae2f0e165124d49b492e9","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"There is often more than one controller in the real enviroment."},{"line_number":20,"context_line":"Watcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Watcher-decision-engine or Applier."},{"line_number":22,"context_line":"Otherwise Watcher-decision-engine will make duplicate actionplans for"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_5ede816d","line":19,"range":{"start_line":19,"start_character":52,"end_line":19,"end_character":62},"updated":"2018-03-13 06:18:57.000000000","message":"environment","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"dd98e72dc22c50382cb8987cb47662056da02a3e","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"There is often more than one controller in the real enviroment."},{"line_number":20,"context_line":"Watcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Watcher-decision-engine or Applier."},{"line_number":22,"context_line":"Otherwise Watcher-decision-engine will make duplicate actionplans for"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_ce987ec1","line":19,"range":{"start_line":19,"start_character":52,"end_line":19,"end_character":62},"in_reply_to":"df7087c5_5ede816d","updated":"2018-03-14 03:47:12.000000000","message":"Done","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"8cbaa45348eb614c1dfae2f0e165124d49b492e9","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"----------"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"As a developer, I want to enable all Wtcher-decision-engine and Applier on"},{"line_number":29,"context_line":"all controllers."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_becebdb1","line":28,"range":{"start_line":28,"start_character":3,"end_line":28,"end_character":14},"updated":"2018-03-13 06:18:57.000000000","message":"An operator is better than a developer.","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"dd98e72dc22c50382cb8987cb47662056da02a3e","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"----------"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"As a developer, I want to enable all Wtcher-decision-engine and Applier on"},{"line_number":29,"context_line":"all controllers."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_8e8e0677","line":28,"range":{"start_line":28,"start_character":3,"end_line":28,"end_character":14},"in_reply_to":"df7087c5_becebdb1","updated":"2018-03-14 03:47:12.000000000","message":"Done","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"8cbaa45348eb614c1dfae2f0e165124d49b492e9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"If we enable more than one Wtcher-decision-engine,"},{"line_number":36,"context_line":"the question is how to know the relation between audit and Wtcher-decision-engine."},{"line_number":37,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":38,"context_line":"When we update the audit sate from PENDING to ONGOING, we set the host"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_5ec76197","line":35,"range":{"start_line":35,"start_character":27,"end_line":35,"end_character":33},"updated":"2018-03-13 06:18:57.000000000","message":"Watcher","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"dd98e72dc22c50382cb8987cb47662056da02a3e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Proposed change"},{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"If we enable more than one Wtcher-decision-engine,"},{"line_number":36,"context_line":"the question is how to know the relation between audit and Wtcher-decision-engine."},{"line_number":37,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":38,"context_line":"When we update the audit sate from PENDING to ONGOING, we set the host"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_ae8bca65","line":35,"range":{"start_line":35,"start_character":27,"end_line":35,"end_character":33},"in_reply_to":"df7087c5_5ec76197","updated":"2018-03-14 03:47:12.000000000","message":"Done","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"8cbaa45348eb614c1dfae2f0e165124d49b492e9","unresolved":false,"context_lines":[{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"If we enable more than one Wtcher-decision-engine,"},{"line_number":36,"context_line":"the question is how to know the relation between audit and Wtcher-decision-engine."},{"line_number":37,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":38,"context_line":"When we update the audit sate from PENDING to ONGOING, we set the host"},{"line_number":39,"context_line":"field to record the Wtcher-decision-engine."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_de3851a1","line":36,"range":{"start_line":36,"start_character":59,"end_line":36,"end_character":65},"updated":"2018-03-13 06:18:57.000000000","message":"Watcher","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"dd98e72dc22c50382cb8987cb47662056da02a3e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"If we enable more than one Wtcher-decision-engine,"},{"line_number":36,"context_line":"the question is how to know the relation between audit and Wtcher-decision-engine."},{"line_number":37,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":38,"context_line":"When we update the audit sate from PENDING to ONGOING, we set the host"},{"line_number":39,"context_line":"field to record the Wtcher-decision-engine."}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_4eea2e0f","line":36,"range":{"start_line":36,"start_character":59,"end_line":36,"end_character":65},"in_reply_to":"df7087c5_de3851a1","updated":"2018-03-14 03:47:12.000000000","message":"Done","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"8cbaa45348eb614c1dfae2f0e165124d49b492e9","unresolved":false,"context_lines":[{"line_number":35,"context_line":"If we enable more than one Wtcher-decision-engine,"},{"line_number":36,"context_line":"the question is how to know the relation between audit and Wtcher-decision-engine."},{"line_number":37,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":38,"context_line":"When we update the audit sate from PENDING to ONGOING, we set the host"},{"line_number":39,"context_line":"field to record the Wtcher-decision-engine."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"So, the changes will include:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_be431d13","line":38,"range":{"start_line":38,"start_character":25,"end_line":38,"end_character":29},"updated":"2018-03-13 06:18:57.000000000","message":"state","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"dd98e72dc22c50382cb8987cb47662056da02a3e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"If we enable more than one Wtcher-decision-engine,"},{"line_number":36,"context_line":"the question is how to know the relation between audit and Wtcher-decision-engine."},{"line_number":37,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":38,"context_line":"When we update the audit sate from PENDING to ONGOING, we set the host"},{"line_number":39,"context_line":"field to record the Wtcher-decision-engine."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"So, the changes will include:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_6eeff21d","line":38,"range":{"start_line":38,"start_character":25,"end_line":38,"end_character":29},"in_reply_to":"df7087c5_be431d13","updated":"2018-03-14 03:47:12.000000000","message":"Done","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"8cbaa45348eb614c1dfae2f0e165124d49b492e9","unresolved":false,"context_lines":[{"line_number":36,"context_line":"the question is how to know the relation between audit and Wtcher-decision-engine."},{"line_number":37,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":38,"context_line":"When we update the audit sate from PENDING to ONGOING, we set the host"},{"line_number":39,"context_line":"field to record the Wtcher-decision-engine."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"So, the changes will include:"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_5e4c4141","line":39,"range":{"start_line":39,"start_character":20,"end_line":39,"end_character":26},"updated":"2018-03-13 06:18:57.000000000","message":"Watcher","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"dd98e72dc22c50382cb8987cb47662056da02a3e","unresolved":false,"context_lines":[{"line_number":36,"context_line":"the question is how to know the relation between audit and Wtcher-decision-engine."},{"line_number":37,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":38,"context_line":"When we update the audit sate from PENDING to ONGOING, we set the host"},{"line_number":39,"context_line":"field to record the Wtcher-decision-engine."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"So, the changes will include:"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"df7087c5_0ef0b6fc","line":39,"range":{"start_line":39,"start_character":20,"end_line":39,"end_character":26},"in_reply_to":"df7087c5_5e4c4141","updated":"2018-03-14 03:47:12.000000000","message":"Done","commit_id":"6877e84080d42756e5e91b086677bfce175d1bd3"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"e3ce3108276fadaa2458df47ee67750d51107784","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Watcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Watcher-decision-engine or Applier."},{"line_number":22,"context_line":"Otherwise Watcher-decision-engine will make duplicate actionplans for"},{"line_number":23,"context_line":"CONTINUOUS audit. This causes confusion."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_bc98771b","line":23,"updated":"2018-03-19 08:05:44.000000000","message":"There are also the following problems:\n1. Problem to sync Data Models of Decision Engines to each other. So far DEs consume notifications with round-robin algorithm, we need to find a way to broadcast notifications from Nova to DEs.\n2. Some strategies[1] changes DM before execution of action plan. This logic should be based on notifications (i.e. instance1 has been migrated and only after that nova sends notification about it and all DEs consume it to sync their DM).\n3. If DE fails on Controller2 in active-active mode, all related ongoing audits should be set to FAILED state. In active-passive mode, all ongoing audits should be set to FAILED state\n\n[1]: https://github.com/openstack/watcher/blob/master/watcher/decision_engine/strategy/strategies/basic_consolidation.py#L389","commit_id":"1e2b0c13762ff373a5734535906d5113db545ad8"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"75ece1cda786f37994460a9debdabf051cb555ac","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Watcher-decision-engine and Applier are deployed on the controller."},{"line_number":21,"context_line":"Now there is only one active Watcher-decision-engine or Applier."},{"line_number":22,"context_line":"Otherwise Watcher-decision-engine will make duplicate actionplans for"},{"line_number":23,"context_line":"CONTINUOUS audit. This causes confusion."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Use Cases"},{"line_number":26,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_ec9e2153","line":23,"in_reply_to":"df7087c5_bc98771b","updated":"2018-03-20 03:36:49.000000000","message":"sorry I don\u0027t agree note 3. Audit status should not be affected by DE failure or restarting. If we set the audit state to FAILED,this audit will not run again even after the DE is normal. This is unacceptable to the user.","commit_id":"1e2b0c13762ff373a5734535906d5113db545ad8"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"7910f644f3d197c613b7370d6bdb1d6d2dbe73f9","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Record the host when updating the actionplan\u0027s state from PENDING to ONGOING"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* For CONTINUOUS audit, need to check the host that running decision engine and"},{"line_number":52,"context_line":"  recording host value in audit table, if they are differnet, just skip the audit."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* When starting Applier process, if there are ONGOING actionplan with the same host,"},{"line_number":55,"context_line":"  cancel these stale actonplans."}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_2f9ac6c4","line":52,"range":{"start_line":51,"start_character":0,"end_line":52,"end_character":82},"updated":"2018-03-20 08:53:53.000000000","message":"As mentioned above，the new \u0027host\u0027 filed will be NULL initialized at first. There will be small possibility, wich would hardly ever happen, that multiple decison-engines check the \u0027host\u0027 field at the same time and get NULL, so they will start the continus audit respectively.","commit_id":"1e2b0c13762ff373a5734535906d5113db545ad8"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"ba8d8035ec22097c69d4f7c170ecebe29205e2ab","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Record the host when updating the actionplan\u0027s state from PENDING to ONGOING"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* For CONTINUOUS audit, need to check the host that running decision engine and"},{"line_number":52,"context_line":"  recording host value in audit table, if they are differnet, just skip the audit."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* When starting Applier process, if there are ONGOING actionplan with the same host,"},{"line_number":55,"context_line":"  cancel these stale actonplans."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf659307_e7dd1edd","line":52,"range":{"start_line":51,"start_character":0,"end_line":52,"end_character":82},"in_reply_to":"bf659307_6ee08d97","updated":"2018-04-04 06:12:14.000000000","message":"I don\u0027t think it\u0027s a serious problem, Just one more actionplan, we can ignore it.","commit_id":"1e2b0c13762ff373a5734535906d5113db545ad8"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"f05de579e2b0ea10e5785baf6d32db83fe3e5c18","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Record the host when updating the actionplan\u0027s state from PENDING to ONGOING"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* For CONTINUOUS audit, need to check the host that running decision engine and"},{"line_number":52,"context_line":"  recording host value in audit table, if they are differnet, just skip the audit."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* When starting Applier process, if there are ONGOING actionplan with the same host,"},{"line_number":55,"context_line":"  cancel these stale actonplans."}],"source_content_type":"text/x-rst","patch_set":3,"id":"df7087c5_5548d685","line":52,"range":{"start_line":51,"start_character":0,"end_line":52,"end_character":82},"in_reply_to":"df7087c5_2f9ac6c4","updated":"2018-03-21 01:48:49.000000000","message":"do you have suggestions for this?","commit_id":"1e2b0c13762ff373a5734535906d5113db545ad8"},{"author":{"_account_id":24501,"name":"sue","display_name":"suzhengwei","email":"sugar-2008@163.com","username":"suzhengwei"},"change_message_id":"12e598efa6b1ec77cee77a2fbb523a90b8bf5183","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Record the host when updating the actionplan\u0027s state from PENDING to ONGOING"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* For CONTINUOUS audit, need to check the host that running decision engine and"},{"line_number":52,"context_line":"  recording host value in audit table, if they are differnet, just skip the audit."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"* When starting Applier process, if there are ONGOING actionplan with the same host,"},{"line_number":55,"context_line":"  cancel these stale actonplans."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bf659307_6ee08d97","line":52,"range":{"start_line":51,"start_character":0,"end_line":52,"end_character":82},"in_reply_to":"df7087c5_5548d685","updated":"2018-03-28 09:55:38.000000000","message":"It triggers decision-engine to run the ONESHOT audit.\nIt also can triggers decision-engine to run the CONTINUS audit. Then you can init the \u0027host\u0027 field when do_trigger_audit.\n\nBut I don\u0027t think it is a complete and elegant solution to fix desion-engine ha problem.","commit_id":"1e2b0c13762ff373a5734535906d5113db545ad8"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"59b86ac7b131abfa7679dfc4a73d9cb8b99976e1","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Another problem is how to sync Data Models of Decision Engines to each other."},{"line_number":25,"context_line":"Now Decision Engine updates its Data Model based on notifications from Nova."},{"line_number":26,"context_line":"If there are many Decision Engines, we need to find a way to broadcast notifications."},{"line_number":27,"context_line":"Maybe we need another blueprint to solve this problem."},{"line_number":28,"context_line":"One `solution`_ don\u0027t depend on notifications is to update CDM before each audit."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_46c1f7e3","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":54},"updated":"2018-04-10 07:24:05.000000000","message":"We\u0027ve already achieved this here: https://review.openstack.org/#/c/551963/","commit_id":"e90506e855e315edc8b209010b8bad8136948ece"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"9fcb6d7117ce63c6abb6572e0e352f78b6ab6680","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Another problem is how to sync Data Models of Decision Engines to each other."},{"line_number":25,"context_line":"Now Decision Engine updates its Data Model based on notifications from Nova."},{"line_number":26,"context_line":"If there are many Decision Engines, we need to find a way to broadcast notifications."},{"line_number":27,"context_line":"Maybe we need another blueprint to solve this problem."},{"line_number":28,"context_line":"One `solution`_ don\u0027t depend on notifications is to update CDM before each audit."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_3c7ab9b9","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":54},"in_reply_to":"bf659307_46c1f7e3","updated":"2018-04-11 02:45:55.000000000","message":"OK, I\u0027ll update","commit_id":"e90506e855e315edc8b209010b8bad8136948ece"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"59b86ac7b131abfa7679dfc4a73d9cb8b99976e1","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"If we enable more than one Watcher-decision-engine,"},{"line_number":41,"context_line":"the question is how to know the relation between audit and Watcher-decision-engine."},{"line_number":42,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":43,"context_line":"When we update the audit state from PENDING to ONGOING, we set the host"},{"line_number":44,"context_line":"field to record the Watcher-decision-engine."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_86df0fd5","line":42,"range":{"start_line":42,"start_character":17,"end_line":42,"end_character":29},"updated":"2018-04-10 07:24:05.000000000","message":"we have service object (https://github.com/openstack/watcher/blob/master/watcher/objects/service.py#L30) in watcher, why can\u0027t we use id from there?","commit_id":"e90506e855e315edc8b209010b8bad8136948ece"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"9fcb6d7117ce63c6abb6572e0e352f78b6ab6680","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"If we enable more than one Watcher-decision-engine,"},{"line_number":41,"context_line":"the question is how to know the relation between audit and Watcher-decision-engine."},{"line_number":42,"context_line":"We can add a new \u0027host\u0027 field in the audit table to solve this question."},{"line_number":43,"context_line":"When we update the audit state from PENDING to ONGOING, we set the host"},{"line_number":44,"context_line":"field to record the Watcher-decision-engine."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_b7dee23b","line":42,"range":{"start_line":42,"start_character":17,"end_line":42,"end_character":29},"in_reply_to":"bf659307_86df0fd5","updated":"2018-04-11 02:45:55.000000000","message":"Some reasons:\n1, I don\u0027t sure whether the service id will change in some conditions such as restart or upgrade.\n2, host name is better readable","commit_id":"e90506e855e315edc8b209010b8bad8136948ece"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"59b86ac7b131abfa7679dfc4a73d9cb8b99976e1","unresolved":false,"context_lines":[{"line_number":56,"context_line":"* For CONTINUOUS audit, need to check the host that running decision engine and"},{"line_number":57,"context_line":"  recording host value in audit table, if they are differnet, just skip the audit."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* When starting Applier process, if there are ONGOING actionplan with the same host,"},{"line_number":60,"context_line":"  cancel these stale actonplans."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_f90b0c21","line":59,"range":{"start_line":59,"start_character":65,"end_line":59,"end_character":83},"updated":"2018-04-10 07:24:05.000000000","message":"I\u0027m not sure that we can start more than one actionplan at the same time. If there are the same resources in two actionplans, there will be collision. I suggest to check if there is overlap of resources:\n\nnew_ap \u003d actionplan we want to start\nif there are ongoing actionplans:\n    for ap in ongoing_actionplans:\n        if is_actions_overlapping(new_ap, ap):\n            we can\u0027t launch new_ap","commit_id":"e90506e855e315edc8b209010b8bad8136948ece"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"9fcb6d7117ce63c6abb6572e0e352f78b6ab6680","unresolved":false,"context_lines":[{"line_number":56,"context_line":"* For CONTINUOUS audit, need to check the host that running decision engine and"},{"line_number":57,"context_line":"  recording host value in audit table, if they are differnet, just skip the audit."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* When starting Applier process, if there are ONGOING actionplan with the same host,"},{"line_number":60,"context_line":"  cancel these stale actonplans."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_7767eaea","line":59,"range":{"start_line":59,"start_character":65,"end_line":59,"end_character":83},"in_reply_to":"bf659307_f90b0c21","updated":"2018-04-11 02:45:55.000000000","message":"Here is about exception scenario, such as the applier restart when one actionplan is running. In this situation, the state of actionplan is still ONGOING.","commit_id":"e90506e855e315edc8b209010b8bad8136948ece"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"59b86ac7b131abfa7679dfc4a73d9cb8b99976e1","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* When starting Applier process, if there are ONGOING actionplan with the same host,"},{"line_number":60,"context_line":"  cancel these stale actonplans."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Alternatives"},{"line_number":63,"context_line":"------------"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_593558d9","line":61,"updated":"2018-04-10 07:24:05.000000000","message":"Some strategies[1] changes DM before execution of action plan. This logic should be based on notifications (i.e. instance1 has been migrated and only after that nova sends notification about it and all DEs consume it to sync their DM).","commit_id":"e90506e855e315edc8b209010b8bad8136948ece"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"9fcb6d7117ce63c6abb6572e0e352f78b6ab6680","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* When starting Applier process, if there are ONGOING actionplan with the same host,"},{"line_number":60,"context_line":"  cancel these stale actonplans."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Alternatives"},{"line_number":63,"context_line":"------------"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"bf659307_d76036a8","line":61,"in_reply_to":"bf659307_593558d9","updated":"2018-04-11 02:45:55.000000000","message":"But notification is unreliable, we can\u0027t sure all DE receive the necessary notifications.","commit_id":"e90506e855e315edc8b209010b8bad8136948ece"},{"author":{"_account_id":27947,"name":"Egor Panfilov","email":"edpanfilov@sbcloud.ru","username":"erakli"},"change_message_id":"b11886305b1692e8771f55dd385d2ffb32eb72a8","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"So, the changes will include:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* Add a new \u0027host\u0027 filed in the audit table"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* Add a new \u0027host\u0027 filed in the actionplan table"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9f6a8fd7_0d3d0ac3","line":48,"range":{"start_line":48,"start_character":19,"end_line":48,"end_character":24},"updated":"2018-04-23 19:22:45.000000000","message":"field maybe?","commit_id":"8325c17c3508103ca52824eba22e0291478dc3b8"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"054e29aeb209f3239d1032f16e82da25b375fba3","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"So, the changes will include:"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* Add a new \u0027host\u0027 filed in the audit table"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* Add a new \u0027host\u0027 filed in the actionplan table"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_a7cbbb47","line":48,"range":{"start_line":48,"start_character":19,"end_line":48,"end_character":24},"in_reply_to":"9f6a8fd7_0d3d0ac3","updated":"2018-06-26 06:34:41.000000000","message":"Done","commit_id":"8325c17c3508103ca52824eba22e0291478dc3b8"},{"author":{"_account_id":27947,"name":"Egor Panfilov","email":"edpanfilov@sbcloud.ru","username":"erakli"},"change_message_id":"b11886305b1692e8771f55dd385d2ffb32eb72a8","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* Add a new \u0027host\u0027 filed in the audit table"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* Add a new \u0027host\u0027 filed in the actionplan table"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Record the host when updating the audit\u0027s state from PENDING to ONGOING"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9f6a8fd7_cd32b2f2","line":50,"range":{"start_line":50,"start_character":19,"end_line":50,"end_character":24},"updated":"2018-04-23 19:22:45.000000000","message":"ditto","commit_id":"8325c17c3508103ca52824eba22e0291478dc3b8"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"054e29aeb209f3239d1032f16e82da25b375fba3","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"* Add a new \u0027host\u0027 filed in the audit table"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* Add a new \u0027host\u0027 filed in the actionplan table"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Record the host when updating the audit\u0027s state from PENDING to ONGOING"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_47d667f4","line":50,"range":{"start_line":50,"start_character":19,"end_line":50,"end_character":24},"in_reply_to":"9f6a8fd7_cd32b2f2","updated":"2018-06-26 06:34:41.000000000","message":"Done","commit_id":"8325c17c3508103ca52824eba22e0291478dc3b8"},{"author":{"_account_id":27947,"name":"Egor Panfilov","email":"edpanfilov@sbcloud.ru","username":"erakli"},"change_message_id":"b11886305b1692e8771f55dd385d2ffb32eb72a8","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Work Items"},{"line_number":121,"context_line":"----------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"* Update database to add a new filed \u0027host\u0027"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* Record host when changing state from PENDING to ONGOING"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9f6a8fd7_cd47124c","line":123,"range":{"start_line":123,"start_character":33,"end_line":123,"end_character":34},"updated":"2018-04-23 19:22:45.000000000","message":"ditto","commit_id":"8325c17c3508103ca52824eba22e0291478dc3b8"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"054e29aeb209f3239d1032f16e82da25b375fba3","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Work Items"},{"line_number":121,"context_line":"----------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"* Update database to add a new filed \u0027host\u0027"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* Record host when changing state from PENDING to ONGOING"},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5f7c97a3_67d123f8","line":123,"range":{"start_line":123,"start_character":33,"end_line":123,"end_character":34},"in_reply_to":"9f6a8fd7_cd47124c","updated":"2018-06-26 06:34:41.000000000","message":"Done","commit_id":"8325c17c3508103ca52824eba22e0291478dc3b8"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"d10a91bf97054bfa3d391b4e8a154e1884407e36","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Another problem is how to sync Data Models of Decision Engines to each other."},{"line_number":25,"context_line":"Now Decision Engine updates its Data Model based on notifications from Nova."},{"line_number":26,"context_line":"If there are many Decision Engines, we need to find a way to broadcast"},{"line_number":27,"context_line":"notifications. We fixed this problem in `commit`_. One `solution`_ don\u0027t"},{"line_number":28,"context_line":"depend on notifications is to update CDM before each audit."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_34874515","line":27,"range":{"start_line":27,"start_character":15,"end_line":27,"end_character":50},"updated":"2018-07-03 05:45:50.000000000","message":"We should include the commit in this patch, because we can not complete active active HA without this patch.","commit_id":"d0c01a1683d43df0960613ec639de83e63c7532a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"16094d69862f3c62f4352d56323aa9dbd9700e00","unresolved":false,"context_lines":[{"line_number":24,"context_line":"Another problem is how to sync Data Models of Decision Engines to each other."},{"line_number":25,"context_line":"Now Decision Engine updates its Data Model based on notifications from Nova."},{"line_number":26,"context_line":"If there are many Decision Engines, we need to find a way to broadcast"},{"line_number":27,"context_line":"notifications. We fixed this problem in `commit`_. One `solution`_ don\u0027t"},{"line_number":28,"context_line":"depend on notifications is to update CDM before each audit."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_a28f772c","line":27,"range":{"start_line":27,"start_character":15,"end_line":27,"end_character":50},"in_reply_to":"5f7c97a3_34874515","updated":"2018-07-04 09:54:40.000000000","message":"Done","commit_id":"d0c01a1683d43df0960613ec639de83e63c7532a"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"7be0e23266cea89828aeb838a68682286c3b4529","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  audit."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* When starting Applier process, if there are ONGOING actionplan with the"},{"line_number":61,"context_line":"  same host, cancel these stale actonplans. Actions of these stale actionplans"},{"line_number":62,"context_line":"  should also be marked as CANCELLED."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* Action Plan includes different resources which are represented in Actions."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_6790ec43","line":61,"updated":"2018-06-29 05:13:12.000000000","message":"s\\actonplans\\actionplans","commit_id":"d0c01a1683d43df0960613ec639de83e63c7532a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"16094d69862f3c62f4352d56323aa9dbd9700e00","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  audit."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* When starting Applier process, if there are ONGOING actionplan with the"},{"line_number":61,"context_line":"  same host, cancel these stale actonplans. Actions of these stale actionplans"},{"line_number":62,"context_line":"  should also be marked as CANCELLED."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* Action Plan includes different resources which are represented in Actions."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_222b6782","line":61,"in_reply_to":"5f7c97a3_6790ec43","updated":"2018-07-04 09:54:40.000000000","message":"Done","commit_id":"d0c01a1683d43df0960613ec639de83e63c7532a"},{"author":{"_account_id":19457,"name":"aditi sharma","email":"adi.sky17@gmail.com","username":"aditi"},"change_message_id":"7be0e23266cea89828aeb838a68682286c3b4529","unresolved":false,"context_lines":[{"line_number":64,"context_line":"* Action Plan includes different resources which are represented in Actions."},{"line_number":65,"context_line":"  If user wants to run more than one action plan at the same time,"},{"line_number":66,"context_line":"  Watcher should check whether new action plan\u0027s resources overlaps with"},{"line_number":67,"context_line":"  already running one or not. If so, Watcher should prevent running of new"},{"line_number":68,"context_line":"  Action Plan by raising appropriate error."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_a7a5a4a1","line":67,"updated":"2018-06-29 05:13:12.000000000","message":"I still do not understand, why we need to run two action plan simultenously??","commit_id":"d0c01a1683d43df0960613ec639de83e63c7532a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"16094d69862f3c62f4352d56323aa9dbd9700e00","unresolved":false,"context_lines":[{"line_number":64,"context_line":"* Action Plan includes different resources which are represented in Actions."},{"line_number":65,"context_line":"  If user wants to run more than one action plan at the same time,"},{"line_number":66,"context_line":"  Watcher should check whether new action plan\u0027s resources overlaps with"},{"line_number":67,"context_line":"  already running one or not. If so, Watcher should prevent running of new"},{"line_number":68,"context_line":"  Action Plan by raising appropriate error."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_c250730c","line":67,"in_reply_to":"5f7c97a3_a7a5a4a1","updated":"2018-07-04 09:54:40.000000000","message":"User may have different audits with different resource scopes. It means that workload balancing strategy may work on AZ1 and consolidation strategy may work on AZ2. These two audits generate at least two action plans, which can be applied to different resources (if their resources don\u0027t overlap).","commit_id":"d0c01a1683d43df0960613ec639de83e63c7532a"},{"author":{"_account_id":13111,"name":"Hidekazu Nakamura","email":"hidekazuna@gmail.com","username":"hid-nakamura"},"change_message_id":"d10a91bf97054bfa3d391b4e8a154e1884407e36","unresolved":false,"context_lines":[{"line_number":154,"context_line":"Documentation Impact"},{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"None"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_d4c8514e","line":157,"updated":"2018-07-03 05:45:50.000000000","message":"Better to add documentation.\nDeployer wants to know whether watcher can have active active HA or not.","commit_id":"d0c01a1683d43df0960613ec639de83e63c7532a"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"16094d69862f3c62f4352d56323aa9dbd9700e00","unresolved":false,"context_lines":[{"line_number":154,"context_line":"Documentation Impact"},{"line_number":155,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"None"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_e2556ffa","line":157,"in_reply_to":"5f7c97a3_d4c8514e","updated":"2018-07-04 09:54:40.000000000","message":"Done","commit_id":"d0c01a1683d43df0960613ec639de83e63c7532a"}]}
