)]}'
{"README.rst":[{"author":{"_account_id":2467,"name":"Jin Nan Zhang","email":"zhang.jinnan@99cloud.net","username":"zhangjinnan87"},"change_message_id":"28d838e0e55f384a60949855d125f215d0388511","unresolved":false,"context_lines":[{"line_number":5,"context_line":"Warning"},{"line_number":6,"context_line":"-------"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Freezer has four different components; Freezer Web UI, Freezer Scheduler, Freezer Agent and Freezer API."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"If you need to use Freezer Backup Restore DR as a Service platform, you need to install Freezer Scheduler, Freezer Agent on client and Freezer Web UI, Freezer API on OpenStack controller server. (The server where your Horizon and Keystone installed)"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa0719c6_a4fc8b3f","line":8,"range":{"start_line":8,"start_character":54,"end_line":8,"end_character":104},"updated":"2016-03-21 02:44:38.000000000","message":"one-line less than 80 characters.ref:http://docs.openstack.org/developer/hacking/","commit_id":"ae91815adb865333cceaa8811e1a81c16388a365"},{"author":{"_account_id":2467,"name":"Jin Nan Zhang","email":"zhang.jinnan@99cloud.net","username":"zhangjinnan87"},"change_message_id":"28d838e0e55f384a60949855d125f215d0388511","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Freezer has four different components; Freezer Web UI, Freezer Scheduler, Freezer Agent and Freezer API."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"If you need to use Freezer Backup Restore DR as a Service platform, you need to install Freezer Scheduler, Freezer Agent on client and Freezer Web UI, Freezer API on OpenStack controller server. (The server where your Horizon and Keystone installed)"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This is source code of Freezer Scheduler and Freezer Agent."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa0719c6_2444fb72","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":249},"updated":"2016-03-21 02:44:38.000000000","message":"ditto","commit_id":"ae91815adb865333cceaa8811e1a81c16388a365"},{"author":{"_account_id":2467,"name":"Jin Nan Zhang","email":"zhang.jinnan@99cloud.net","username":"zhangjinnan87"},"change_message_id":"28d838e0e55f384a60949855d125f215d0388511","unresolved":false,"context_lines":[{"line_number":49,"context_line":"Freezer Components"},{"line_number":50,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------+"},{"line_number":53,"context_line":"| Component         | Description                                                                                                                                    |"},{"line_number":54,"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\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\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\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":55,"context_line":"| Freezer Web UI    | Web interface that interacts with the Freezer API to configure and change settings.                                                            |"},{"line_number":56,"context_line":"|                   | It provides most of the features from the freezerc CLI, advanced scheduler settings such as multi-node backup synchronization,                 |"},{"line_number":57,"context_line":"|                   | metrics, and reporting.                                                                                                                        |"},{"line_number":58,"context_line":"+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------+"},{"line_number":59,"context_line":"| Freezer Scheduler | A client side component, running on the node where the data backup is to be executed.                                                          |"},{"line_number":60,"context_line":"|                   | It consists of a daemon that retrieves the data from the freezer API and executes jobs (i.e. backups, restore, admin actions, info actions,    |"},{"line_number":61,"context_line":"|                   | pre and/or post job scripts) by running the Freezer Agent.                                                                                     |"},{"line_number":62,"context_line":"|                   | The metrics and exit codes returned by the freezer agent are captured and sent to the Freezer API.                                             |"},{"line_number":63,"context_line":"|                   | The scheduler manages the execution and synchronization of multiple jobs executed on a single or multiple nodes.                               |"},{"line_number":64,"context_line":"|                   | The status of the execution of all the nodes is saved through the API.                                                                         |"},{"line_number":65,"context_line":"|                   | The Freezer scheduler takes care of uploading jobs to the API by reading job files on the file system.                                         |"},{"line_number":66,"context_line":"|                   | It also has its own configuration file where job session or other settings like the freezer API polling interval can be configured.            |"},{"line_number":67,"context_line":"|                   | The Freezer scheduler manages jobs, for more information about jobs please refer to: freezer_api/README.rst under JOB the sections             |"},{"line_number":68,"context_line":"+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------+"},{"line_number":69,"context_line":"| Freezer Agent     | Multiprocessing Python software that runs on the client side, where the data backup is to be executed.                                         |"},{"line_number":70,"context_line":"|                   | It can be executed standalone or by the Freezer Scheduler.                                                                                     |"},{"line_number":71,"context_line":"|                   | The freezerc provides a flexible way to execute backup, restore and other actions on a running system.                                         |"},{"line_number":72,"context_line":"|                   | In order to provide flexibility in terms of data integrity, speed, performance, resources usage, etc the freezer agent offers a                |"},{"line_number":73,"context_line":"|                   | wide range of options to execute optimized backup according the available resources as:                                                        |"},{"line_number":74,"context_line":"|                   |                                                                                                                                                |"},{"line_number":75,"context_line":"|                   |   - Segments size (the amount of memory used)                                                                                                  |"},{"line_number":76,"context_line":"|                   |   - Queues size (optimize backups where I/O, bandwidth, memory or CPU is a constraint)                                                         |"},{"line_number":77,"context_line":"|                   |   - I/O Affinity and process priority (it can be used with real time I/O and maximum user level process priority)                              |"},{"line_number":78,"context_line":"|                   |   - Bandwidth limitation                                                                                                                       |"},{"line_number":79,"context_line":"|                   |   - Client side Encryption (AES-256-CFB)                                                                                                       |"},{"line_number":80,"context_line":"|                   |   - Compression (multiple algorithms supported as zlib, bzip2, xz/lzma)                                                                        |"},{"line_number":81,"context_line":"|                   |   - Parallel upload to pluggable storage media (i.e., upload backup to swift and to a remote node by ssh,                                      |"},{"line_number":82,"context_line":"|                   |     or upload to two or more independent swift instances with different credentials, etc)                                                      |"},{"line_number":83,"context_line":"|                   |   - Execute file based incremental (like tar), block based incremental (like rsync algorithm) and differential based backup and restore        |"},{"line_number":84,"context_line":"|                   |   - Multiplatform as it can be run on Linux, Windows, \\*BSD and OSX                                                                            |"},{"line_number":85,"context_line":"|                   |   - Automatic removal of old backups                                                                                                           |"},{"line_number":86,"context_line":"+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------+"},{"line_number":87,"context_line":"| Freezer API       | The API is used to store and provide metadata to the Freezer Web UI and to the Freezer Scheduler.                                              |"},{"line_number":88,"context_line":"|                   | Also the API is used to store session information for multi node backup synchronization. No workload data is stored in the API.                |"},{"line_number":89,"context_line":"|                   | For more information to the API please refer to: freezer_api/README.rst                                                                        |"},{"line_number":90,"context_line":"+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------+"},{"line_number":91,"context_line":"| DB Elasticsearch  | Backend used by the API to store and retrieve metrics, metadata sessions information, job status, etc.                                         |"},{"line_number":92,"context_line":"+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------+"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Linux Requirements"},{"line_number":95,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa0719c6_0449f78b","line":92,"range":{"start_line":52,"start_character":0,"end_line":92,"end_character":166},"updated":"2016-03-21 02:44:38.000000000","message":"ditto","commit_id":"ae91815adb865333cceaa8811e1a81c16388a365"},{"author":{"_account_id":2467,"name":"Jin Nan Zhang","email":"zhang.jinnan@99cloud.net","username":"zhangjinnan87"},"change_message_id":"28d838e0e55f384a60949855d125f215d0388511","unresolved":false,"context_lines":[{"line_number":153,"context_line":"Before Installation"},{"line_number":154,"context_line":"-------------------"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"1-) Chose correct branch for corresponding OpenStack version. If your OpenStack installation is Kilo, chose Stable/Kilo release. etc..."},{"line_number":157,"context_line":"2-) This installation instruction only for Freezer Agent and Freezer Scheduler on client side. If you need to install other components, visit their Github page."},{"line_number":158,"context_line":"3-) Make sure you have installed same version of all four components. Do not miss match different version. For example; do not use Freezer Agent Stable/Kilo release with Freeze API Stable/Liberty release."},{"line_number":159,"context_line":"4-) Following installation instructions only for Freezer Scheduler and Freezer Agent."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa0719c6_a4580b58","line":158,"range":{"start_line":156,"start_character":0,"end_line":158,"end_character":19},"updated":"2016-03-21 02:44:38.000000000","message":"ditto","commit_id":"ae91815adb865333cceaa8811e1a81c16388a365"},{"author":{"_account_id":14084,"name":"Einst Crazy","email":"yu.changcai@99cloud.net","username":"Einst"},"change_message_id":"1608202138cd9eb34d70bb317de8faa62fabc3cd","unresolved":false,"context_lines":[{"line_number":57,"context_line":"+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------+"},{"line_number":58,"context_line":"| Component         | Description                                                                                                                                    |"},{"line_number":59,"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\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\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\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":60,"context_line":"| Freezer Web UI    | Web interface that interacts with the Freezer API to configure and change settings.                                                            |"},{"line_number":61,"context_line":"|                   | It provides most of the features from the freezerc CLI, advanced scheduler settings such as multi-node backup synchronization,                 |"},{"line_number":62,"context_line":"|                   | metrics, and reporting.                                                                                                                        |"},{"line_number":63,"context_line":"+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------+"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa0719c6_0af18095","line":60,"updated":"2016-03-23 09:57:06.000000000","message":"I think these lines is too long","commit_id":"c1f00a64070ccb743e863b774e301baba4bed17b"},{"author":{"_account_id":14101,"name":"yapeng Yang","email":"a394954369@gmail.com","username":"yapeng"},"change_message_id":"cd1a7694d35266a8892366ee8704f2827850087c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Freezer"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Warning"},{"line_number":6,"context_line":"-------"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"Freezer has four different components; Freezer Web UI, Freezer Scheduler,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa0719c6_f2f7a5d0","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":7},"updated":"2016-03-24 09:17:14.000000000","message":"Warning or NOTE?","commit_id":"a2e2ac400db9d4a68e572075cf46c11860eeb700"},{"author":{"_account_id":14101,"name":"yapeng Yang","email":"a394954369@gmail.com","username":"yapeng"},"change_message_id":"cd1a7694d35266a8892366ee8704f2827850087c","unresolved":false,"context_lines":[{"line_number":91,"context_line":"+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------+"},{"line_number":92,"context_line":"| Freezer API       | The API is used to store and provide metadata to the Freezer Web UI and to the Freezer Scheduler.                                              |"},{"line_number":93,"context_line":"|                   | Also the API is used to store session information for multi node backup synchronization. No workload data is stored in the API.                |"},{"line_number":94,"context_line":"|                   | For more information to the API please refer to: freezer_api/README.rst                                                                        |"},{"line_number":95,"context_line":"+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------+"},{"line_number":96,"context_line":"| DB Elasticsearch  | Backend used by the API to store and retrieve metrics, metadata sessions information, job status, etc.                                         |"},{"line_number":97,"context_line":"+-------------------+------------------------------------------------------------------------------------------------------------------------------------------------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa0719c6_ad2e6ef8","line":94,"range":{"start_line":94,"start_character":66,"end_line":94,"end_character":67},"updated":"2016-03-24 09:17:14.000000000","message":":ref: \u0027https://github.com/openstack/freezer-api/blob/master/README.rst\u0027  or  ``freezer_api/README.rst``","commit_id":"a2e2ac400db9d4a68e572075cf46c11860eeb700"}]}
