)]}'
{"specs/mitaka/approved/db-purge-engine.rst":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9f0507c59f092bfa15acb16e270d2c978c6209b3","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/watcher/+spec/db-purge-engine"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Watcher never deletes data from its DBs and uses only soft deleting (There"},{"line_number":16,"context_line":"is special column in each table that indicates that entry is deleted). We"},{"line_number":17,"context_line":"keep these data from potential future ML processing in order to improve"},{"line_number":18,"context_line":"Watcher auditing recommendations. However, we shall provide a purge mechanism"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_4a03e142","line":15,"range":{"start_line":15,"start_character":44,"end_line":15,"end_character":67},"updated":"2016-02-04 10:56:41.000000000","message":"only uses soft deletion","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/watcher/+spec/db-purge-engine"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Watcher never deletes data from its DBs and uses only soft deleting (There"},{"line_number":16,"context_line":"is special column in each table that indicates that entry is deleted). We"},{"line_number":17,"context_line":"keep these data from potential future ML processing in order to improve"},{"line_number":18,"context_line":"Watcher auditing recommendations. However, we shall provide a purge mechanism"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_5696e793","line":15,"range":{"start_line":15,"start_character":44,"end_line":15,"end_character":67},"in_reply_to":"5a5ae5dd_4a03e142","updated":"2016-02-08 16:27:55.000000000","message":"Done","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9f0507c59f092bfa15acb16e270d2c978c6209b3","unresolved":false,"context_lines":[{"line_number":13,"context_line":"https://blueprints.launchpad.net/watcher/+spec/db-purge-engine"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Watcher never deletes data from its DBs and uses only soft deleting (There"},{"line_number":16,"context_line":"is special column in each table that indicates that entry is deleted). We"},{"line_number":17,"context_line":"keep these data from potential future ML processing in order to improve"},{"line_number":18,"context_line":"Watcher auditing recommendations. However, we shall provide a purge mechanism"},{"line_number":19,"context_line":"to Cloud Admin in order to limit the size of this database_ and make sure it"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_eabf2d5e","line":16,"range":{"start_line":16,"start_character":32,"end_line":16,"end_character":68},"updated":"2016-02-04 10:56:41.000000000","message":"indicating whether or not an entry is deleted","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":13,"context_line":"https://blueprints.launchpad.net/watcher/+spec/db-purge-engine"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Watcher never deletes data from its DBs and uses only soft deleting (There"},{"line_number":16,"context_line":"is special column in each table that indicates that entry is deleted). We"},{"line_number":17,"context_line":"keep these data from potential future ML processing in order to improve"},{"line_number":18,"context_line":"Watcher auditing recommendations. However, we shall provide a purge mechanism"},{"line_number":19,"context_line":"to Cloud Admin in order to limit the size of this database_ and make sure it"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_76f1a300","line":16,"range":{"start_line":16,"start_character":32,"end_line":16,"end_character":68},"in_reply_to":"5a5ae5dd_eabf2d5e","updated":"2016-02-08 16:27:55.000000000","message":"Done","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9f0507c59f092bfa15acb16e270d2c978c6209b3","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Watcher never deletes data from its DBs and uses only soft deleting (There"},{"line_number":16,"context_line":"is special column in each table that indicates that entry is deleted). We"},{"line_number":17,"context_line":"keep these data from potential future ML processing in order to improve"},{"line_number":18,"context_line":"Watcher auditing recommendations. However, we shall provide a purge mechanism"},{"line_number":19,"context_line":"to Cloud Admin in order to limit the size of this database_ and make sure it"},{"line_number":20,"context_line":"does not increase too much."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_044e4296","line":17,"range":{"start_line":17,"start_character":16,"end_line":17,"end_character":20},"updated":"2016-02-04 10:56:41.000000000","message":"s/from/for","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Watcher never deletes data from its DBs and uses only soft deleting (There"},{"line_number":16,"context_line":"is special column in each table that indicates that entry is deleted). We"},{"line_number":17,"context_line":"keep these data from potential future ML processing in order to improve"},{"line_number":18,"context_line":"Watcher auditing recommendations. However, we shall provide a purge mechanism"},{"line_number":19,"context_line":"to Cloud Admin in order to limit the size of this database_ and make sure it"},{"line_number":20,"context_line":"does not increase too much."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_f65353e0","line":17,"range":{"start_line":17,"start_character":16,"end_line":17,"end_character":20},"in_reply_to":"5a5ae5dd_044e4296","updated":"2016-02-08 16:27:55.000000000","message":"Done","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9f0507c59f092bfa15acb16e270d2c978c6209b3","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The only way to destroy objects into the Watcher database is to connect"},{"line_number":27,"context_line":"directly onto the database backend server and to execute DB commands (or"},{"line_number":28,"context_line":"script) to remove objects in tables. Moreover, some objects can be linked"},{"line_number":29,"context_line":"to another ones. Remove manually such objects can create orphan ones in"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_ef85ff58","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":1},"updated":"2016-02-04 10:56:41.000000000","message":"I would add some context here like:\n\nAs of now, Watcher does not provide anything to facilitate the removal of soft deleted objects. So [...]","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The only way to destroy objects into the Watcher database is to connect"},{"line_number":27,"context_line":"directly onto the database backend server and to execute DB commands (or"},{"line_number":28,"context_line":"script) to remove objects in tables. Moreover, some objects can be linked"},{"line_number":29,"context_line":"to another ones. Remove manually such objects can create orphan ones in"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_765683cf","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":1},"in_reply_to":"5a5ae5dd_ef85ff58","updated":"2016-02-08 16:27:55.000000000","message":"Done","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"a20877fe937ea40b5dad20a2df64d1e287148ad0","unresolved":false,"context_lines":[{"line_number":26,"context_line":"The only way to destroy objects into the Watcher database is to connect"},{"line_number":27,"context_line":"directly onto the database backend server and to execute DB commands (or"},{"line_number":28,"context_line":"script) to remove objects in tables. Moreover, some objects can be linked"},{"line_number":29,"context_line":"to another ones. Remove manually such objects can create orphan ones in"},{"line_number":30,"context_line":"the database."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Watcher database size is not unlimited and queries performance can be degraded"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_fa70df73","line":29,"range":{"start_line":29,"start_character":17,"end_line":29,"end_character":23},"updated":"2016-02-08 09:19:23.000000000","message":"Removing manually ...","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9f0507c59f092bfa15acb16e270d2c978c6209b3","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The only way to destroy objects into the Watcher database is to connect"},{"line_number":27,"context_line":"directly onto the database backend server and to execute DB commands (or"},{"line_number":28,"context_line":"script) to remove objects in tables. Moreover, some objects can be linked"},{"line_number":29,"context_line":"to another ones. Remove manually such objects can create orphan ones in"},{"line_number":30,"context_line":"the database."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Watcher database size is not unlimited and queries performance can be degraded"},{"line_number":33,"context_line":"due to a huge quantity of soft-deleted objects remained into the  Db storage."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_cfdda315","line":30,"range":{"start_line":28,"start_character":37,"end_line":30,"end_character":13},"updated":"2016-02-04 10:56:41.000000000","message":"Can you add an example and/or definition to illustrate what you mean by \"orphan\" objects and by \"linked\"?\n\nShouldn\u0027t we address the problem of these linked objects which may require cascade deletion if they are left as is?","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"a20877fe937ea40b5dad20a2df64d1e287148ad0","unresolved":false,"context_lines":[{"line_number":27,"context_line":"directly onto the database backend server and to execute DB commands (or"},{"line_number":28,"context_line":"script) to remove objects in tables. Moreover, some objects can be linked"},{"line_number":29,"context_line":"to another ones. Remove manually such objects can create orphan ones in"},{"line_number":30,"context_line":"the database."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Watcher database size is not unlimited and queries performance can be degraded"},{"line_number":33,"context_line":"due to a huge quantity of soft-deleted objects remained into the  Db storage."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_1aaffb7d","line":30,"range":{"start_line":30,"start_character":12,"end_line":30,"end_character":13},"updated":"2016-02-08 09:19:23.000000000","message":"We should provide a detailed list of the cascaded deletion between objects :\n- When an Audit Template is removed, we should delete all Audits which were using it\n- when an Audit is deleted, we remove the associated Action Plan, which removes the list of Actions attached to it.\n- When an Action Plan is deleted, we should remove all the Actions it contains","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":27,"context_line":"directly onto the database backend server and to execute DB commands (or"},{"line_number":28,"context_line":"script) to remove objects in tables. Moreover, some objects can be linked"},{"line_number":29,"context_line":"to another ones. Remove manually such objects can create orphan ones in"},{"line_number":30,"context_line":"the database."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Watcher database size is not unlimited and queries performance can be degraded"},{"line_number":33,"context_line":"due to a huge quantity of soft-deleted objects remained into the  Db storage."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_c0ae3f2d","line":30,"range":{"start_line":30,"start_character":12,"end_line":30,"end_character":13},"in_reply_to":"5a5ae5dd_1aaffb7d","updated":"2016-02-08 16:27:55.000000000","message":"Done, into \"Use Cases\" section","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"The only way to destroy objects into the Watcher database is to connect"},{"line_number":27,"context_line":"directly onto the database backend server and to execute DB commands (or"},{"line_number":28,"context_line":"script) to remove objects in tables. Moreover, some objects can be linked"},{"line_number":29,"context_line":"to another ones. Remove manually such objects can create orphan ones in"},{"line_number":30,"context_line":"the database."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Watcher database size is not unlimited and queries performance can be degraded"},{"line_number":33,"context_line":"due to a huge quantity of soft-deleted objects remained into the  Db storage."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_36424baf","line":30,"range":{"start_line":28,"start_character":37,"end_line":30,"end_character":13},"in_reply_to":"5a5ae5dd_cfdda315","updated":"2016-02-08 16:27:55.000000000","message":"Done","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9f0507c59f092bfa15acb16e270d2c978c6209b3","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"As a Cloud Admin, I should be able to purge the Watcher database by given,"},{"line_number":45,"context_line":"as argument, a destruction period (expressed by days) from which all objects"},{"line_number":46,"context_line":"will be destroyed. Example: I want to delete objects older than 30 days."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"As a Cloud Admin, I should be able to purge all objects linked to a particular"},{"line_number":49,"context_line":"`Audit Template`_, by given, as argument, the Audit Template UUID."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_b07f6865","line":46,"range":{"start_line":46,"start_character":19,"end_line":46,"end_character":26},"updated":"2016-02-04 10:56:41.000000000","message":"E.g.","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9f0507c59f092bfa15acb16e270d2c978c6209b3","unresolved":false,"context_lines":[{"line_number":41,"context_line":"As a Cloud Admin, I want to manage the size of the Watcher database by purging"},{"line_number":42,"context_line":"all soft-deleted objects."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"As a Cloud Admin, I should be able to purge the Watcher database by given,"},{"line_number":45,"context_line":"as argument, a destruction period (expressed by days) from which all objects"},{"line_number":46,"context_line":"will be destroyed. Example: I want to delete objects older than 30 days."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"As a Cloud Admin, I should be able to purge all objects linked to a particular"},{"line_number":49,"context_line":"`Audit Template`_, by given, as argument, the Audit Template UUID."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_ea616da9","line":46,"range":{"start_line":44,"start_character":18,"end_line":46,"end_character":18},"updated":"2016-02-04 10:56:41.000000000","message":"nit: I would rephrase it like this:\n\"I should be able to purge a subset of the Watcher objects from the database by providing a validity interval as an argument (in days) which shall not be destroyed.\"","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":41,"context_line":"As a Cloud Admin, I want to manage the size of the Watcher database by purging"},{"line_number":42,"context_line":"all soft-deleted objects."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"As a Cloud Admin, I should be able to purge the Watcher database by given,"},{"line_number":45,"context_line":"as argument, a destruction period (expressed by days) from which all objects"},{"line_number":46,"context_line":"will be destroyed. Example: I want to delete objects older than 30 days."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"As a Cloud Admin, I should be able to purge all objects linked to a particular"},{"line_number":49,"context_line":"`Audit Template`_, by given, as argument, the Audit Template UUID."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_60fbcb47","line":46,"range":{"start_line":44,"start_character":18,"end_line":46,"end_character":18},"in_reply_to":"5a5ae5dd_ea616da9","updated":"2016-02-08 16:27:55.000000000","message":"Done","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9f0507c59f092bfa15acb16e270d2c978c6209b3","unresolved":false,"context_lines":[{"line_number":44,"context_line":"As a Cloud Admin, I should be able to purge the Watcher database by given,"},{"line_number":45,"context_line":"as argument, a destruction period (expressed by days) from which all objects"},{"line_number":46,"context_line":"will be destroyed. Example: I want to delete objects older than 30 days."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"As a Cloud Admin, I should be able to purge all objects linked to a particular"},{"line_number":49,"context_line":"`Audit Template`_, by given, as argument, the Audit Template UUID."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_2aff85ab","line":47,"updated":"2016-02-04 10:56:41.000000000","message":"Shouldn\u0027t we allow the user to specify a date in say ISO format, in case they want to be more precise?","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":44,"context_line":"As a Cloud Admin, I should be able to purge the Watcher database by given,"},{"line_number":45,"context_line":"as argument, a destruction period (expressed by days) from which all objects"},{"line_number":46,"context_line":"will be destroyed. Example: I want to delete objects older than 30 days."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"As a Cloud Admin, I should be able to purge all objects linked to a particular"},{"line_number":49,"context_line":"`Audit Template`_, by given, as argument, the Audit Template UUID."},{"line_number":50,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_b6c95b28","line":47,"in_reply_to":"5a5ae5dd_2aff85ab","updated":"2016-02-08 16:27:55.000000000","message":"Done","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"a20877fe937ea40b5dad20a2df64d1e287148ad0","unresolved":false,"context_lines":[{"line_number":46,"context_line":"will be destroyed. Example: I want to delete objects older than 30 days."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"As a Cloud Admin, I should be able to purge all objects linked to a particular"},{"line_number":49,"context_line":"`Audit Template`_, by given, as argument, the Audit Template UUID."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Project Priority"},{"line_number":52,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_7ac06f50","line":49,"range":{"start_line":49,"start_character":65,"end_line":49,"end_character":66},"updated":"2016-02-08 09:19:23.000000000","message":"Why should we restrict to only Audit Template objects ?\nWhy not also propose a purge of all objects related to a particular Audit or to a particular Action Plan ?","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9f0507c59f092bfa15acb16e270d2c978c6209b3","unresolved":false,"context_lines":[{"line_number":46,"context_line":"will be destroyed. Example: I want to delete objects older than 30 days."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"As a Cloud Admin, I should be able to purge all objects linked to a particular"},{"line_number":49,"context_line":"`Audit Template`_, by given, as argument, the Audit Template UUID."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Project Priority"},{"line_number":52,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_aa8615d9","line":49,"range":{"start_line":49,"start_character":22,"end_line":49,"end_character":27},"updated":"2016-02-04 10:56:41.000000000","message":"s/given/providing","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":46,"context_line":"will be destroyed. Example: I want to delete objects older than 30 days."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"As a Cloud Admin, I should be able to purge all objects linked to a particular"},{"line_number":49,"context_line":"`Audit Template`_, by given, as argument, the Audit Template UUID."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Project Priority"},{"line_number":52,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_8399317b","line":49,"range":{"start_line":49,"start_character":65,"end_line":49,"end_character":66},"in_reply_to":"5a5ae5dd_7ac06f50","updated":"2016-02-08 16:27:55.000000000","message":"Vincent, I think about purge tool as a mass deletion command of db objects. From my point of view, this is no sense to have filters based on audit uuid, or action-plan uuid.","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":46,"context_line":"will be destroyed. Example: I want to delete objects older than 30 days."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"As a Cloud Admin, I should be able to purge all objects linked to a particular"},{"line_number":49,"context_line":"`Audit Template`_, by given, as argument, the Audit Template UUID."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Project Priority"},{"line_number":52,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_164aafac","line":49,"range":{"start_line":49,"start_character":22,"end_line":49,"end_character":27},"in_reply_to":"5a5ae5dd_aa8615d9","updated":"2016-02-08 16:27:55.000000000","message":"Done","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"a20877fe937ea40b5dad20a2df64d1e287148ad0","unresolved":false,"context_lines":[{"line_number":62,"context_line":"Alternatives"},{"line_number":63,"context_line":"------------"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":". Do nothing and let operators handle this on their own."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Data model impact"},{"line_number":68,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_dad16324","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":2},"updated":"2016-02-08 09:19:23.000000000","message":"remove this useless point","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9f0507c59f092bfa15acb16e270d2c978c6209b3","unresolved":false,"context_lines":[{"line_number":100,"context_line":"implementation there will be a --max-number option. Note that the object"},{"line_number":101,"context_line":"integrity must be respected: We shall not remove a part of objects associated"},{"line_number":102,"context_line":"in the same parent object. For example, removing of the half of Actions_"},{"line_number":103,"context_line":"recommendedby an `Action Plan`_ (because we reach the max number of purged"},{"line_number":104,"context_line":"object) has no sence, and the integrity of this action plan will be violated."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_d08f8421","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":13},"updated":"2016-02-04 10:56:41.000000000","message":"nit: missing space","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":100,"context_line":"implementation there will be a --max-number option. Note that the object"},{"line_number":101,"context_line":"integrity must be respected: We shall not remove a part of objects associated"},{"line_number":102,"context_line":"in the same parent object. For example, removing of the half of Actions_"},{"line_number":103,"context_line":"recommendedby an `Action Plan`_ (because we reach the max number of purged"},{"line_number":104,"context_line":"object) has no sence, and the integrity of this action plan will be violated."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_16e14f9a","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":13},"in_reply_to":"5a5ae5dd_d08f8421","updated":"2016-02-08 16:27:55.000000000","message":"Done","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9f0507c59f092bfa15acb16e270d2c978c6209b3","unresolved":false,"context_lines":[{"line_number":101,"context_line":"integrity must be respected: We shall not remove a part of objects associated"},{"line_number":102,"context_line":"in the same parent object. For example, removing of the half of Actions_"},{"line_number":103,"context_line":"recommendedby an `Action Plan`_ (because we reach the max number of purged"},{"line_number":104,"context_line":"object) has no sence, and the integrity of this action plan will be violated."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Other deployer impact"},{"line_number":107,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_ea15ed9a","line":104,"range":{"start_line":104,"start_character":8,"end_line":104,"end_character":20},"updated":"2016-02-04 10:56:41.000000000","message":"does not make any sense","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":101,"context_line":"integrity must be respected: We shall not remove a part of objects associated"},{"line_number":102,"context_line":"in the same parent object. For example, removing of the half of Actions_"},{"line_number":103,"context_line":"recommendedby an `Action Plan`_ (because we reach the max number of purged"},{"line_number":104,"context_line":"object) has no sence, and the integrity of this action plan will be violated."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Other deployer impact"},{"line_number":107,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_b6f07b68","line":104,"range":{"start_line":104,"start_character":8,"end_line":104,"end_character":20},"in_reply_to":"5a5ae5dd_ea15ed9a","updated":"2016-02-08 16:27:55.000000000","message":"Done","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"9f0507c59f092bfa15acb16e270d2c978c6209b3","unresolved":false,"context_lines":[{"line_number":134,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"A lot of OpenStack projects already propose purge mechanism. It would be"},{"line_number":137,"context_line":"pertinent to have a look on their mechanism implementation, if needed."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Testing"},{"line_number":140,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_90e7cce3","line":137,"range":{"start_line":137,"start_character":69,"end_line":137,"end_character":70},"updated":"2016-02-04 10:56:41.000000000","message":"Do you have some good examples to link here ?","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":134,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"A lot of OpenStack projects already propose purge mechanism. It would be"},{"line_number":137,"context_line":"pertinent to have a look on their mechanism implementation, if needed."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Testing"},{"line_number":140,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_5e531017","line":137,"range":{"start_line":137,"start_character":69,"end_line":137,"end_character":70},"in_reply_to":"5a5ae5dd_90e7cce3","updated":"2016-02-08 16:27:55.000000000","message":"Done","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"a20877fe937ea40b5dad20a2df64d1e287148ad0","unresolved":false,"context_lines":[{"line_number":142,"context_line":"Add these functional tests :"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"* I purge all objects marked as DELETED."},{"line_number":145,"context_line":"* I purge all objects marked as DELETED, in a maximum limit of M objects."},{"line_number":146,"context_line":"* I purge all objects marked as DELETED and linked to a dedicated Audit"},{"line_number":147,"context_line":"  Template"},{"line_number":148,"context_line":"* I purge all objects marked as DELETED and linked to a dedicated Audit"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_fa245f0d","line":145,"range":{"start_line":145,"start_character":41,"end_line":145,"end_character":72},"updated":"2016-02-08 09:19:23.000000000","message":"I don\u0027t see the need for this one.\nWe should only indicate that we want to purge all Audit Templates or all Audits older than N days and all the cascading deletion is done automatically so that the consistency of data if kept.","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":142,"context_line":"Add these functional tests :"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"* I purge all objects marked as DELETED."},{"line_number":145,"context_line":"* I purge all objects marked as DELETED, in a maximum limit of M objects."},{"line_number":146,"context_line":"* I purge all objects marked as DELETED and linked to a dedicated Audit"},{"line_number":147,"context_line":"  Template"},{"line_number":148,"context_line":"* I purge all objects marked as DELETED and linked to a dedicated Audit"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_9e6668b9","line":145,"range":{"start_line":145,"start_character":41,"end_line":145,"end_character":72},"in_reply_to":"5a5ae5dd_fa245f0d","updated":"2016-02-08 16:27:55.000000000","message":"\u0027maximum limit\u0027 option is specified into \u0027Performance Impact\u0027 section. e.g, It is also used in nova purge tool (http://specs.openstack.org/openstack/nova-specs/specs/mitaka/approved/purge-deleted-instances-cmd.html)","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"a20877fe937ea40b5dad20a2df64d1e287148ad0","unresolved":false,"context_lines":[{"line_number":146,"context_line":"* I purge all objects marked as DELETED and linked to a dedicated Audit"},{"line_number":147,"context_line":"  Template"},{"line_number":148,"context_line":"* I purge all objects marked as DELETED and linked to a dedicated Audit"},{"line_number":149,"context_line":"  Template, in a maximum limit of M objects."},{"line_number":150,"context_line":"* I purge all objects marked as DELETED and older than N days."},{"line_number":151,"context_line":"* I purge all objects marked as DELETED and older than N days, in a maximum"},{"line_number":152,"context_line":"  limit of M objects."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_3a8517ce","line":149,"range":{"start_line":149,"start_character":12,"end_line":149,"end_character":43},"updated":"2016-02-08 09:19:23.000000000","message":"Again, I don\u0027t see the point for providing a max limit of objects to delete. We should always make sure the data are consistent after a purge operation.","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"45ee90a8897f1f86e9c2dda93adb7d435c9f14ec","unresolved":false,"context_lines":[{"line_number":146,"context_line":"* I purge all objects marked as DELETED and linked to a dedicated Audit"},{"line_number":147,"context_line":"  Template"},{"line_number":148,"context_line":"* I purge all objects marked as DELETED and linked to a dedicated Audit"},{"line_number":149,"context_line":"  Template, in a maximum limit of M objects."},{"line_number":150,"context_line":"* I purge all objects marked as DELETED and older than N days."},{"line_number":151,"context_line":"* I purge all objects marked as DELETED and older than N days, in a maximum"},{"line_number":152,"context_line":"  limit of M objects."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a5ae5dd_b9d49eeb","line":149,"range":{"start_line":149,"start_character":12,"end_line":149,"end_character":43},"in_reply_to":"5a5ae5dd_3a8517ce","updated":"2016-02-08 16:27:55.000000000","message":"This is not contradictory: you will not remove a parent object if the sum of child objects to delete exceeds this configurable limit.","commit_id":"ad1587b1c08c0f2b090d029cb89571bdfae80c4e"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"a2bc71f1cc687a5a3fcddf2e6086185cc1973522","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/watcher/+spec/db-purge-engine"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Watcher never deletes data from its DBs and only only uses soft deletion (There"},{"line_number":16,"context_line":"is special column in each table indicating whether or not an entry is"},{"line_number":17,"context_line":"deleted). We keep these data for potential future ML processing in order to"},{"line_number":18,"context_line":"improve Watcher auditing recommendations. However, we shall provide a purge"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_5453f116","line":15,"range":{"start_line":15,"start_character":44,"end_line":15,"end_character":53},"updated":"2016-02-08 16:44:08.000000000","message":"nit: duplicated","commit_id":"6a28054a8a97cad5d84c3c8344b7f9e5505889ae"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"a2bc71f1cc687a5a3fcddf2e6086185cc1973522","unresolved":false,"context_lines":[{"line_number":27,"context_line":"deleted objects. So the only way to destroy objects into the Watcher database"},{"line_number":28,"context_line":"is to connect directly onto the database backend server and to execute DB"},{"line_number":29,"context_line":"commands (or script) to remove objects in tables. Moreover, some objects can"},{"line_number":30,"context_line":"be linked to another ones (e.g. a set of Action objects are linked to a same"},{"line_number":31,"context_line":"Action Plan object, this last being linked to an unique Audit object). Remove"},{"line_number":32,"context_line":"manually such objects can create orphan (e.g. an Action oject with no more"},{"line_number":33,"context_line":"linked Action Plan object) in the database. Finally, you could introduce"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_74aced8b","line":30,"range":{"start_line":30,"start_character":10,"end_line":30,"end_character":25},"updated":"2016-02-08 16:44:08.000000000","message":"IMHO we can remove this bit (otherwise you need make it plural)","commit_id":"6a28054a8a97cad5d84c3c8344b7f9e5505889ae"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"a2bc71f1cc687a5a3fcddf2e6086185cc1973522","unresolved":false,"context_lines":[{"line_number":28,"context_line":"is to connect directly onto the database backend server and to execute DB"},{"line_number":29,"context_line":"commands (or script) to remove objects in tables. Moreover, some objects can"},{"line_number":30,"context_line":"be linked to another ones (e.g. a set of Action objects are linked to a same"},{"line_number":31,"context_line":"Action Plan object, this last being linked to an unique Audit object). Remove"},{"line_number":32,"context_line":"manually such objects can create orphan (e.g. an Action oject with no more"},{"line_number":33,"context_line":"linked Action Plan object) in the database. Finally, you could introduce"},{"line_number":34,"context_line":"inconsistencies into the dabatase by removing part of objects (e.g. remove"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_14e9f9b6","line":31,"range":{"start_line":31,"start_character":46,"end_line":31,"end_character":55},"updated":"2016-02-08 16:44:08.000000000","message":"a unique","commit_id":"6a28054a8a97cad5d84c3c8344b7f9e5505889ae"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"a2bc71f1cc687a5a3fcddf2e6086185cc1973522","unresolved":false,"context_lines":[{"line_number":28,"context_line":"is to connect directly onto the database backend server and to execute DB"},{"line_number":29,"context_line":"commands (or script) to remove objects in tables. Moreover, some objects can"},{"line_number":30,"context_line":"be linked to another ones (e.g. a set of Action objects are linked to a same"},{"line_number":31,"context_line":"Action Plan object, this last being linked to an unique Audit object). Remove"},{"line_number":32,"context_line":"manually such objects can create orphan (e.g. an Action oject with no more"},{"line_number":33,"context_line":"linked Action Plan object) in the database. Finally, you could introduce"},{"line_number":34,"context_line":"inconsistencies into the dabatase by removing part of objects (e.g. remove"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_74c38d38","line":31,"range":{"start_line":31,"start_character":20,"end_line":31,"end_character":29},"updated":"2016-02-08 16:44:08.000000000","message":"the latter","commit_id":"6a28054a8a97cad5d84c3c8344b7f9e5505889ae"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"a2bc71f1cc687a5a3fcddf2e6086185cc1973522","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Action Plan object, this last being linked to an unique Audit object). Remove"},{"line_number":32,"context_line":"manually such objects can create orphan (e.g. an Action oject with no more"},{"line_number":33,"context_line":"linked Action Plan object) in the database. Finally, you could introduce"},{"line_number":34,"context_line":"inconsistencies into the dabatase by removing part of objects (e.g. remove"},{"line_number":35,"context_line":"half of action objects linked to a same action plan object)."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Watcher database size is not unlimited and queries performance can be degraded"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_140ed98b","line":34,"range":{"start_line":34,"start_character":37,"end_line":34,"end_character":61},"updated":"2016-02-08 16:44:08.000000000","message":"removing only a subset of all the object it was referenced by","commit_id":"6a28054a8a97cad5d84c3c8344b7f9e5505889ae"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"a2bc71f1cc687a5a3fcddf2e6086185cc1973522","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Action Plan object, this last being linked to an unique Audit object). Remove"},{"line_number":32,"context_line":"manually such objects can create orphan (e.g. an Action oject with no more"},{"line_number":33,"context_line":"linked Action Plan object) in the database. Finally, you could introduce"},{"line_number":34,"context_line":"inconsistencies into the dabatase by removing part of objects (e.g. remove"},{"line_number":35,"context_line":"half of action objects linked to a same action plan object)."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Watcher database size is not unlimited and queries performance can be degraded"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_14001965","line":34,"range":{"start_line":34,"start_character":25,"end_line":34,"end_character":33},"updated":"2016-02-08 16:44:08.000000000","message":"s/dabatase/database","commit_id":"6a28054a8a97cad5d84c3c8344b7f9e5505889ae"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"a2bc71f1cc687a5a3fcddf2e6086185cc1973522","unresolved":false,"context_lines":[{"line_number":155,"context_line":"A lot of OpenStack projects already propose purge mechanism. It would be"},{"line_number":156,"context_line":"pertinent to have a look on their mechanism implementation, if needed."},{"line_number":157,"context_line":""},{"line_number":158,"context_line":". glance : https://review.openstack.org/#/c/216782/"},{"line_number":159,"context_line":". cinder : https://review.openstack.org/#/c/146766/"},{"line_number":160,"context_line":". nova : https://review.openstack.org/#/c/203751/"},{"line_number":161,"context_line":". ospurge : https://github.com/openstack/ospurge"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_14b81974","line":158,"range":{"start_line":158,"start_character":0,"end_line":158,"end_character":1},"updated":"2016-02-08 16:44:08.000000000","message":"Why a single \".\" here? Is it a reference or a listing?","commit_id":"6a28054a8a97cad5d84c3c8344b7f9e5505889ae"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"b254c7f0ada5d120f46bb07641c7df5bbfd2f650","unresolved":false,"context_lines":[{"line_number":56,"context_line":"`Audit Template`_, by providing, as argument, the Audit Template UUID."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"As a Cloud Admin, I would like to be notified about the number of objects to"},{"line_number":59,"context_line":"be deleted (this number should be computed by Watcher), before to validate"},{"line_number":60,"context_line":"or not this purging operation."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"As a Cloud Admin, I would like to get, as result, a detailed summary of the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a57f1b5_8a7501fb","line":59,"range":{"start_line":59,"start_character":56,"end_line":59,"end_character":74},"updated":"2016-02-12 13:42:01.000000000","message":"before validating","commit_id":"64731c58f547dc24e9b9170b5672dfb9805c5e2a"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"b254c7f0ada5d120f46bb07641c7df5bbfd2f650","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"As a Cloud Admin, I would like to be notified about the number of objects to"},{"line_number":59,"context_line":"be deleted (this number should be computed by Watcher), before to validate"},{"line_number":60,"context_line":"or not this purging operation."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"As a Cloud Admin, I would like to get, as result, a detailed summary of the"},{"line_number":63,"context_line":"purge operation."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a57f1b5_aa49ddb8","line":60,"range":{"start_line":60,"start_character":12,"end_line":60,"end_character":19},"updated":"2016-02-12 13:42:01.000000000","message":"purge","commit_id":"64731c58f547dc24e9b9170b5672dfb9805c5e2a"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"b254c7f0ada5d120f46bb07641c7df5bbfd2f650","unresolved":false,"context_lines":[{"line_number":60,"context_line":"or not this purging operation."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"As a Cloud Admin, I would like to get, as result, a detailed summary of the"},{"line_number":63,"context_line":"purge operation."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"As a Developer, when an Audit template object is removed, all linked Audit"},{"line_number":66,"context_line":"objects shall be removed."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a57f1b5_8a7f41aa","line":63,"range":{"start_line":63,"start_character":15,"end_line":63,"end_character":16},"updated":"2016-02-12 13:42:01.000000000","message":"(i.e. the total number of deleted objects, the number of deleted Audit Templates, the number of deleted Audits, the number of deleted Action plans, the number of deleted Actions)","commit_id":"64731c58f547dc24e9b9170b5672dfb9805c5e2a"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"879372d2db7c76b3afd92e64a64a4f4ff31f7d3e","unresolved":false,"context_lines":[{"line_number":16,"context_line":"is special column in each table indicating whether or not an entry is"},{"line_number":17,"context_line":"deleted). We keep these data for potential future ML processing in order to"},{"line_number":18,"context_line":"improve Watcher auditing recommendations. However, we shall provide a purge"},{"line_number":19,"context_line":"mechanism to Cloud Admin in order to limit the size of this database_ and make"},{"line_number":20,"context_line":"sure it does not increase too much."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_9cf6d8d5","line":19,"range":{"start_line":19,"start_character":13,"end_line":19,"end_character":24},"updated":"2016-02-15 14:46:02.000000000","message":"use Administrator instead of Cloud Admin with a reference to http://factory.b-com.com/www/watcher/doc/watcher/glossary.html#administrator","commit_id":"d3d4e758dd4d59161230259aaedee47a3dbde994"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"879372d2db7c76b3afd92e64a64a4f4ff31f7d3e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"deleted objects. So the only way to destroy objects into the Watcher database"},{"line_number":28,"context_line":"is to connect directly onto the database backend server and to execute DB"},{"line_number":29,"context_line":"commands (or script) to remove objects in tables. Moreover, some objects can"},{"line_number":30,"context_line":"be linked (e.g. a set of Action objects are linked to a same Action Plan"},{"line_number":31,"context_line":"object, the latter being linked to a unique Audit object). Remove manually"},{"line_number":32,"context_line":"such objects can create orphan (e.g. an Action oject with no more linked"},{"line_number":33,"context_line":"Action Plan object) in the database. Finally, you could introduce"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_bc20fc4a","line":30,"range":{"start_line":30,"start_character":25,"end_line":30,"end_character":31},"updated":"2016-02-15 14:46:02.000000000","message":"missing ref http://factory.b-com.com/www/watcher/doc/watcher/glossary.html#action","commit_id":"d3d4e758dd4d59161230259aaedee47a3dbde994"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"879372d2db7c76b3afd92e64a64a4f4ff31f7d3e","unresolved":false,"context_lines":[{"line_number":27,"context_line":"deleted objects. So the only way to destroy objects into the Watcher database"},{"line_number":28,"context_line":"is to connect directly onto the database backend server and to execute DB"},{"line_number":29,"context_line":"commands (or script) to remove objects in tables. Moreover, some objects can"},{"line_number":30,"context_line":"be linked (e.g. a set of Action objects are linked to a same Action Plan"},{"line_number":31,"context_line":"object, the latter being linked to a unique Audit object). Remove manually"},{"line_number":32,"context_line":"such objects can create orphan (e.g. an Action oject with no more linked"},{"line_number":33,"context_line":"Action Plan object) in the database. Finally, you could introduce"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_3cd34c3a","line":30,"range":{"start_line":30,"start_character":61,"end_line":30,"end_character":72},"updated":"2016-02-15 14:46:02.000000000","message":"missing ref http://factory.b-com.com/www/watcher/doc/watcher/glossary.html#action-plan","commit_id":"d3d4e758dd4d59161230259aaedee47a3dbde994"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"879372d2db7c76b3afd92e64a64a4f4ff31f7d3e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"is to connect directly onto the database backend server and to execute DB"},{"line_number":29,"context_line":"commands (or script) to remove objects in tables. Moreover, some objects can"},{"line_number":30,"context_line":"be linked (e.g. a set of Action objects are linked to a same Action Plan"},{"line_number":31,"context_line":"object, the latter being linked to a unique Audit object). Remove manually"},{"line_number":32,"context_line":"such objects can create orphan (e.g. an Action oject with no more linked"},{"line_number":33,"context_line":"Action Plan object) in the database. Finally, you could introduce"},{"line_number":34,"context_line":"inconsistencies into the database by removing a subset of objects having"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_fcf1e4ce","line":31,"range":{"start_line":31,"start_character":44,"end_line":31,"end_character":49},"updated":"2016-02-15 14:46:02.000000000","message":"missing ref http://factory.b-com.com/www/watcher/doc/watcher/glossary.html#audit","commit_id":"d3d4e758dd4d59161230259aaedee47a3dbde994"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"879372d2db7c76b3afd92e64a64a4f4ff31f7d3e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Use Cases"},{"line_number":45,"context_line":"----------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"As a Cloud Admin, I want to manage the size of the Watcher database by purging"},{"line_number":48,"context_line":"all soft-deleted objects."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"As a Cloud Admin, I should be able to purge a subset of the Watcher objects"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_1ca648c1","line":47,"range":{"start_line":47,"start_character":5,"end_line":47,"end_character":15},"updated":"2016-02-15 14:46:02.000000000","message":"use Administrator instead of Cloud Admin","commit_id":"d3d4e758dd4d59161230259aaedee47a3dbde994"},{"author":{"_account_id":11750,"name":"Antoine Cabot","email":"antoine.cabot@b-com.com","username":"antoinecabot"},"change_message_id":"879372d2db7c76b3afd92e64a64a4f4ff31f7d3e","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Security impact"},{"line_number":103,"context_line":"---------------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"The watcher-db-manage command is only available to admins. Obviously any entry"},{"line_number":106,"context_line":"point to deleting data permanently is dangerous but this spec assumes the"},{"line_number":107,"context_line":"deployer has taken the necessary security precautions to lock down access to"},{"line_number":108,"context_line":"the watcher-db-manage command already."}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae33548_5cec50c7","line":105,"range":{"start_line":105,"start_character":51,"end_line":105,"end_character":57},"updated":"2016-02-15 14:46:02.000000000","message":"use Administrators instead","commit_id":"d3d4e758dd4d59161230259aaedee47a3dbde994"}]}
