)]}'
{"freezer_api/db/sqlalchemy/models.py":[{"author":{"_account_id":14340,"name":"Memo Garcia","email":"guillermo.ramirez-garcia@hp.com","username":"memogarcia"},"change_message_id":"e0f1e49563244832086cd66cfe146383872f4d85","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    action \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":71,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":72,"context_line":"    mode \u003d Column(String(255))"},{"line_number":73,"context_line":"    src_file \u003d Column(String(255))"},{"line_number":74,"context_line":"    backup_name \u003d Column(String(255))"},{"line_number":75,"context_line":"    container \u003d Column(String(255))"},{"line_number":76,"context_line":"    restore_abs_path \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":15,"id":"bff0334d_b2ebc1ae","line":73,"range":{"start_line":73,"start_character":4,"end_line":73,"end_character":12},"updated":"2017-04-06 10:56:48.000000000","message":"First of all, thanks for setting up this patch.\n\nI have a couple questions:\n\nAre we actually storing the actions in a file? where is it going to get stored? inside the db as a blob? or plain text?\n\nMaybe we can store them in the db as a json string?\n\nThanks","commit_id":"a5bcdaf9b8a8d33bd0bf15f197d8d4fa9a8a8eb4"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"87bdfe29e98d473bc767e2ec43c3255f64e3081a","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    action \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":71,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":72,"context_line":"    mode \u003d Column(String(255))"},{"line_number":73,"context_line":"    src_file \u003d Column(String(255))"},{"line_number":74,"context_line":"    backup_name \u003d Column(String(255))"},{"line_number":75,"context_line":"    container \u003d Column(String(255))"},{"line_number":76,"context_line":"    restore_abs_path \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":15,"id":"bff0334d_c8aa1884","line":73,"range":{"start_line":73,"start_character":4,"end_line":73,"end_character":12},"in_reply_to":"bff0334d_2d73d617","updated":"2017-04-06 11:31:42.000000000","message":"Sure!\n\noslo_db itself support several backends like mysql and postgresql. Each of these 7 classes - Client, Action, Job, Session, ActionAttachment, ActionReport and JobAttachment mapped into appropriate database table. So there\u0027s one separate table for each of these 7 classes. \n\nThe way tables are stored on hard disk depends on exact version of database you chose. In case of mysql, if I\u0027m not mistaken each table represented on hard disk as 2 files with .frm and .ibd file format where .frm is mysql table definition file (contains information about table fields, keys, tags and so on) and .ibd contains data inside this table.\n\nThe format of ibd table are a bit specific and I can\u0027t say more about it. \n\nDid I understand your questions in a proper way? Feel free to ask for more if I missed the main point","commit_id":"a5bcdaf9b8a8d33bd0bf15f197d8d4fa9a8a8eb4"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"adb58a26e376bbef72be9b5d8280e873f05e96f5","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    action \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":71,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":72,"context_line":"    mode \u003d Column(String(255))"},{"line_number":73,"context_line":"    src_file \u003d Column(String(255))"},{"line_number":74,"context_line":"    backup_name \u003d Column(String(255))"},{"line_number":75,"context_line":"    container \u003d Column(String(255))"},{"line_number":76,"context_line":"    restore_abs_path \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":15,"id":"bff0334d_f1cf047d","line":73,"range":{"start_line":73,"start_character":4,"end_line":73,"end_character":12},"in_reply_to":"bff0334d_2e350d47","updated":"2017-04-06 12:21:46.000000000","message":"For us it would be like a plain text. There will be no references. So, to reach out this file we need to use some text representation of src_file path and some python mechanism for working with file (\"open\" function or something else)","commit_id":"a5bcdaf9b8a8d33bd0bf15f197d8d4fa9a8a8eb4"},{"author":{"_account_id":14340,"name":"Memo Garcia","email":"guillermo.ramirez-garcia@hp.com","username":"memogarcia"},"change_message_id":"71956ff737bfcf85c7f26b4bcf5fc41f571b178c","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    action \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":71,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":72,"context_line":"    mode \u003d Column(String(255))"},{"line_number":73,"context_line":"    src_file \u003d Column(String(255))"},{"line_number":74,"context_line":"    backup_name \u003d Column(String(255))"},{"line_number":75,"context_line":"    container \u003d Column(String(255))"},{"line_number":76,"context_line":"    restore_abs_path \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":15,"id":"bff0334d_2d73d617","line":73,"range":{"start_line":73,"start_character":4,"end_line":73,"end_character":12},"in_reply_to":"bff0334d_6d479e1f","updated":"2017-04-06 11:16:56.000000000","message":"Doesn\u0027t say much more than what\u0027s implemented here, I just wondering how this will get stored, as a file? a reference to a file? \n\nI know this is the first part of a series of patches, but I\u0027m curious about this specific topic, would you mind elaborate a bit more?","commit_id":"a5bcdaf9b8a8d33bd0bf15f197d8d4fa9a8a8eb4"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"ea2719f4cc91b6f815fbeb8162cc4f4811052870","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    action \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":71,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":72,"context_line":"    mode \u003d Column(String(255))"},{"line_number":73,"context_line":"    src_file \u003d Column(String(255))"},{"line_number":74,"context_line":"    backup_name \u003d Column(String(255))"},{"line_number":75,"context_line":"    container \u003d Column(String(255))"},{"line_number":76,"context_line":"    restore_abs_path \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":15,"id":"bff0334d_6d479e1f","line":73,"range":{"start_line":73,"start_character":4,"end_line":73,"end_character":12},"in_reply_to":"bff0334d_b2ebc1ae","updated":"2017-04-06 11:08:07.000000000","message":"There\u0027s a spec which defined answers for all these questions https://review.openstack.org/#/c/408014/7/specs/ocata/approved/relational_db_schema_with_oslo_db.rst\n\nWith oslo.db backend actions will be stored inside db in \"actions\" table","commit_id":"a5bcdaf9b8a8d33bd0bf15f197d8d4fa9a8a8eb4"},{"author":{"_account_id":14340,"name":"Memo Garcia","email":"guillermo.ramirez-garcia@hp.com","username":"memogarcia"},"change_message_id":"562af8b810e58cbb946a928c48627e4d492cc53c","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    action \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":71,"context_line":"    project_id \u003d Column(String(36), nullable\u003dFalse)"},{"line_number":72,"context_line":"    mode \u003d Column(String(255))"},{"line_number":73,"context_line":"    src_file \u003d Column(String(255))"},{"line_number":74,"context_line":"    backup_name \u003d Column(String(255))"},{"line_number":75,"context_line":"    container \u003d Column(String(255))"},{"line_number":76,"context_line":"    restore_abs_path \u003d Column(String(255))"}],"source_content_type":"text/x-python","patch_set":15,"id":"bff0334d_2e350d47","line":73,"range":{"start_line":73,"start_character":4,"end_line":73,"end_character":12},"in_reply_to":"bff0334d_c8aa1884","updated":"2017-04-06 12:02:25.000000000","message":"Yes I think I didn\u0027t ask my question correctly.\n\nRight now we have this mappings for actions in elasticsearch https://github.com/openstack/freezer-api/blob/master/freezer_api/common/db_mappings.py\n\nIn which there are defined the parameters for each action, like backup_name, max_level, container, etc. but we don\u0027t have a representation in this new model except for src_file, so I\u0027m just wondering how this src_file will be represented in the db. as a reference to an actual file containing all of the parameters or in plain text.\n\nI\u0027m not so sure if I\u0027m explaining myself with this question, but let me know :) \n\nThanks","commit_id":"a5bcdaf9b8a8d33bd0bf15f197d8d4fa9a8a8eb4"}],"releasenotes/notes/oslo-db-storage-backend-b4652f2cadc06c23.yaml":[{"author":{"_account_id":22405,"name":"Vitaliy Nogin","email":"shadoff1982@gmail.com","username":"vnogin"},"change_message_id":"bd5c090bc9e2bf4a07875f5d4915ac809d5b10e6","unresolved":false,"context_lines":[{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Currently Freezer uses Elastic Search (ES) as a database backend, which"},{"line_number":4,"context_line":"    is a NoSQL database specialized for ranked query results. Elastic Search"},{"line_number":5,"context_line":"    adds additional complexity to an OpenStack system. Most of the openstack"},{"line_number":6,"context_line":"    components use a relational database management system (DBMS like MySQL or"},{"line_number":7,"context_line":"    PostgreSQL) which is more common. It is more familiar how to"},{"line_number":8,"context_line":"    maintain, troubleshoot and develop on top of relational databases."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"dfeb2761_eba44aa8","line":5,"range":{"start_line":5,"start_character":67,"end_line":5,"end_character":76},"updated":"2017-04-04 23:42:59.000000000","message":"OpenStack","commit_id":"d1e2fb0595c33d0e6fccda785847c5d641d60b8b"},{"author":{"_account_id":6508,"name":"Dmitry Stepanenko","email":"dstepanenko@mirantis.com","username":"dstepanenko"},"change_message_id":"2a14430fb3943f9162baed6e802bfe66d95e3de8","unresolved":false,"context_lines":[{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Currently Freezer uses Elastic Search (ES) as a database backend, which"},{"line_number":4,"context_line":"    is a NoSQL database specialized for ranked query results. Elastic Search"},{"line_number":5,"context_line":"    adds additional complexity to an OpenStack system. Most of the openstack"},{"line_number":6,"context_line":"    components use a relational database management system (DBMS like MySQL or"},{"line_number":7,"context_line":"    PostgreSQL) which is more common. It is more familiar how to"},{"line_number":8,"context_line":"    maintain, troubleshoot and develop on top of relational databases."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"dfeb2761_2d85a1cf","line":5,"range":{"start_line":5,"start_character":67,"end_line":5,"end_character":76},"in_reply_to":"dfeb2761_eba44aa8","updated":"2017-04-05 06:10:12.000000000","message":"Done","commit_id":"d1e2fb0595c33d0e6fccda785847c5d641d60b8b"}]}
