)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"1e36b978adb37b5f65ce668a6dc09ff2197f2e94","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Anton Arefiev \u003caarefiev@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-12-24 17:18:26 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Change exception massage in volume api"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When reading logs, some exception message isn\u0027t informative"},{"line_number":10,"context_line":"and has some typo, this patch change message in volume api."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a961159_45361704","line":7,"updated":"2014-12-24 16:01:17.000000000","message":"s/massage/message/\n\nSpelling issues aren\u0027t always that important, but this will impact some git searches.","commit_id":"ee44aef9b6901165bdb9c514b4d72ecb8cb63b57"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"bac75c0161a005c47ea2b03fd157df630c3149b5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When reading logs, some exception message isn\u0027t informative"},{"line_number":10,"context_line":"and has some typo, this patch change message in volume api."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1405169"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I783b37bf32fd19d25fe213d4bd915059d8e6d674"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1a930d6b_60ed0ab7","line":12,"updated":"2015-01-26 17:06:20.000000000","message":"APIImpact\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Including_external_references","commit_id":"06fa6af1ceb6fee2d64a76e93557cfb9a2d4ca84"}],"cinder/volume/api.py":[{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"bb930939948868b9b3a91e54c1741ae2bcb2b431","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        if size and (not utils.is_int_like(size) or int(size) \u003c\u003d 0):"},{"line_number":169,"context_line":"            msg \u003d _(\u0027Invalid volume size provided for create request: %s\u0027"},{"line_number":170,"context_line":"                    \u0027(size argument must be an integer (or string \u0027"},{"line_number":171,"context_line":"                    \u0027represenation or an integer) and greater \u0027"},{"line_number":172,"context_line":"                    \u0027than zero).\u0027) % size"},{"line_number":173,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_81a81321","line":171,"updated":"2014-12-23 15:01:05.000000000","message":"(or a string representation *of* an integer) ??","commit_id":"2db8adbaea32cda906539345f0e2d3bdb4049cd0"},{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"bb930939948868b9b3a91e54c1741ae2bcb2b431","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        if source_volume and volume_type:"},{"line_number":188,"context_line":"            if volume_type[\u0027id\u0027] !\u003d source_volume[\u0027volume_type_id\u0027]:"},{"line_number":189,"context_line":"                msg \u003d _(\"Invalid volume_type provided: %s(requested type \""},{"line_number":190,"context_line":"                        \"must match source volume, or be omitted). \""},{"line_number":191,"context_line":"                        \"You should omit the argument.\") % volume_type"},{"line_number":192,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_bc4ff469","line":189,"updated":"2014-12-23 15:01:05.000000000","message":"Minor nit: There needs to be consitency in displaying a space before the bracket. At some place like line 182, there is a space and in other places like 169-170, 189, 202. There is none","commit_id":"2db8adbaea32cda906539345f0e2d3bdb4049cd0"},{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"bb930939948868b9b3a91e54c1741ae2bcb2b431","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            if volume_type[\u0027id\u0027] !\u003d source_volume[\u0027volume_type_id\u0027]:"},{"line_number":189,"context_line":"                msg \u003d _(\"Invalid volume_type provided: %s(requested type \""},{"line_number":190,"context_line":"                        \"must match source volume, or be omitted). \""},{"line_number":191,"context_line":"                        \"You should omit the argument.\") % volume_type"},{"line_number":192,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        # When cloning replica (for testing), volume type must be omitted"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_7c1bcc72","line":191,"updated":"2014-12-23 15:01:05.000000000","message":"This seems kind of confusing. It says that \"requested type must match source volume, or be omitted\". After that we advice that \"You should omit the argument.\" . The last line seems redundant and confusing.","commit_id":"2db8adbaea32cda906539345f0e2d3bdb4049cd0"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"cb432fb68063b3625d6b5676b755018b4188db8a","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        if snapshot and volume_type:"},{"line_number":201,"context_line":"            if volume_type[\u0027id\u0027] !\u003d snapshot[\u0027volume_type_id\u0027]:"},{"line_number":202,"context_line":"                msg \u003d _(\"Invalid volume_type provided: %s(requested type \""},{"line_number":203,"context_line":"                        \"must match source snapshot, or be omitted). \""},{"line_number":204,"context_line":"                        \"You should omit the argument.\") % volume_type"},{"line_number":205,"context_line":"                raise exception.InvalidInput(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_61288097","line":202,"updated":"2014-12-23 18:15:45.000000000","message":"Agreed with Kedar. Also be careful with max line length after adding a space.","commit_id":"2db8adbaea32cda906539345f0e2d3bdb4049cd0"},{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"bb930939948868b9b3a91e54c1741ae2bcb2b431","unresolved":false,"context_lines":[{"line_number":668,"context_line":""},{"line_number":669,"context_line":"        if ((not force) and (volume[\u0027status\u0027] !\u003d \"available\")):"},{"line_number":670,"context_line":"            msg \u003d _(\"Snapshot cannot be created because volume \""},{"line_number":671,"context_line":"                    \"%(volume_id)s is not available, volume status: \""},{"line_number":672,"context_line":"                    \"%(volume_status)s\") % {\u0027volume_id\u0027: volume[\u0027id\u0027],"},{"line_number":673,"context_line":"                                            \u0027volume_status\u0027: volume[\u0027status\u0027]}"},{"line_number":674,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_7cbcac06","line":671,"updated":"2014-12-23 15:01:05.000000000","message":"*current* volume status:","commit_id":"2db8adbaea32cda906539345f0e2d3bdb4049cd0"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"cb432fb68063b3625d6b5676b755018b4188db8a","unresolved":false,"context_lines":[{"line_number":1045,"context_line":"        # We only handle volumes without snapshots for now"},{"line_number":1046,"context_line":"        snaps \u003d self.db.snapshot_get_all_for_volume(context, volume[\u0027id\u0027])"},{"line_number":1047,"context_line":"        if snaps:"},{"line_number":1048,"context_line":"            msg \u003d _(\"Volume must not have snapshots\")"},{"line_number":1049,"context_line":"            LOG.error(msg)"},{"line_number":1050,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":1051,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_2c102f4d","line":1048,"updated":"2014-12-23 18:15:45.000000000","message":"Glad if you could add volume[\u0027id\u0027] to this msg.","commit_id":"2db8adbaea32cda906539345f0e2d3bdb4049cd0"},{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"bb930939948868b9b3a91e54c1741ae2bcb2b431","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"        \"\"\"Attempt to modify the type associated with an existing volume.\"\"\""},{"line_number":1142,"context_line":"        if volume[\u0027status\u0027] not in [\u0027available\u0027, \u0027in-use\u0027]:"},{"line_number":1143,"context_line":"            msg \u003d _(\u0027Unable to update type due to incorrect status: \u0027"},{"line_number":1144,"context_line":"                    \u0027%(volume_status)s on volume: \u0027"},{"line_number":1145,"context_line":"                    \u0027%(volume_id)s\u0027) % {\u0027volume_status\u0027: volume[\u0027status\u0027],"},{"line_number":1146,"context_line":"                                        \u0027volume_id\u0027: volume[\u0027id\u0027]}"},{"line_number":1147,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_1cdf283b","line":1144,"updated":"2014-12-23 15:01:05.000000000","message":"May also add value if the error said which are the correct status. An addition like: \"Volume status must be available or in-use.\" may help.","commit_id":"2db8adbaea32cda906539345f0e2d3bdb4049cd0"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"cb432fb68063b3625d6b5676b755018b4188db8a","unresolved":false,"context_lines":[{"line_number":1141,"context_line":"        \"\"\"Attempt to modify the type associated with an existing volume.\"\"\""},{"line_number":1142,"context_line":"        if volume[\u0027status\u0027] not in [\u0027available\u0027, \u0027in-use\u0027]:"},{"line_number":1143,"context_line":"            msg \u003d _(\u0027Unable to update type due to incorrect status: \u0027"},{"line_number":1144,"context_line":"                    \u0027%(volume_status)s on volume: \u0027"},{"line_number":1145,"context_line":"                    \u0027%(volume_id)s\u0027) % {\u0027volume_status\u0027: volume[\u0027status\u0027],"},{"line_number":1146,"context_line":"                                        \u0027volume_id\u0027: volume[\u0027id\u0027]}"},{"line_number":1147,"context_line":"            LOG.error(msg)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_cc6c0bd3","line":1144,"in_reply_to":"3a961159_1cdf283b","updated":"2014-12-23 18:15:45.000000000","message":"Agreed.","commit_id":"2db8adbaea32cda906539345f0e2d3bdb4049cd0"},{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"5d3295157d7ac3503b67c77cfd67c1850039d644","unresolved":false,"context_lines":[{"line_number":553,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"        if ((not force) and (volume[\u0027status\u0027] !\u003d \"available\")):"},{"line_number":556,"context_line":"            msg \u003d _(\"Volume status must be available, \""},{"line_number":557,"context_line":"                    \"but current status is: %s\") % volume[\u0027status\u0027]"},{"line_number":558,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":559,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_c5cda75e","line":556,"updated":"2014-12-24 15:47:02.000000000","message":"recommend printing the volume[\u0027id\u0027] as well just like line 670,1035 etc.","commit_id":"ee44aef9b6901165bdb9c514b4d72ecb8cb63b57"},{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"5d3295157d7ac3503b67c77cfd67c1850039d644","unresolved":false,"context_lines":[{"line_number":760,"context_line":"    @wrap_check_policy"},{"line_number":761,"context_line":"    def delete_snapshot(self, context, snapshot, force\u003dFalse):"},{"line_number":762,"context_line":"        if not force and snapshot[\u0027status\u0027] not in [\"available\", \"error\"]:"},{"line_number":763,"context_line":"            msg \u003d _(\"Volume Snapshot status must be available or error, \""},{"line_number":764,"context_line":"                    \"but current status is: %s\") % snapshot[\u0027status\u0027]"},{"line_number":765,"context_line":"            raise exception.InvalidSnapshot(reason\u003dmsg)"},{"line_number":766,"context_line":"        cgsnapshot_id \u003d snapshot.get(\u0027cgsnapshot_id\u0027, None)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_25066b86","line":763,"updated":"2014-12-24 15:47:02.000000000","message":"recommend printing the snapshot id","commit_id":"ee44aef9b6901165bdb9c514b4d72ecb8cb63b57"},{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"5d3295157d7ac3503b67c77cfd67c1850039d644","unresolved":false,"context_lines":[{"line_number":934,"context_line":"    def _check_volume_availability(self, volume, force):"},{"line_number":935,"context_line":"        \"\"\"Check if the volume can be used.\"\"\""},{"line_number":936,"context_line":"        if volume[\u0027status\u0027] not in [\u0027available\u0027, \u0027in-use\u0027]:"},{"line_number":937,"context_line":"            msg \u003d _(\u0027Volume status must be available/in-use. \u0027"},{"line_number":938,"context_line":"                    \u0027But current status is: %s\u0027) % volume[\u0027status\u0027]"},{"line_number":939,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":940,"context_line":"        if not force and \u0027in-use\u0027 \u003d\u003d volume[\u0027status\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_85ff1f65","line":937,"updated":"2014-12-24 15:47:02.000000000","message":"recommend printing the volume[\u0027id\u0027] as well just like line 670,1035 etc.","commit_id":"ee44aef9b6901165bdb9c514b4d72ecb8cb63b57"},{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"5d3295157d7ac3503b67c77cfd67c1850039d644","unresolved":false,"context_lines":[{"line_number":986,"context_line":"    @wrap_check_policy"},{"line_number":987,"context_line":"    def extend(self, context, volume, new_size):"},{"line_number":988,"context_line":"        if volume[\u0027status\u0027] !\u003d \u0027available\u0027:"},{"line_number":989,"context_line":"            msg \u003d _(\u0027Volume status must be available to extend. \u0027"},{"line_number":990,"context_line":"                    \u0027But current status is: %s\u0027) % volume[\u0027status\u0027]"},{"line_number":991,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":992,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_c5f4c788","line":989,"updated":"2014-12-24 15:47:02.000000000","message":"recommend printing the volume[\u0027id\u0027] as well just like line 670,1035 etc.","commit_id":"ee44aef9b6901165bdb9c514b4d72ecb8cb63b57"},{"author":{"_account_id":13059,"name":"Kedar Vidvans","email":"kedar.vidvans@oracle.com","username":"kedar-vidvans"},"change_message_id":"5d3295157d7ac3503b67c77cfd67c1850039d644","unresolved":false,"context_lines":[{"line_number":1134,"context_line":"    @wrap_check_policy"},{"line_number":1135,"context_line":"    def update_readonly_flag(self, context, volume, flag):"},{"line_number":1136,"context_line":"        if volume[\u0027status\u0027] !\u003d \u0027available\u0027:"},{"line_number":1137,"context_line":"            msg \u003d _(\u0027Volume status must be available to update readonly flag. \u0027"},{"line_number":1138,"context_line":"                    \u0027But current status is: %s\u0027) % volume[\u0027status\u0027]"},{"line_number":1139,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":1140,"context_line":"        self.update_volume_admin_metadata(context.elevated(), volume,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_a5409ba5","line":1137,"updated":"2014-12-24 15:47:02.000000000","message":"recommend printing the volume[\u0027id\u0027]","commit_id":"ee44aef9b6901165bdb9c514b4d72ecb8cb63b57"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"1d168b9e18a7263ad84e84f1faa928f384f6d6d5","unresolved":false,"context_lines":[{"line_number":402,"context_line":"            filters[\u0027no_migration_targets\u0027] \u003d True"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        if filters:"},{"line_number":405,"context_line":"            LOG.debug(\"Searching by: %s.\" % six.text_type(filters))"},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"        if context.is_admin and allTenants:"},{"line_number":408,"context_line":"            # Need to remove all_tenants to pass the filtering below."}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_64b371e9","line":405,"updated":"2015-02-11 12:47:09.000000000","message":"% \u003d\u003e ,","commit_id":"f3930d0955d62ff33f131c1736f2884f9fbaf3c7"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                now \u003d timeutils.utcnow()"},{"line_number":144,"context_line":"                self.availability_zones \u003d azs"},{"line_number":145,"context_line":"                self.availability_zones_last_fetched \u003d now"},{"line_number":146,"context_line":"                LOG.debug(\"Availability zone cache updated, next update will\""},{"line_number":147,"context_line":"                          \" occur around %s\", now + datetime.timedelta("},{"line_number":148,"context_line":"                              seconds\u003dCONF.az_cache_duration))"},{"line_number":149,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_7e6587ad","line":146,"updated":"2015-02-12 14:01:36.000000000","message":"Missing period.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        # When cloning replica (for testing), volume type must be omitted"},{"line_number":195,"context_line":"        if source_replica and volume_type:"},{"line_number":196,"context_line":"            msg \u003d _(\"No volume_type should be provided when creating test \""},{"line_number":197,"context_line":"                    \"replica, type must be omitted.\")"},{"line_number":198,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        if snapshot and volume_type:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_4392ac57","line":197,"updated":"2015-02-12 14:01:36.000000000","message":"It may be beneficial to reword this one also. Part before the comma means same thing as part after the coma. Why are we repeating that? \"No volume_type should be provided when creating test replica.\" is enough.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":272,"context_line":"            except Exception:"},{"line_number":273,"context_line":"                reservations \u003d None"},{"line_number":274,"context_line":"                LOG.exception(_LE(\"Failed to update quota for \""},{"line_number":275,"context_line":"                                  \"deleting volume.\"))"},{"line_number":276,"context_line":"            self.db.volume_destroy(context.elevated(), volume_id)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"            if reservations:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_c3f3fc70","line":275,"updated":"2015-02-12 14:01:36.000000000","message":"\"for deleting volume\" sounds kind of strange for me. Maybe \"Failed to update quota while deleting volume.\" would be better? Anyway I\u0027m not sure about this one.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":605,"context_line":"                    msg \u003d _(\"Quota exceeded for %(s_pid)s, tried to create \""},{"line_number":606,"context_line":"                            \"%(s_size)sG snapshot (%(d_consumed)dG of \""},{"line_number":607,"context_line":"                            \"%(d_quota)dG already consumed).\")"},{"line_number":608,"context_line":"                    LOG.warn(msg % {\u0027s_pid\u0027: context.project_id,"},{"line_number":609,"context_line":"                                    \u0027s_size\u0027: volume[\u0027size\u0027],"},{"line_number":610,"context_line":"                                    \u0027d_consumed\u0027: _consumed(over),"},{"line_number":611,"context_line":"                                    \u0027d_quota\u0027: quotas[over]})"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_1e22cb51","line":608,"updated":"2015-02-12 14:01:36.000000000","message":"You missed this one changing % to , in LOG calls..","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":618,"context_line":"                            \"snapshot (%(d_consumed)d snapshots \""},{"line_number":619,"context_line":"                            \"already consumed).\")"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"                    LOG.warn(msg % {\u0027s_pid\u0027: context.project_id,"},{"line_number":622,"context_line":"                                    \u0027d_consumed\u0027: _consumed(over)})"},{"line_number":623,"context_line":"                    raise exception.SnapshotLimitExceeded("},{"line_number":624,"context_line":"                        allowed\u003dquotas[over])"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_7e13c700","line":621,"updated":"2015-02-12 14:01:36.000000000","message":"Same as in line 608.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":735,"context_line":"                    msg \u003d _(\"Quota exceeded for %(s_pid)s, tried to create \""},{"line_number":736,"context_line":"                            \"%(s_size)sG snapshot (%(d_consumed)dG of \""},{"line_number":737,"context_line":"                            \"%(d_quota)dG already consumed).\")"},{"line_number":738,"context_line":"                    LOG.warning(msg % {\u0027s_pid\u0027: context.project_id,"},{"line_number":739,"context_line":"                                       \u0027s_size\u0027: volume[\u0027size\u0027],"},{"line_number":740,"context_line":"                                       \u0027d_consumed\u0027: _consumed(over),"},{"line_number":741,"context_line":"                                       \u0027d_quota\u0027: quotas[over]})"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_dea91391","line":738,"updated":"2015-02-12 14:01:36.000000000","message":"Same as line 608.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":748,"context_line":"                            \"snapshot (%(d_consumed)d snapshots \""},{"line_number":749,"context_line":"                            \"already consumed).\")"},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"                    LOG.warning(msg % {\u0027s_pid\u0027: context.project_id,"},{"line_number":752,"context_line":"                                       \u0027d_consumed\u0027: _consumed(over)})"},{"line_number":753,"context_line":"                    raise exception.SnapshotLimitExceeded("},{"line_number":754,"context_line":"                        allowed\u003dquotas[over])"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_3e922f57","line":751,"updated":"2015-02-12 14:01:36.000000000","message":"Same as line 608.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":791,"context_line":"                          \u0027Status must be available or \u0027"},{"line_number":792,"context_line":"                          \u0027error, not %(snap_status)s.\u0027),"},{"line_number":793,"context_line":"                      {\u0027snap_id\u0027: snapshot[\u0027id\u0027],"},{"line_number":794,"context_line":"                       \u0027snap_status\u0027: snapshot[\u0027status\u0027]})"},{"line_number":795,"context_line":"            msg \u003d _(\"Volume Snapshot status must be available or error\")"},{"line_number":796,"context_line":"            raise exception.InvalidSnapshot(reason\u003dmsg)"},{"line_number":797,"context_line":"        cgsnapshot_id \u003d snapshot.get(\u0027cgsnapshot_id\u0027, None)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_1e156b3f","line":794,"updated":"2015-02-12 14:01:36.000000000","message":"I guess you skipped this one with adding periods.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":971,"context_line":"        \"\"\"Check if the volume can be used.\"\"\""},{"line_number":972,"context_line":"        if volume[\u0027status\u0027] not in [\u0027available\u0027, \u0027in-use\u0027]:"},{"line_number":973,"context_line":"            msg \u003d _(\u0027Volume %(vol_id)s status must be \u0027"},{"line_number":974,"context_line":"                    \u0027available/in-use. But current status is: \u0027"},{"line_number":975,"context_line":"                    \u0027%(vol_status)s.\u0027) % {\u0027vol_id\u0027: volume[\u0027id\u0027],"},{"line_number":976,"context_line":"                                          \u0027vol_status\u0027: volume[\u0027status\u0027]}"},{"line_number":977,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_be79bf94","line":974,"updated":"2015-02-12 14:01:36.000000000","message":"We\u0027re using \"or\" in other places so \"available or in-use\" would be better. Also in rest of the messages we have \", but current(...)\" instead of \". But current(...)\".","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":1025,"context_line":"    def extend(self, context, volume, new_size):"},{"line_number":1026,"context_line":"        if volume[\u0027status\u0027] !\u003d \u0027available\u0027:"},{"line_number":1027,"context_line":"            msg \u003d _(\u0027Volume %(vol_id)s status must be available \u0027"},{"line_number":1028,"context_line":"                    \u0027to extend. But current status is: \u0027"},{"line_number":1029,"context_line":"                    \u0027%(vol_status)s.\u0027) % {\u0027vol_id\u0027: volume[\u0027id\u0027],"},{"line_number":1030,"context_line":"                                          \u0027vol_status\u0027: volume[\u0027status\u0027]}"},{"line_number":1031,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_3e930fa4","line":1028,"updated":"2015-02-12 14:01:36.000000000","message":"Same as line 974.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":1072,"context_line":""},{"line_number":1073,"context_line":"        # We only handle \"available\" volumes for now"},{"line_number":1074,"context_line":"        if volume[\u0027status\u0027] not in [\u0027available\u0027, \u0027in-use\u0027]:"},{"line_number":1075,"context_line":"            msg \u003d _(\u0027Volume %(vol_id)s status must be available/in-use. \u0027"},{"line_number":1076,"context_line":"                    \u0027But current status is: \u0027"},{"line_number":1077,"context_line":"                    \u0027%(vol_status)s.\u0027) % {\u0027vol_id\u0027: volume[\u0027id\u0027],"},{"line_number":1078,"context_line":"                                          \u0027vol_status\u0027: volume[\u0027status\u0027]}"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_fef417f2","line":1075,"updated":"2015-02-12 14:01:36.000000000","message":"Same as line 974.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":1082,"context_line":"        # Make sure volume is not part of a migration"},{"line_number":1083,"context_line":"        if volume[\u0027migration_status\u0027] is not None:"},{"line_number":1084,"context_line":"            msg \u003d _(\"Volume %s is already part of an active \""},{"line_number":1085,"context_line":"                    \"migration\") % volume[\u0027id\u0027]"},{"line_number":1086,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":1087,"context_line":""},{"line_number":1088,"context_line":"        # We only handle volumes without snapshots for now"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_1edf2b6a","line":1085,"updated":"2015-02-12 14:01:36.000000000","message":"Period missing.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":1118,"context_line":"            if utils.service_is_up(service) and service[\u0027host\u0027] \u003d\u003d svc_host:"},{"line_number":1119,"context_line":"                found \u003d True"},{"line_number":1120,"context_line":"        if not found:"},{"line_number":1121,"context_line":"            msg \u003d (_(\u0027No available service named %s\u0027) % host)"},{"line_number":1122,"context_line":"            LOG.error(msg)"},{"line_number":1123,"context_line":"            raise exception.InvalidHost(reason\u003dmsg)"},{"line_number":1124,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_7ea667ac","line":1121,"updated":"2015-02-12 14:01:36.000000000","message":"Not a part of your patch but parentheses are redundant here.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"dfd4c60aed68ec6257316e7a68d30283b0a7dc87","unresolved":false,"context_lines":[{"line_number":1124,"context_line":""},{"line_number":1125,"context_line":"        # Make sure the destination host is different than the current one"},{"line_number":1126,"context_line":"        if host \u003d\u003d volume[\u0027host\u0027]:"},{"line_number":1127,"context_line":"            msg \u003d _(\u0027Destination host must be different than current host.\u0027)"},{"line_number":1128,"context_line":"            LOG.error(msg)"},{"line_number":1129,"context_line":"            raise exception.InvalidHost(reason\u003dmsg)"},{"line_number":1130,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_f5de2d10","line":1127,"updated":"2015-02-11 13:53:00.000000000","message":"Miss \u0027the\u0027 current host?","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":1175,"context_line":"    def update_readonly_flag(self, context, volume, flag):"},{"line_number":1176,"context_line":"        if volume[\u0027status\u0027] !\u003d \u0027available\u0027:"},{"line_number":1177,"context_line":"            msg \u003d _(\u0027Volume %(vol_id)s status must be available \u0027"},{"line_number":1178,"context_line":"                    \u0027to update readonly flag. But current status is: \u0027"},{"line_number":1179,"context_line":"                    \u0027%(vol_status)s\u0027) % {\u0027vol_id\u0027: volume[\u0027id\u0027],"},{"line_number":1180,"context_line":"                                         \u0027vol_status\u0027: volume[\u0027status\u0027]}"},{"line_number":1181,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_1e4d6b3e","line":1178,"updated":"2015-02-12 14:01:36.000000000","message":"Same as line 974.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"9006907ce0b44efbb3dd38a14e8360dc205bda93","unresolved":false,"context_lines":[{"line_number":1233,"context_line":""},{"line_number":1234,"context_line":"        # Error if the original and new type are the same"},{"line_number":1235,"context_line":"        if volume[\u0027volume_type_id\u0027] \u003d\u003d vol_type_id:"},{"line_number":1236,"context_line":"            msg \u003d (_(\u0027New volume_type same as original: %s.\u0027) % new_type)"},{"line_number":1237,"context_line":"            LOG.error(msg)"},{"line_number":1238,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":1239,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_bee29fd2","line":1236,"updated":"2015-02-12 14:01:36.000000000","message":"Redundant parentheses again.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"dfd4c60aed68ec6257316e7a68d30283b0a7dc87","unresolved":false,"context_lines":[{"line_number":1248,"context_line":"        new_enc \u003d volume_types.get_volume_type_encryption(context,"},{"line_number":1249,"context_line":"                                                          vol_type_id)"},{"line_number":1250,"context_line":"        if old_enc !\u003d new_enc:"},{"line_number":1251,"context_line":"            msg \u003d _(\u0027Retype cannot change encryption requirements.\u0027)"},{"line_number":1252,"context_line":"            raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":1253,"context_line":""},{"line_number":1254,"context_line":"        # We don\u0027t support changing QoS at the front-end yet for in-use volumes"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_35336563","line":1251,"updated":"2015-02-11 13:53:00.000000000","message":"Would you like to add details for this msg too?","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"dfd4c60aed68ec6257316e7a68d30283b0a7dc87","unresolved":false,"context_lines":[{"line_number":1261,"context_line":"                    specs \u003d qos_specs.get_qos_specs(context.elevated(), qos_id)"},{"line_number":1262,"context_line":"                    if specs[\u0027consumer\u0027] !\u003d \u0027back-end\u0027:"},{"line_number":1263,"context_line":"                        msg \u003d _(\u0027Retype cannot change front-end qos specs for \u0027"},{"line_number":1264,"context_line":"                                \u0027in-use volumes.\u0027)"},{"line_number":1265,"context_line":"                        raise exception.InvalidInput(reason\u003dmsg)"},{"line_number":1266,"context_line":""},{"line_number":1267,"context_line":"        # We\u0027re checking here in so that we can report any quota issues as"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_75279d12","line":1264,"updated":"2015-02-11 13:53:00.000000000","message":"Same as above.","commit_id":"0f835994752e0fc7947e33d317134947997994c0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e5eba00b455e05f1f17342cb0d472a30dacc3f9e","unresolved":false,"context_lines":[{"line_number":605,"context_line":"                    msg \u003d _(\"Quota exceeded for %(s_pid)s, tried to create \""},{"line_number":606,"context_line":"                            \"%(s_size)sG snapshot (%(d_consumed)dG of \""},{"line_number":607,"context_line":"                            \"%(d_quota)dG already consumed).\")"},{"line_number":608,"context_line":"                    LOG.warn(msg, {\u0027s_pid\u0027: context.project_id,"},{"line_number":609,"context_line":"                                   \u0027s_size\u0027: volume[\u0027size\u0027],"},{"line_number":610,"context_line":"                                   \u0027d_consumed\u0027: _consumed(over),"},{"line_number":611,"context_line":"                                   \u0027d_quota\u0027: quotas[over]})"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_0ac5dc3c","line":608,"updated":"2015-02-13 20:56:07.000000000","message":"msg is only being used in the LOG.warning call and not in the exception, so _LW() should be used instead of _().","commit_id":"0b2e7cbeeb50673928b493e38f225e9868c23b4d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e5eba00b455e05f1f17342cb0d472a30dacc3f9e","unresolved":false,"context_lines":[{"line_number":618,"context_line":"                            \"snapshot (%(d_consumed)d snapshots \""},{"line_number":619,"context_line":"                            \"already consumed).\")"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"                    LOG.warn(msg, {\u0027s_pid\u0027: context.project_id,"},{"line_number":622,"context_line":"                                   \u0027d_consumed\u0027: _consumed(over)})"},{"line_number":623,"context_line":"                    raise exception.SnapshotLimitExceeded("},{"line_number":624,"context_line":"                        allowed\u003dquotas[over])"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_4abfd4aa","line":621,"updated":"2015-02-13 20:56:07.000000000","message":"Same as above.","commit_id":"0b2e7cbeeb50673928b493e38f225e9868c23b4d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e5eba00b455e05f1f17342cb0d472a30dacc3f9e","unresolved":false,"context_lines":[{"line_number":735,"context_line":"                    msg \u003d _(\"Quota exceeded for %(s_pid)s, tried to create \""},{"line_number":736,"context_line":"                            \"%(s_size)sG snapshot (%(d_consumed)dG of \""},{"line_number":737,"context_line":"                            \"%(d_quota)dG already consumed).\")"},{"line_number":738,"context_line":"                    LOG.warning(msg, {\u0027s_pid\u0027: context.project_id,"},{"line_number":739,"context_line":"                                      \u0027s_size\u0027: volume[\u0027size\u0027],"},{"line_number":740,"context_line":"                                      \u0027d_consumed\u0027: _consumed(over),"},{"line_number":741,"context_line":"                                      \u0027d_quota\u0027: quotas[over]})"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_6adbb821","line":738,"updated":"2015-02-13 20:56:07.000000000","message":"_LW()","commit_id":"0b2e7cbeeb50673928b493e38f225e9868c23b4d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e5eba00b455e05f1f17342cb0d472a30dacc3f9e","unresolved":false,"context_lines":[{"line_number":748,"context_line":"                            \"snapshot (%(d_consumed)d snapshots \""},{"line_number":749,"context_line":"                            \"already consumed).\")"},{"line_number":750,"context_line":""},{"line_number":751,"context_line":"                    LOG.warning(msg, {\u0027s_pid\u0027: context.project_id,"},{"line_number":752,"context_line":"                                      \u0027d_consumed\u0027: _consumed(over)})"},{"line_number":753,"context_line":"                    raise exception.SnapshotLimitExceeded("},{"line_number":754,"context_line":"                        allowed\u003dquotas[over])"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_caeae4ab","line":751,"updated":"2015-02-13 20:56:07.000000000","message":"_LW()","commit_id":"0b2e7cbeeb50673928b493e38f225e9868c23b4d"}]}
