)]}'
{"freezer/common/config.py":[{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"08f53e45b4fb5dae22db905f945ccd246e96f56f","unresolved":false,"context_lines":[{"line_number":490,"context_line":"    cfg.IntOpt(\u0027fullbackup-rotation\u0027,"},{"line_number":491,"context_line":"               dest\u003d\u0027fullbackup_rotation\u0027,"},{"line_number":492,"context_line":"               min\u003d1,"},{"line_number":493,"context_line":"               help\u003d\"keep the last N fullbackups of cinder-volume, \""},{"line_number":494,"context_line":"                    \"the parameter should be greater than 0. \""},{"line_number":495,"context_line":"                    \"if set action to admin and set the paramater, \""},{"line_number":496,"context_line":"                    \"it should keep the last  N fullbackups, \""}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_12332364","line":493,"range":{"start_line":493,"start_character":21,"end_line":493,"end_character":22},"updated":"2017-04-20 11:39:21.000000000","message":"It\u0027s better to use uppercase of the first letter. Same as below.","commit_id":"8577cedd419c4761add5913f84f1c99718d19856"},{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"08f53e45b4fb5dae22db905f945ccd246e96f56f","unresolved":false,"context_lines":[{"line_number":487,"context_line":"                    \"this time it will raise a TimeOut Exception. Default is\""},{"line_number":488,"context_line":"                    \" {0}\".format(DEFAULT_PARAMS[\u0027timeout\u0027])"},{"line_number":489,"context_line":"               ),"},{"line_number":490,"context_line":"    cfg.IntOpt(\u0027fullbackup-rotation\u0027,"},{"line_number":491,"context_line":"               dest\u003d\u0027fullbackup_rotation\u0027,"},{"line_number":492,"context_line":"               min\u003d1,"},{"line_number":493,"context_line":"               help\u003d\"keep the last N fullbackups of cinder-volume, \""},{"line_number":494,"context_line":"                    \"the parameter should be greater than 0. \""},{"line_number":495,"context_line":"                    \"if set action to admin and set the paramater, \""},{"line_number":496,"context_line":"                    \"it should keep the last  N fullbackups, \""},{"line_number":497,"context_line":"                    \"other backups should be delete\"),"},{"line_number":498,"context_line":"]"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_d5a9227c","line":497,"range":{"start_line":490,"start_character":4,"end_line":497,"end_character":54},"updated":"2017-04-20 11:39:21.000000000","message":"default value should be added, otherwise if you do not specify the --fullbackup-rotation option, error of \"Critical Error: \u0027FreezerConfig\u0027 object has no attribute \u0027fullbackup_rotation\u0027\" will occurr","commit_id":"8577cedd419c4761add5913f84f1c99718d19856"},{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"6cca58032c3d2633b3c4b4d4baaac370e2d0d207","unresolved":false,"context_lines":[{"line_number":489,"context_line":"               ),"},{"line_number":490,"context_line":"    cfg.IntOpt(\u0027fullbackup-rotation\u0027,"},{"line_number":491,"context_line":"               dest\u003d\u0027fullbackup_rotation\u0027,"},{"line_number":492,"context_line":"               min\u003d1,"},{"line_number":493,"context_line":"               help\u003d\"Keep the last N fullbackups of cinder-volume, \""},{"line_number":494,"context_line":"                    \"the parameter should be greater than 0. \""},{"line_number":495,"context_line":"                    \"If set action to admin and set the paramater, \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_f5c9caab","line":492,"updated":"2017-04-27 12:28:14.000000000","message":"\u003c\u003cdefault value should be added, otherwise if you do not specify the --fullbackup-rotation option, error of \"Critical Error: \u0027FreezerConfig\u0027 object has no attribute \u0027fullbackup_rotation\u0027\" will occurr\u003e\u003e\n\nI think it would be better to do something to avoid error like \u0027object has no attribute\u0027 in the above case.","commit_id":"c9688fb7a51451f8e495993cbb7695b8d4e1c75c"},{"author":{"_account_id":22405,"name":"Vitaliy Nogin","email":"shadoff1982@gmail.com","username":"vnogin"},"change_message_id":"a12b32535bb4acab57daf495fb14c6b687ffa465","unresolved":false,"context_lines":[{"line_number":492,"context_line":"               min\u003d1,"},{"line_number":493,"context_line":"               help\u003d\"Keep the last N fullbackups of cinder-volume, \""},{"line_number":494,"context_line":"                    \"the parameter should be greater than 0. \""},{"line_number":495,"context_line":"                    \"If set action to admin and set the paramater, \""},{"line_number":496,"context_line":"                    \"it should keep the last  N fullbackups, \""},{"line_number":497,"context_line":"                    \"other backups should be delete\"),"},{"line_number":498,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_f2651bb6","line":495,"range":{"start_line":495,"start_character":56,"end_line":495,"end_character":65},"updated":"2017-04-29 22:25:42.000000000","message":"s/paramater/parameter","commit_id":"c9688fb7a51451f8e495993cbb7695b8d4e1c75c"},{"author":{"_account_id":22405,"name":"Vitaliy Nogin","email":"shadoff1982@gmail.com","username":"vnogin"},"change_message_id":"a12b32535bb4acab57daf495fb14c6b687ffa465","unresolved":false,"context_lines":[{"line_number":493,"context_line":"               help\u003d\"Keep the last N fullbackups of cinder-volume, \""},{"line_number":494,"context_line":"                    \"the parameter should be greater than 0. \""},{"line_number":495,"context_line":"                    \"If set action to admin and set the paramater, \""},{"line_number":496,"context_line":"                    \"it should keep the last  N fullbackups, \""},{"line_number":497,"context_line":"                    \"other backups should be delete\"),"},{"line_number":498,"context_line":"]"},{"line_number":499,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_b25b13f4","line":496,"range":{"start_line":496,"start_character":44,"end_line":496,"end_character":46},"updated":"2017-04-29 22:25:42.000000000","message":"remove one space here","commit_id":"c9688fb7a51451f8e495993cbb7695b8d4e1c75c"},{"author":{"_account_id":22405,"name":"Vitaliy Nogin","email":"shadoff1982@gmail.com","username":"vnogin"},"change_message_id":"a12b32535bb4acab57daf495fb14c6b687ffa465","unresolved":false,"context_lines":[{"line_number":494,"context_line":"                    \"the parameter should be greater than 0. \""},{"line_number":495,"context_line":"                    \"If set action to admin and set the paramater, \""},{"line_number":496,"context_line":"                    \"it should keep the last  N fullbackups, \""},{"line_number":497,"context_line":"                    \"other backups should be delete\"),"},{"line_number":498,"context_line":"]"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_9276d76f","line":497,"range":{"start_line":497,"start_character":45,"end_line":497,"end_character":51},"updated":"2017-04-29 22:25:42.000000000","message":"s/delete/deleted","commit_id":"c9688fb7a51451f8e495993cbb7695b8d4e1c75c"}],"freezer/job.py":[{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"08f53e45b4fb5dae22db905f945ccd246e96f56f","unresolved":false,"context_lines":[{"line_number":417,"context_line":"        # to remove"},{"line_number":418,"context_line":"        backup_media \u003d self.conf.backup_media"},{"line_number":419,"context_line":"        if backup_media \u003d\u003d \u0027cindernative\u0027:"},{"line_number":420,"context_line":"            if not self.conf.fullbackup_rotation:"},{"line_number":421,"context_line":"                raise Exception(\"The parameter --fullbackup-rotation \""},{"line_number":422,"context_line":"                                \"is required\")"},{"line_number":423,"context_line":"            else:"},{"line_number":424,"context_line":"                admin_os \u003d admin.AdminOs(self.conf.client_manager)"},{"line_number":425,"context_line":"                admin_os.del_off_limit_fullbackup("}],"source_content_type":"text/x-python","patch_set":1,"id":"7ffa3b31_b26b4f1c","line":422,"range":{"start_line":420,"start_character":12,"end_line":422,"end_character":46},"updated":"2017-04-20 11:39:21.000000000","message":"it\u0027s better to move it to _validate()","commit_id":"8577cedd419c4761add5913f84f1c99718d19856"},{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"6a8db7aaa73cb8d81a4012630fc281a6eebcaefb","unresolved":false,"context_lines":[{"line_number":406,"context_line":""},{"line_number":407,"context_line":"    def _validate(self):"},{"line_number":408,"context_line":"        # no validation required in this job"},{"line_number":409,"context_line":"        if not self.conf.remove_from_date and not self.conf.remove_older_than:"},{"line_number":410,"context_line":"            raise ValueError(\"You need to provide to remove backup older \""},{"line_number":411,"context_line":"                             \"than this time. You can use --remove-older-than \""},{"line_number":412,"context_line":"                             \"or --remove-from-date\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f044301_9aaa2883","line":409,"range":{"start_line":409,"start_character":15,"end_line":409,"end_character":78},"updated":"2017-05-04 15:43:12.000000000","message":"With command \u0027freezer-agent --action admin --cindernative-vol-id 111 --fullbackup-rotation 3\u0027, --remove-from-date or --remove-older-than is not really needed, so we should remove the judgement in cindernative situation.","commit_id":"28917c6201112f04171d547e3d5ad854fa647b34"},{"author":{"_account_id":14101,"name":"yapeng Yang","email":"a394954369@gmail.com","username":"yapeng"},"change_message_id":"de6dbb571fd404bb62ede545d6a223f3e2862f3c","unresolved":false,"context_lines":[{"line_number":406,"context_line":""},{"line_number":407,"context_line":"    def _validate(self):"},{"line_number":408,"context_line":"        # no validation required in this job"},{"line_number":409,"context_line":"        if not self.conf.remove_from_date and not self.conf.remove_older_than:"},{"line_number":410,"context_line":"            raise ValueError(\"You need to provide to remove backup older \""},{"line_number":411,"context_line":"                             \"than this time. You can use --remove-older-than \""},{"line_number":412,"context_line":"                             \"or --remove-from-date\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f044301_12614e37","line":409,"range":{"start_line":409,"start_character":15,"end_line":409,"end_character":78},"in_reply_to":"3f044301_9aaa2883","updated":"2017-05-09 09:51:30.000000000","message":"if you manage other data_backup expect cindernative, i think this judgenment is necessary.\nusage:\n freezer-agent --action admin --mode fs ..","commit_id":"28917c6201112f04171d547e3d5ad854fa647b34"},{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"6a8db7aaa73cb8d81a4012630fc281a6eebcaefb","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        # TODO(yangyapeng): add cinder_vol_id and nova_inst_id"},{"line_number":421,"context_line":"        # to remove"},{"line_number":422,"context_line":"        backup_media \u003d self.conf.backup_media"},{"line_number":423,"context_line":"        if backup_media \u003d\u003d \u0027cindernative\u0027:"},{"line_number":424,"context_line":"            admin_os \u003d admin.AdminOs(self.conf.client_manager)"},{"line_number":425,"context_line":"            admin_os.del_off_limit_fullbackup("},{"line_number":426,"context_line":"                self.conf.cindernative_vol_id,"},{"line_number":427,"context_line":"                self.conf.fullbackup_rotation)"},{"line_number":428,"context_line":"        if self.conf.remove_from_date:"},{"line_number":429,"context_line":"            timestamp \u003d utils.date_to_timestamp(self.conf.remove_from_date)"},{"line_number":430,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f044301_9a27c865","line":427,"range":{"start_line":423,"start_character":8,"end_line":427,"end_character":46},"updated":"2017-05-04 15:43:12.000000000","message":"After this, I think the cindernative backups\u0027 remove process should be finished.\nSo should return here.","commit_id":"28917c6201112f04171d547e3d5ad854fa647b34"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"d61c66b60307dd405c371c04eaba932f8cab6b85","unresolved":false,"context_lines":[{"line_number":413,"context_line":"            if not self.conf.fullbackup_rotation:"},{"line_number":414,"context_line":"                raise Exception(\"The parameter --fullbackup-rotation \""},{"line_number":415,"context_line":"                                \"is required\")"},{"line_number":416,"context_line":"        elif not self.conf.remove_from_date and not self.conf.remove_older_than:"},{"line_number":417,"context_line":"            raise ValueError(\"You need to provide to remove backup older \""},{"line_number":418,"context_line":"                             \"than this time. You can use --remove-older-than \""},{"line_number":419,"context_line":"                             \"or --remove-from-date\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"df3967d1_3793a95d","line":416,"range":{"start_line":416,"start_character":75,"end_line":416,"end_character":80},"updated":"2017-08-04 06:38:04.000000000","message":"PEP8","commit_id":"903db711c9275afa231cd0e12db42b1e102d9d8e"}],"freezer/openstack/admin.py":[{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"6a8db7aaa73cb8d81a4012630fc281a6eebcaefb","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        :param backup_id: backup_id  of cinder volume"},{"line_number":40,"context_line":"        :return:"},{"line_number":41,"context_line":"        \"\"\""},{"line_number":42,"context_line":"        cinder_client \u003d self.client_manager.get_cinder()"},{"line_number":43,"context_line":"        search_opts \u003d {"},{"line_number":44,"context_line":"            \u0027parent_id\u0027: backup_id"},{"line_number":45,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f044301_ffa7de4e","line":42,"range":{"start_line":42,"start_character":8,"end_line":42,"end_character":56},"updated":"2017-05-04 15:43:12.000000000","message":"is it better to move this to __init__ ?","commit_id":"28917c6201112f04171d547e3d5ad854fa647b34"},{"author":{"_account_id":21224,"name":"jiaopengju","email":"jiaopengju_yewu@cmss.chinamobile.com","username":"jiaopengju"},"change_message_id":"6a8db7aaa73cb8d81a4012630fc281a6eebcaefb","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        :param keep_number: int  keep number of fullbackup"},{"line_number":77,"context_line":"        :return:"},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        cinder_client \u003d self.client_manager.get_cinder()"},{"line_number":80,"context_line":"        search_opts \u003d {"},{"line_number":81,"context_line":"            \u0027volume_id\u0027: volume_id,"},{"line_number":82,"context_line":"            \u0027status\u0027: \u0027available\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f044301_9fb7ba87","line":79,"range":{"start_line":79,"start_character":8,"end_line":79,"end_character":56},"updated":"2017-05-04 15:43:12.000000000","message":"same.","commit_id":"28917c6201112f04171d547e3d5ad854fa647b34"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"c58eaecc74c2b24dec0032b26ad91398e73ba8ed","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        fullbackups \u003d [backup for backup in backups"},{"line_number":90,"context_line":"                       if not backup.is_incremental]"},{"line_number":91,"context_line":"        if len(fullbackups) \u003c\u003d keep_number:"},{"line_number":92,"context_line":"            LOG.info(\"the numbers of %s fullbackup is %d,\""},{"line_number":93,"context_line":"                     \"but keep-number-of-fullbackup is %d,\""},{"line_number":94,"context_line":"                     \"don\u0027t need delete old backups.\""},{"line_number":95,"context_line":"                     % (volume_id, len(fullbackups), keep_number))"}],"source_content_type":"text/x-python","patch_set":7,"id":"df3967d1_1719c520","line":92,"range":{"start_line":92,"start_character":22,"end_line":92,"end_character":23},"updated":"2017-08-04 06:36:22.000000000","message":"nit, T","commit_id":"903db711c9275afa231cd0e12db42b1e102d9d8e"}]}
