)]}'
{"cinder/cmd/volume_usage_audit.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"17c8be5ec8a9aa14258f3baec7e3ae8b48a3b2af","unresolved":false,"context_lines":[{"line_number":263,"context_line":"                                                          extra_info)"},{"line_number":264,"context_line":"        except Exception as exc_msg:"},{"line_number":265,"context_line":"            LOG.exception(_LE(\"Exists backups notification failed: %s\"),"},{"line_number":266,"context_line":"                          exc_msg, resource\u003dbackup_ref)"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        if (CONF.send_actions and"},{"line_number":269,"context_line":"                backup_ref.created_at \u003e begin and"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_f55a8829","line":266,"range":{"start_line":266,"start_character":26,"end_line":266,"end_character":33},"updated":"2016-09-29 16:31:39.000000000","message":"Please don\u0027t include the exception in the text when doing LOG.exception. Either change to LOG.error or remove this from the message.","commit_id":"15d356a788772ca028711167dbe1c4033d8c5352"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"17c8be5ec8a9aa14258f3baec7e3ae8b48a3b2af","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                    \u0027create.end\u0027, extra_usage_info\u003dlocal_extra_info)"},{"line_number":290,"context_line":"            except Exception as exc_msg:"},{"line_number":291,"context_line":"                LOG.exception(_LE(\"Create backup notification failed: %s\"),"},{"line_number":292,"context_line":"                              exc_msg, resource\u003dbackup_ref)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        if (CONF.send_actions and backup_ref.deleted_at and"},{"line_number":295,"context_line":"                backup_ref.deleted_at \u003e begin and"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_755e7813","line":292,"range":{"start_line":292,"start_character":30,"end_line":292,"end_character":37},"updated":"2016-09-29 16:31:39.000000000","message":"Same.","commit_id":"15d356a788772ca028711167dbe1c4033d8c5352"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"17c8be5ec8a9aa14258f3baec7e3ae8b48a3b2af","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                    \u0027delete.end\u0027, extra_usage_info\u003dlocal_extra_info)"},{"line_number":316,"context_line":"            except Exception as exc_msg:"},{"line_number":317,"context_line":"                LOG.exception(_LE(\"Delete backup notification failed: %s\"),"},{"line_number":318,"context_line":"                              exc_msg, resource\u003dbackup_ref)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    LOG.debug(\"Volume usage audit completed\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_15b0d442","line":318,"range":{"start_line":318,"start_character":30,"end_line":318,"end_character":37},"updated":"2016-09-29 16:31:39.000000000","message":"Same.","commit_id":"15d356a788772ca028711167dbe1c4033d8c5352"}],"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"17c8be5ec8a9aa14258f3baec7e3ae8b48a3b2af","unresolved":false,"context_lines":[{"line_number":4698,"context_line":""},{"line_number":4699,"context_line":"@require_context"},{"line_number":4700,"context_line":"def backup_get_active_by_window(context, begin, end\u003dNone, project_id\u003dNone):"},{"line_number":4701,"context_line":"    \"\"\"Return backups that were active during window\"\"\""},{"line_number":4702,"context_line":""},{"line_number":4703,"context_line":"    query \u003d model_query(context, models.Backup, read_deleted\u003d\"yes\")"},{"line_number":4704,"context_line":"    query \u003d query.filter(or_(models.Backup.deleted_at is None,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_359230a0","line":4701,"range":{"start_line":4701,"start_character":51,"end_line":4701,"end_character":52},"updated":"2016-09-29 16:31:39.000000000","message":"Trivial nit: please add a period at the end since an update is needed.","commit_id":"15d356a788772ca028711167dbe1c4033d8c5352"}],"cinder/db/sqlalchemy/models.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"760553ec9fc08b79fb2b1f38b3bbc5a9f69a1361","unresolved":false,"context_lines":[{"line_number":743,"context_line":"    data_timestamp \u003d Column(DateTime)"},{"line_number":744,"context_line":"    restore_volume_id \u003d Column(String(36))"},{"line_number":745,"context_line":""},{"line_number":746,"context_line":"    volume \u003d relationship(Volume, backref\u003d\"backups\","},{"line_number":747,"context_line":"                          foreign_keys\u003dvolume_id,"},{"line_number":748,"context_line":"                          primaryjoin\u003d\u0027Backup.volume_id \u003d\u003d Volume.id\u0027)"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":"    @validates(\u0027fail_reason\u0027)"},{"line_number":751,"context_line":"    def validate_fail_reason(self, key, fail_reason):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_f61ccb6b","line":748,"range":{"start_line":746,"start_character":0,"end_line":748,"end_character":70},"updated":"2016-10-03 15:51:29.000000000","message":"Can you add this relationship also to Backup versionedobject (cinder.objects.backup)?","commit_id":"6a165ff192451141c02f9e21d08ec44ffffb29a2"}],"cinder/objects/backup.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"66877b10e8567d1086c88d2284b719fb40007852","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        \u0027project_id\u0027: fields.StringField(),"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        \u0027volume_id\u0027: fields.UUIDField(),"},{"line_number":53,"context_line":"        \u0027volume\u0027: fields.ObjectFiled(\u0027Volume\u0027, nullable\u003dTrue),"},{"line_number":54,"context_line":"        \u0027host\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":55,"context_line":"        \u0027availability_zone\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":56,"context_line":"        \u0027container\u0027: fields.StringField(nullable\u003dTrue),"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a98d1f4_1ff847c4","line":53,"range":{"start_line":53,"start_character":25,"end_line":53,"end_character":36},"updated":"2016-10-04 11:51:07.000000000","message":"s/ObjectFiled/ObjectField","commit_id":"f18b4c1ef3c29f997d5e98cc9a5509b9c830ff26"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ea5d4e59549205cf757c39c3a4cfb337328f7ef4","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        if expected_attrs is None:"},{"line_number":103,"context_line":"            expected_attrs \u003d []"},{"line_number":104,"context_line":"        for name, field in backup.fields.items():"},{"line_number":105,"context_line":"            if name in OPTIONAL_FIELDS:"},{"line_number":106,"context_line":"                continue"},{"line_number":107,"context_line":"            value \u003d db_backup.get(name)"},{"line_number":108,"context_line":"            if isinstance(field, fields.IntegerField):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a98d1f4_bf7cb3ec","line":105,"range":{"start_line":105,"start_character":23,"end_line":105,"end_character":38},"updated":"2016-10-04 11:57:25.000000000","message":"Backup.OPTIONAL_FIELDS","commit_id":"f18b4c1ef3c29f997d5e98cc9a5509b9c830ff26"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ea5d4e59549205cf757c39c3a4cfb337328f7ef4","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        self.obj_reset_changes(updated_values.keys())"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def obj_load_attr(self, attrname):"},{"line_number":154,"context_line":"        if attrname not in OPTIONAL_FIELDS:"},{"line_number":155,"context_line":"            raise exception.ObjectActionError("},{"line_number":156,"context_line":"                action\u003d\u0027obj_load_attr\u0027,"},{"line_number":157,"context_line":"                reason\u003d_(\u0027attribute %s not lazy-loadable\u0027) % attrname)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a98d1f4_9f5e1778","line":154,"range":{"start_line":154,"start_character":27,"end_line":154,"end_character":42},"updated":"2016-10-04 11:57:25.000000000","message":"self.OPTIONAL_FIELDS","commit_id":"f18b4c1ef3c29f997d5e98cc9a5509b9c830ff26"}],"cinder/tests/unit/fake_constants.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"d89645303e6511128c14ba801713f87c35858a91","unresolved":false,"context_lines":[{"line_number":78,"context_line":"GROUP2_ID \u003d \u002740a85639-abc3-4461-9230-b131abd8ee07\u0027"},{"line_number":79,"context_line":"GROUP_SNAPSHOT_ID \u003d \u00271e2ab152-44f0-11e6-819f-000c29d19d84\u0027"},{"line_number":80,"context_line":"GROUP_SNAPSHOT2_ID \u003d \u002733e2ff04-44f0-11e6-819f-000c29d19d84\u0027"},{"line_number":81,"context_line":"BACKUP_ID \u003d \u0027c45ad7a9-418a-41cf-bac9-1c544f1095c8\u0027"},{"line_number":82,"context_line":"BACKUP2_ID \u003d \u0027bf2899ac-5485-4e13-98b9-cab11785f543\u0027"},{"line_number":83,"context_line":"BACKUP3_ID \u003d \u002794d7db3d-acc0-49c6-b2ba-071b306129f3\u0027"},{"line_number":84,"context_line":"BACKUP4_ID \u003d \u002723f8605b-8273-4f49-9b3d-1eeca81a63c2\u0027"},{"line_number":85,"context_line":"BACKUP5_ID \u003d \u002750c97b22-51ea-440b-8d01-ded20a55d7e0\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a95cdbc_fcdf8e66","line":83,"range":{"start_line":81,"start_character":0,"end_line":83,"end_character":51},"updated":"2016-10-07 09:36:34.000000000","message":"You\u0027re redefining at least these three, see lines 20-22.","commit_id":"49a2934f2a03d820f24cdf78a2837b39218dedbf"}],"cinder/tests/unit/test_cmd.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"17c8be5ec8a9aa14258f3baec7e3ae8b48a3b2af","unresolved":false,"context_lines":[{"line_number":1964,"context_line":"        volume_usage_audit.main()"},{"line_number":1965,"context_line":""},{"line_number":1966,"context_line":"        get_admin_context.assert_called_once_with()"},{"line_number":1967,"context_line":"        self.assertEqual(CONF.project, \u0027cinder\u0027)"},{"line_number":1968,"context_line":"        self.assertEqual(CONF.version, version.version_string())"},{"line_number":1969,"context_line":"        log_setup.assert_called_once_with(CONF, \"cinder\")"},{"line_number":1970,"context_line":"        get_logger.assert_called_once_with(\u0027cinder\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_f5cd28b8","line":1967,"range":{"start_line":1967,"start_character":25,"end_line":1967,"end_character":47},"updated":"2016-09-29 16:31:39.000000000","message":"Change these to be in the order of (expected, actual).","commit_id":"15d356a788772ca028711167dbe1c4033d8c5352"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"17c8be5ec8a9aa14258f3baec7e3ae8b48a3b2af","unresolved":false,"context_lines":[{"line_number":1966,"context_line":"        get_admin_context.assert_called_once_with()"},{"line_number":1967,"context_line":"        self.assertEqual(CONF.project, \u0027cinder\u0027)"},{"line_number":1968,"context_line":"        self.assertEqual(CONF.version, version.version_string())"},{"line_number":1969,"context_line":"        log_setup.assert_called_once_with(CONF, \"cinder\")"},{"line_number":1970,"context_line":"        get_logger.assert_called_once_with(\u0027cinder\u0027)"},{"line_number":1971,"context_line":"        rpc_init.assert_called_once_with(CONF)"},{"line_number":1972,"context_line":"        last_completed_audit_period.assert_called_once_with()"},{"line_number":1973,"context_line":"        volume_get_active_by_window.assert_called_once_with(ctxt, begin, end)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_15fa94bd","line":1970,"range":{"start_line":1969,"start_character":8,"end_line":1970,"end_character":52},"updated":"2016-09-29 16:31:39.000000000","message":"I don\u0027t think these are important to include in the unit test.","commit_id":"15d356a788772ca028711167dbe1c4033d8c5352"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"760553ec9fc08b79fb2b1f38b3bbc5a9f69a1361","unresolved":false,"context_lines":[{"line_number":1914,"context_line":"    @mock.patch(\u0027cinder.utils.last_completed_audit_period\u0027)"},{"line_number":1915,"context_line":"    @mock.patch(\u0027cinder.rpc.init\u0027)"},{"line_number":1916,"context_line":"    @mock.patch(\u0027cinder.version.version_string\u0027)"},{"line_number":1917,"context_line":"    @mock.patch(\u0027oslo_log.log.getLogger\u0027)"},{"line_number":1918,"context_line":"    @mock.patch(\u0027oslo_log.log.setup\u0027)"},{"line_number":1919,"context_line":"    @mock.patch(\u0027cinder.context.get_admin_context\u0027)"},{"line_number":1920,"context_line":"    def test_main_send_backup_error(self, get_admin_context,"},{"line_number":1921,"context_line":"                                    log_setup, get_logger,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_701b6d81","line":1918,"range":{"start_line":1917,"start_character":0,"end_line":1918,"end_character":37},"updated":"2016-10-03 15:51:29.000000000","message":"Do we need these mocks?","commit_id":"6a165ff192451141c02f9e21d08ec44ffffb29a2"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"760553ec9fc08b79fb2b1f38b3bbc5a9f69a1361","unresolved":false,"context_lines":[{"line_number":1959,"context_line":"            # block"},{"line_number":1960,"context_line":"            raise Exception()"},{"line_number":1961,"context_line":""},{"line_number":1962,"context_line":"        notify_about_backup_usage.side_effect \u003d _notify_about_backup_usage"},{"line_number":1963,"context_line":""},{"line_number":1964,"context_line":"        volume_usage_audit.main()"},{"line_number":1965,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a98d1f4_d05c417f","line":1962,"range":{"start_line":1962,"start_character":48,"end_line":1962,"end_character":74},"updated":"2016-10-03 15:51:29.000000000","message":"I think you can attach an exception to side_effect directly:\n\n notify_about_backup_usage.side_effect \u003d Exception","commit_id":"6a165ff192451141c02f9e21d08ec44ffffb29a2"}],"cinder/tests/unit/test_volume.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"17c8be5ec8a9aa14258f3baec7e3ae8b48a3b2af","unresolved":false,"context_lines":[{"line_number":6142,"context_line":"            datetime.datetime(1, 4, 1, 1, 1, 1),"},{"line_number":6143,"context_line":"            project_id\u003dfake.PROJECT_ID"},{"line_number":6144,"context_line":"        )"},{"line_number":6145,"context_line":"        self.assertEqual(len(backups), 3)"},{"line_number":6146,"context_line":"        self.assertEqual(backups[0].id, fake.BACKUP2_ID)"},{"line_number":6147,"context_line":"        self.assertEqual(backups[0].volume.id, fake.VOLUME_ID)"},{"line_number":6148,"context_line":"        self.assertEqual(backups[1].id, fake.BACKUP3_ID)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a98d1f4_551b3c1b","line":6145,"updated":"2016-09-29 16:31:39.000000000","message":"Same note as previous file - switch argument order on these.","commit_id":"15d356a788772ca028711167dbe1c4033d8c5352"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e7ccac87886693d547bfc23bf322867c3ab9029a","unresolved":false,"context_lines":[{"line_number":6143,"context_line":"            project_id\u003dfake.PROJECT_ID"},{"line_number":6144,"context_line":"        )"},{"line_number":6145,"context_line":"        self.assertEqual(3, len(backups))"},{"line_number":6146,"context_line":"        self.assertEqual(backups[0].id, fake.BACKUP2_ID)"},{"line_number":6147,"context_line":"        self.assertEqual(backups[1].id, fake.BACKUP3_ID)"},{"line_number":6148,"context_line":"        self.assertEqual(backups[2].id, fake.BACKUP4_ID)"},{"line_number":6149,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a95cdbc_58c24035","line":6146,"range":{"start_line":6146,"start_character":25,"end_line":6146,"end_character":55},"updated":"2016-10-07 14:47:57.000000000","message":"Please switch these to be (expected, actual). Sorry, it\u0027s a pretty minor nit, but we\u0027ve made an effort in the past to standardize this so I don\u0027t want to reintroduce it.","commit_id":"cc13a2e6eda47e515e5362da00706a9afab725a1"}]}
