)]}'
{"specs/pike/approved/cron-based-continuous-audits.rst":[{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"e6bfc965b5ef2de79525c47a5d0bf5c139146208","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Watcher can run continuous audits with specified by user interval. But time of"},{"line_number":17,"context_line":"next running isn\u0027t stored in database so it may cause some collisions when"},{"line_number":18,"context_line":"Watcher services are down."},{"line_number":19,"context_line":"Meantime, using interval isn\u0027t flexible and user-friendly solution. There is"},{"line_number":20,"context_line":"industry standard like cron syntax that provides elastic way to schedule"},{"line_number":21,"context_line":"audit execute."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_ccf51f84","line":18,"range":{"start_line":16,"start_character":0,"end_line":18,"end_character":26},"updated":"2017-03-07 14:30:13.000000000","message":"Watcher currently implements a user specified interval when running continuous audits. This may cause some collisions when the Watcher services are down, because the next audit time isn\u0027t stored in the database.","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"87b9cfda92f61ad650586dfb058e4c089319be83","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Problem description"},{"line_number":14,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Watcher can run continuous audits with specified by user interval. But time of"},{"line_number":17,"context_line":"next running isn\u0027t stored in database so it may cause some collisions when"},{"line_number":18,"context_line":"Watcher services are down."},{"line_number":19,"context_line":"Meantime, using interval isn\u0027t flexible and user-friendly solution. There is"},{"line_number":20,"context_line":"industry standard like cron syntax that provides elastic way to schedule"},{"line_number":21,"context_line":"audit execute."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_750d7d36","line":18,"range":{"start_line":16,"start_character":0,"end_line":18,"end_character":26},"in_reply_to":"9a30ddce_ccf51f84","updated":"2017-03-09 10:42:31.000000000","message":"Done","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"e6bfc965b5ef2de79525c47a5d0bf5c139146208","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Watcher can run continuous audits with specified by user interval. But time of"},{"line_number":17,"context_line":"next running isn\u0027t stored in database so it may cause some collisions when"},{"line_number":18,"context_line":"Watcher services are down."},{"line_number":19,"context_line":"Meantime, using interval isn\u0027t flexible and user-friendly solution. There is"},{"line_number":20,"context_line":"industry standard like cron syntax that provides elastic way to schedule"},{"line_number":21,"context_line":"audit execute."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Use Cases"},{"line_number":24,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_8c8887e9","line":21,"range":{"start_line":19,"start_character":0,"end_line":21,"end_character":14},"updated":"2017-03-07 14:30:13.000000000","message":"Using a time interval isn\u0027t a flexible or user-friendly solution, instead, we should use an industry standard like cron syntax that provides an elastic way to schedule and execute an audit.","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"87b9cfda92f61ad650586dfb058e4c089319be83","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Watcher can run continuous audits with specified by user interval. But time of"},{"line_number":17,"context_line":"next running isn\u0027t stored in database so it may cause some collisions when"},{"line_number":18,"context_line":"Watcher services are down."},{"line_number":19,"context_line":"Meantime, using interval isn\u0027t flexible and user-friendly solution. There is"},{"line_number":20,"context_line":"industry standard like cron syntax that provides elastic way to schedule"},{"line_number":21,"context_line":"audit execute."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Use Cases"},{"line_number":24,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_5521599e","line":21,"range":{"start_line":19,"start_character":0,"end_line":21,"end_character":14},"in_reply_to":"9a30ddce_8c8887e9","updated":"2017-03-09 10:42:31.000000000","message":"Done","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"646217f370338785380d279bae360a14611b915b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Data model impact"},{"line_number":59,"context_line":"-----------------"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Type of interval column of Audit table should be changed to string type."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* New column next_run_time has to be added to Audit table."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_f207c819","line":61,"range":{"start_line":61,"start_character":1,"end_line":61,"end_character":73},"updated":"2017-03-09 08:09:51.000000000","message":"suggest to replace interval field to cron fileld.","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"28d6984e67fe068f268aab85534a5b46922407f8","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Data model impact"},{"line_number":59,"context_line":"-----------------"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Type of interval column of Audit table should be changed to string type."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* New column next_run_time has to be added to Audit table."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_8b0d7240","line":61,"range":{"start_line":61,"start_character":1,"end_line":61,"end_character":73},"in_reply_to":"9a30ddce_759d7d58","updated":"2017-03-09 11:24:46.000000000","message":"Hi Alex,\nCron syntax can cover this interval format, if we want to use cron , why should keep the interval?","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"afb6c4b8ec7808cefa958030b025e3e818defd45","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Data model impact"},{"line_number":59,"context_line":"-----------------"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Type of interval column of Audit table should be changed to string type."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* New column next_run_time has to be added to Audit table."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_a09890c1","line":61,"range":{"start_line":61,"start_character":1,"end_line":61,"end_character":73},"in_reply_to":"9a30ddce_8b0d7240","updated":"2017-03-09 13:11:02.000000000","message":"Cause it is simple and user-friendly. And we have published API that should be supported for a time.","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"94c9ed727da638c9c52e3248e8c966aa682a83d7","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Data model impact"},{"line_number":59,"context_line":"-----------------"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Type of interval column of Audit table should be changed to string type."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* New column next_run_time has to be added to Audit table."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_3ff1c06b","line":61,"range":{"start_line":61,"start_character":1,"end_line":61,"end_character":73},"in_reply_to":"9a30ddce_a09890c1","updated":"2017-03-13 01:59:39.000000000","message":"I got it, thanks!","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"87b9cfda92f61ad650586dfb058e4c089319be83","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Data model impact"},{"line_number":59,"context_line":"-----------------"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Type of interval column of Audit table should be changed to string type."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* New column next_run_time has to be added to Audit table."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_759d7d58","line":61,"range":{"start_line":61,"start_character":1,"end_line":61,"end_character":73},"in_reply_to":"9a30ddce_f207c819","updated":"2017-03-09 10:42:31.000000000","message":"We want to store there both interval and cron.","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":21692,"name":"licanwei","email":"li.canwei2@zte.com.cn","username":"licanwei"},"change_message_id":"646217f370338785380d279bae360a14611b915b","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Type of interval column of Audit table should be changed to string type."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* New column next_run_time has to be added to Audit table."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"REST API impact"},{"line_number":66,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_122c5caa","line":63,"range":{"start_line":63,"start_character":2,"end_line":63,"end_character":57},"updated":"2017-03-09 08:09:51.000000000","message":"If we have cron field, we can dynamically calculate the next run time and don\u0027t need to save in the audit table.","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":16277,"name":"Pradeep Kumar Singh","email":"ps4openstack@gmail.com","username":"pradeep_singh"},"change_message_id":"01d61ea07fbd61a5a10a206681a532b3ae641637","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Type of interval column of Audit table should be changed to string type."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* New column next_run_time has to be added to Audit table."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"REST API impact"},{"line_number":66,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_ffe14c9b","line":63,"range":{"start_line":63,"start_character":2,"end_line":63,"end_character":57},"in_reply_to":"9a30ddce_122c5caa","updated":"2017-03-09 09:55:10.000000000","message":"+1","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"87b9cfda92f61ad650586dfb058e4c089319be83","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Type of interval column of Audit table should be changed to string type."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* New column next_run_time has to be added to Audit table."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"REST API impact"},{"line_number":66,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_7a456a15","line":63,"range":{"start_line":63,"start_character":2,"end_line":63,"end_character":57},"in_reply_to":"9a30ddce_122c5caa","updated":"2017-03-09 10:42:31.000000000","message":"This field is applicable for interval-only audits, which use only seconds to set interval.","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"87b9cfda92f61ad650586dfb058e4c089319be83","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Type of interval column of Audit table should be changed to string type."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* New column next_run_time has to be added to Audit table."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"REST API impact"},{"line_number":66,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_fa515ad9","line":63,"range":{"start_line":63,"start_character":2,"end_line":63,"end_character":57},"in_reply_to":"9a30ddce_ffe14c9b","updated":"2017-03-09 10:42:31.000000000","message":"Look at answer to licanwei.","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":21361,"name":"Chris Spencer","email":"christopher.m.spencer@intel.com","username":"chrisspencer"},"change_message_id":"e6bfc965b5ef2de79525c47a5d0bf5c139146208","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Documentation Impact"},{"line_number":128,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"None"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"References"},{"line_number":133,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_ecc82377","line":130,"range":{"start_line":130,"start_character":0,"end_line":130,"end_character":4},"updated":"2017-03-07 14:30:13.000000000","message":"we don\u0027t have any documentation on how to specify continuous optimization intervals?  Shouldn\u0027t this be updated to mention the new cron option?","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"87b9cfda92f61ad650586dfb058e4c089319be83","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Documentation Impact"},{"line_number":128,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"None"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"References"},{"line_number":133,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a30ddce_f5a96d7c","line":130,"range":{"start_line":130,"start_character":0,"end_line":130,"end_character":4},"in_reply_to":"9a30ddce_ecc82377","updated":"2017-03-09 10:42:31.000000000","message":"Done","commit_id":"716e8662d0cddd7e1e3177db465328778e7f2844"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"2e82eedd0b972c95689e37f54485757961cd5049","unresolved":false,"context_lines":[{"line_number":47,"context_line":"For example, Watcher had to run audit at 7:30 am, but services went down and we"},{"line_number":48,"context_line":"have restored it only at 9:00 am. Using interval with 3600 value, Watcher has"},{"line_number":49,"context_line":"to set next run time at 9:30 am."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9a30ddce_96710dab","line":50,"updated":"2017-03-09 15:59:54.000000000","message":"What happens if we have 2 Decision engine processes running in the future? The way I see it is that they would both schedule the same job might cause some race condition in case one doesn\u0027t detect that the audit state changed to ONGOING.\n\nThis is not a problem that is specific to this BP but to all periodic audit jobs.\nThe best way to solve this would be to use apscheduler\u0027s jobstore system (see https://apscheduler.readthedocs.io/en/latest/userguide.html#choosing-the-right-scheduler-job-store-s-executor-s-and-trigger-s) and expose its configuration into Watcher\u0027s configuration file so we can store the jobs into the DB via the SQLAlchemyJobStore connector. That way, I reckon all DE processes will share the same list of jobs, which also means that only one of them will eventually execute the now-unique periodic audit job.\n\nAny thoughts?","commit_id":"c380fc2093b349780e93aaca9faa2c20d6faf67f"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"efe2152ca5ae0c9928b8c67200038990b2d976e0","unresolved":false,"context_lines":[{"line_number":47,"context_line":"For example, Watcher had to run audit at 7:30 am, but services went down and we"},{"line_number":48,"context_line":"have restored it only at 9:00 am. Using interval with 3600 value, Watcher has"},{"line_number":49,"context_line":"to set next run time at 9:30 am."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Alternatives"},{"line_number":52,"context_line":"------------"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7ffa3b31_162dc242","line":50,"in_reply_to":"9a30ddce_96710dab","updated":"2017-04-17 10:09:49.000000000","message":"I\u0027ve mentioned background-jobs bp in new PS","commit_id":"c380fc2093b349780e93aaca9faa2c20d6faf67f"}]}
