)]}'
{"nova/compute/api.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"936e9388df7ac385c51e41118a6677fdc8e9d9b0","unresolved":false,"context_lines":[{"line_number":1143,"context_line":"    @staticmethod"},{"line_number":1144,"context_line":"    def _volume_size(instance_type, bdm):"},{"line_number":1145,"context_line":"        size \u003d bdm.get(\u0027volume_size\u0027)"},{"line_number":1146,"context_line":"        if (size is None and bdm.get(\u0027source_type\u0027) \u003d\u003d \u0027blank\u0027 and"},{"line_number":1147,"context_line":"                bdm.get(\u0027destination_type\u0027) \u003d\u003d \u0027local\u0027):"},{"line_number":1148,"context_line":"            if bdm.get(\u0027guest_format\u0027) \u003d\u003d \u0027swap\u0027:"},{"line_number":1149,"context_line":"                size \u003d instance_type.get(\u0027swap\u0027, 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_ff00a635","line":1146,"updated":"2015-06-10 20:17:40.000000000","message":"We should check also for size equal to 0","commit_id":"55f653e0673218ecd8b65677dc06fc3ef1d1e605"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"aeb4031be0c809b9b84d059c164abebc00583e58","unresolved":false,"context_lines":[{"line_number":1143,"context_line":"    @staticmethod"},{"line_number":1144,"context_line":"    def _volume_size(instance_type, bdm):"},{"line_number":1145,"context_line":"        size \u003d bdm.get(\u0027volume_size\u0027)"},{"line_number":1146,"context_line":"        if (size is None and bdm.get(\u0027source_type\u0027) \u003d\u003d \u0027blank\u0027 and"},{"line_number":1147,"context_line":"                bdm.get(\u0027destination_type\u0027) \u003d\u003d \u0027local\u0027):"},{"line_number":1148,"context_line":"            if bdm.get(\u0027guest_format\u0027) \u003d\u003d \u0027swap\u0027:"},{"line_number":1149,"context_line":"                size \u003d instance_type.get(\u0027swap\u0027, 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3afb71cf_7a53a417","line":1146,"in_reply_to":"3afb71cf_ff00a635","updated":"2015-06-10 20:25:54.000000000","message":"Hum.. forget about me hein :)","commit_id":"55f653e0673218ecd8b65677dc06fc3ef1d1e605"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"30b1449caaa056bd09a65fe09b585e335734c2d4","unresolved":false,"context_lines":[{"line_number":1143,"context_line":"    @staticmethod"},{"line_number":1144,"context_line":"    def _volume_size(instance_type, bdm):"},{"line_number":1145,"context_line":"        size \u003d bdm.get(\u0027volume_size\u0027)"},{"line_number":1146,"context_line":"        if (size is None and bdm.get(\u0027source_type\u0027) \u003d\u003d \u0027blank\u0027 and"},{"line_number":1147,"context_line":"                bdm.get(\u0027destination_type\u0027) \u003d\u003d \u0027local\u0027):"},{"line_number":1148,"context_line":"            if bdm.get(\u0027guest_format\u0027) \u003d\u003d \u0027swap\u0027:"},{"line_number":1149,"context_line":"                size \u003d instance_type.get(\u0027swap\u0027, 0)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_ad35e346","line":1146,"updated":"2015-06-30 15:44:00.000000000","message":"Could you add a code comment above this to explain why we need this check since apparently we didn\u0027t know that we needed to check for a local blank bdm before.  I think some comments in bdm related conditional logic like this would be very helpful.","commit_id":"56c9e9e9a8d2ca90474dc954e06154418396ad1b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"062e6474ed2027a02ec0c053739a6126732c2fde","unresolved":false,"context_lines":[{"line_number":1143,"context_line":"    @staticmethod"},{"line_number":1144,"context_line":"    def _volume_size(instance_type, bdm):"},{"line_number":1145,"context_line":"        size \u003d bdm.get(\u0027volume_size\u0027)"},{"line_number":1146,"context_line":"        if (size is None and bdm.get(\u0027source_type\u0027) \u003d\u003d \u0027blank\u0027 and"},{"line_number":1147,"context_line":"                bdm.get(\u0027destination_type\u0027) \u003d\u003d \u0027local\u0027):"},{"line_number":1148,"context_line":"            if bdm.get(\u0027guest_format\u0027) \u003d\u003d \u0027swap\u0027:"},{"line_number":1149,"context_line":"                size \u003d instance_type.get(\u0027swap\u0027, 0)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_00117baf","line":1146,"in_reply_to":"ba3cc151_79bf32aa","updated":"2015-07-04 14:50:21.000000000","message":"Without a -1 things don\u0027t really get noticed, or some other core comes along and +2s assuming the comment is just a comment and I don\u0027t care that it\u0027s addressed, which is incorrect.  This code is complicated, and there is a lot of it everywhere, and like I said, if we didn\u0027t know we needed to check this before, we should have something in here explaining it because there are lots of permutations for interacting with bdms and the code is not self-documenting.  So if I as a core need to ask questions about what it\u0027s doing, I think we should have some documentation in the code explaining the logic so that in a year from now we\u0027re not scratching our heads as to what it\u0027s doing and why it\u0027s doing it.","commit_id":"56c9e9e9a8d2ca90474dc954e06154418396ad1b"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"e570a1546832a229c6de53081e942083e9d53cf3","unresolved":false,"context_lines":[{"line_number":1143,"context_line":"    @staticmethod"},{"line_number":1144,"context_line":"    def _volume_size(instance_type, bdm):"},{"line_number":1145,"context_line":"        size \u003d bdm.get(\u0027volume_size\u0027)"},{"line_number":1146,"context_line":"        if (size is None and bdm.get(\u0027source_type\u0027) \u003d\u003d \u0027blank\u0027 and"},{"line_number":1147,"context_line":"                bdm.get(\u0027destination_type\u0027) \u003d\u003d \u0027local\u0027):"},{"line_number":1148,"context_line":"            if bdm.get(\u0027guest_format\u0027) \u003d\u003d \u0027swap\u0027:"},{"line_number":1149,"context_line":"                size \u003d instance_type.get(\u0027swap\u0027, 0)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_79bf32aa","line":1146,"in_reply_to":"ba3cc151_ad35e346","updated":"2015-07-02 11:15:20.000000000","message":"Yeah I could but not sure I appreciate -1s for this kind of stuff tbh.","commit_id":"56c9e9e9a8d2ca90474dc954e06154418396ad1b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"30b1449caaa056bd09a65fe09b585e335734c2d4","unresolved":false,"context_lines":[{"line_number":1233,"context_line":"                try:"},{"line_number":1234,"context_line":"                    self._get_image(context, image_id)"},{"line_number":1235,"context_line":"                except Exception:"},{"line_number":1236,"context_line":"                    raise exception.InvalidBDMImage(id\u003dimage_id)"},{"line_number":1237,"context_line":"                if (bdm.source_type \u003d\u003d \u0027image\u0027 and"},{"line_number":1238,"context_line":"                        bdm.destination_type \u003d\u003d \u0027volume\u0027 and"},{"line_number":1239,"context_line":"                        not bdm.volume_size):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_f3d0a855","line":1236,"updated":"2015-06-30 15:44:00.000000000","message":"It seems that we really only care about the destination_type being \u0027volume\u0027 for the size check, so could we pull up and generalize this check for both source_type \u0027blank\u0027 and \u0027image\u0027?\n\nAlso, does source_type \u0027snapshot\u0027 or \u0027volume\u0027 not matter for the size check?","commit_id":"56c9e9e9a8d2ca90474dc954e06154418396ad1b"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"6d551bfaa302e40c1e9ced8a58bc28ef333a74e1","unresolved":false,"context_lines":[{"line_number":1233,"context_line":"                try:"},{"line_number":1234,"context_line":"                    self._get_image(context, image_id)"},{"line_number":1235,"context_line":"                except Exception:"},{"line_number":1236,"context_line":"                    raise exception.InvalidBDMImage(id\u003dimage_id)"},{"line_number":1237,"context_line":"                if (bdm.source_type \u003d\u003d \u0027image\u0027 and"},{"line_number":1238,"context_line":"                        bdm.destination_type \u003d\u003d \u0027volume\u0027 and"},{"line_number":1239,"context_line":"                        not bdm.volume_size):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_34544ffd","line":1236,"in_reply_to":"ba3cc151_19b866c7","updated":"2015-07-02 11:26:59.000000000","message":"OH ok I see what you mean.\n\n\u003e Also, does source_type \u0027snapshot\u0027 or \u0027volume\u0027 not matter for the size check?\n\nSo it does not - Cinder has the info already. there is a patche where I fix tracking it in nova later in the branch though.\n\nOn the generalizing logic - it\u0027s always nice to keep bugfixing and refactoring in separate patches, but I\u0027d be happy to add a wishlist bug for it.","commit_id":"56c9e9e9a8d2ca90474dc954e06154418396ad1b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"062e6474ed2027a02ec0c053739a6126732c2fde","unresolved":false,"context_lines":[{"line_number":1233,"context_line":"                try:"},{"line_number":1234,"context_line":"                    self._get_image(context, image_id)"},{"line_number":1235,"context_line":"                except Exception:"},{"line_number":1236,"context_line":"                    raise exception.InvalidBDMImage(id\u003dimage_id)"},{"line_number":1237,"context_line":"                if (bdm.source_type \u003d\u003d \u0027image\u0027 and"},{"line_number":1238,"context_line":"                        bdm.destination_type \u003d\u003d \u0027volume\u0027 and"},{"line_number":1239,"context_line":"                        not bdm.volume_size):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_80258b0b","line":1236,"in_reply_to":"ba3cc151_34544ffd","updated":"2015-07-04 14:50:21.000000000","message":"I\u0027d be +1 on a low severity / low-hanging-fruit cleanup bug for generalizing the duplicate code.","commit_id":"56c9e9e9a8d2ca90474dc954e06154418396ad1b"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"e570a1546832a229c6de53081e942083e9d53cf3","unresolved":false,"context_lines":[{"line_number":1233,"context_line":"                try:"},{"line_number":1234,"context_line":"                    self._get_image(context, image_id)"},{"line_number":1235,"context_line":"                except Exception:"},{"line_number":1236,"context_line":"                    raise exception.InvalidBDMImage(id\u003dimage_id)"},{"line_number":1237,"context_line":"                if (bdm.source_type \u003d\u003d \u0027image\u0027 and"},{"line_number":1238,"context_line":"                        bdm.destination_type \u003d\u003d \u0027volume\u0027 and"},{"line_number":1239,"context_line":"                        not bdm.volume_size):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_19b866c7","line":1236,"in_reply_to":"ba3cc151_f3d0a855","updated":"2015-07-02 11:15:20.000000000","message":"not really related to this patch is it?","commit_id":"56c9e9e9a8d2ca90474dc954e06154418396ad1b"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"4b96d04c0ad57a18791d6346abaff5f7d0193206","unresolved":false,"context_lines":[{"line_number":1041,"context_line":"                \u0027volume_size\u0027: None,"},{"line_number":1042,"context_line":"            }, anon\u003dTrue)"},{"line_number":1043,"context_line":"        ]"},{"line_number":1044,"context_line":"        blank_no_size \u003d block_device_obj.block_device_make_list_from_dicts("},{"line_number":1045,"context_line":"                self.context, blank_no_size)"},{"line_number":1046,"context_line":"        mappings_ \u003d mappings[:]"},{"line_number":1047,"context_line":"        mappings_.objects.extend(image_no_size)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_c552a5dd","line":1044,"updated":"2015-06-15 10:11:44.000000000","message":"how do you use blank_no_size in the test below?","commit_id":"d6858ca9b889798c9fdd32aec496db850131ceba"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"d74c00aae30f5e9d0befba0a44d3be595949e547","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"        blank_no_size \u003d block_device_obj.block_device_make_list_from_dicts("},{"line_number":1045,"context_line":"                self.context, blank_no_size)"},{"line_number":1046,"context_line":"        mappings_ \u003d mappings[:]"},{"line_number":1047,"context_line":"        mappings_.objects.extend(image_no_size)"},{"line_number":1048,"context_line":"        self.assertRaises(exception.InvalidBDM,"},{"line_number":1049,"context_line":"                          self.compute_api._validate_bdm,"},{"line_number":1050,"context_line":"                          self.context, instance, instance_type,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_e51865d5","line":1047,"updated":"2015-06-18 09:07:14.000000000","message":"Ugh it should have been here - copy paste the billion dollar mistake :)","commit_id":"d6858ca9b889798c9fdd32aec496db850131ceba"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"4b96d04c0ad57a18791d6346abaff5f7d0193206","unresolved":false,"context_lines":[{"line_number":8664,"context_line":"        ephemeral_bdm \u003d {\u0027source_type\u0027: \u0027blank\u0027, \u0027guest_format\u0027: None,"},{"line_number":8665,"context_line":"                         \u0027destination_type\u0027: \u0027local\u0027}"},{"line_number":8666,"context_line":"        volume_bdm \u003d {\u0027source_type\u0027: \u0027volume\u0027, \u0027volume_size\u0027: volume_size,"},{"line_number":8667,"context_line":"                      \u0027destination_type\u0027: \u0027local\u0027}"},{"line_number":8668,"context_line":""},{"line_number":8669,"context_line":"        inst_type \u003d {\u0027ephemeral_gb\u0027: ephemeral_size, \u0027swap\u0027: swap_size}"},{"line_number":8670,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_250cb193","line":8667,"updated":"2015-06-15 10:11:44.000000000","message":"iianm dest\u003dlocal is wrong value for a volume","commit_id":"d6858ca9b889798c9fdd32aec496db850131ceba"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"d74c00aae30f5e9d0befba0a44d3be595949e547","unresolved":false,"context_lines":[{"line_number":8664,"context_line":"        ephemeral_bdm \u003d {\u0027source_type\u0027: \u0027blank\u0027, \u0027guest_format\u0027: None,"},{"line_number":8665,"context_line":"                         \u0027destination_type\u0027: \u0027local\u0027}"},{"line_number":8666,"context_line":"        volume_bdm \u003d {\u0027source_type\u0027: \u0027volume\u0027, \u0027volume_size\u0027: volume_size,"},{"line_number":8667,"context_line":"                      \u0027destination_type\u0027: \u0027local\u0027}"},{"line_number":8668,"context_line":""},{"line_number":8669,"context_line":"        inst_type \u003d {\u0027ephemeral_gb\u0027: ephemeral_size, \u0027swap\u0027: swap_size}"},{"line_number":8670,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_05f2299a","line":8667,"in_reply_to":"fa32b979_250cb193","updated":"2015-06-18 09:07:14.000000000","message":"Correct - will fix it up!","commit_id":"d6858ca9b889798c9fdd32aec496db850131ceba"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"30b1449caaa056bd09a65fe09b585e335734c2d4","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"                          self.context, instance, instance_type,"},{"line_number":1035,"context_line":"                          mappings_)"},{"line_number":1036,"context_line":""},{"line_number":1037,"context_line":"        blank_no_size \u003d ["},{"line_number":1038,"context_line":"            fake_block_device.FakeDbBlockDeviceDict({"},{"line_number":1039,"context_line":"                \u0027device_name\u0027: \u0027/dev/sda4\u0027,"},{"line_number":1040,"context_line":"                \u0027source_type\u0027: \u0027blank\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_d35d647a","line":1037,"updated":"2015-06-30 15:44:00.000000000","message":"Add a comment about what negative scenario this is testing, like e.g. above:\n\n# More than one swap\n\nSince we have a bunch of validation sub-tests in this single test case and InvalidBDM is a pretty generic exception, it\u0027d be good to call out with a comment what this block of code is actually testing.","commit_id":"56c9e9e9a8d2ca90474dc954e06154418396ad1b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"062e6474ed2027a02ec0c053739a6126732c2fde","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"                          self.context, instance, instance_type,"},{"line_number":1035,"context_line":"                          mappings_)"},{"line_number":1036,"context_line":""},{"line_number":1037,"context_line":"        blank_no_size \u003d ["},{"line_number":1038,"context_line":"            fake_block_device.FakeDbBlockDeviceDict({"},{"line_number":1039,"context_line":"                \u0027device_name\u0027: \u0027/dev/sda4\u0027,"},{"line_number":1040,"context_line":"                \u0027source_type\u0027: \u0027blank\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_601c07c2","line":1037,"in_reply_to":"ba3cc151_192dc6fd","updated":"2015-07-04 14:50:21.000000000","message":"This test case is now 185 lines long.  There is convention here in explaining what it\u0027s doing for each part of the test given it\u0027s testing multiple scenarios, which could arguably be broken into separate test cases with an explanation in each for the case it\u0027s testing, since like I said, InvalidBDM is very generic.  For example, someone could later change the called method and InvalidBDM could be raised for some other reason that this isn\u0027t actually testing but we wouldn\u0027t necessarily know we regressed the blank volume None size check.  Just saying.  Readability is important for posterity and maintainability, IMO, so -1\u0027s are justified in that case.","commit_id":"56c9e9e9a8d2ca90474dc954e06154418396ad1b"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"e570a1546832a229c6de53081e942083e9d53cf3","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"                          self.context, instance, instance_type,"},{"line_number":1035,"context_line":"                          mappings_)"},{"line_number":1036,"context_line":""},{"line_number":1037,"context_line":"        blank_no_size \u003d ["},{"line_number":1038,"context_line":"            fake_block_device.FakeDbBlockDeviceDict({"},{"line_number":1039,"context_line":"                \u0027device_name\u0027: \u0027/dev/sda4\u0027,"},{"line_number":1040,"context_line":"                \u0027source_type\u0027: \u0027blank\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_192dc6fd","line":1037,"in_reply_to":"ba3cc151_d35d647a","updated":"2015-07-02 11:15:20.000000000","message":"It\u0027s kinda clear from the name of the variable, but sure... still - I\u0027m really not very happy about this being the reason for a -1 of a patch we think is otherwise useful. I think as a core team we need to be making these kinds of judgements better.","commit_id":"56c9e9e9a8d2ca90474dc954e06154418396ad1b"},{"author":{"_account_id":10224,"name":"Feodor Tersin","email":"ftersin@hotmail.com","username":"ftersin"},"change_message_id":"32a5221d153d067f20d628bd8f18dfd279319d51","unresolved":false,"context_lines":[{"line_number":8656,"context_line":"        ephemeral_bdm \u003d {\u0027source_type\u0027: \u0027blank\u0027, \u0027guest_format\u0027: None,"},{"line_number":8657,"context_line":"                         \u0027destination_type\u0027: \u0027local\u0027}"},{"line_number":8658,"context_line":"        volume_bdm \u003d {\u0027source_type\u0027: \u0027volume\u0027, \u0027volume_size\u0027: volume_size,"},{"line_number":8659,"context_line":"                      \u0027destination_type\u0027: \u0027local\u0027}"},{"line_number":8660,"context_line":""},{"line_number":8661,"context_line":"        inst_type \u003d {\u0027ephemeral_gb\u0027: ephemeral_size, \u0027swap\u0027: swap_size}"},{"line_number":8662,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_f04dfe72","line":8659,"updated":"2015-06-30 15:21:36.000000000","message":"it is still not consistent: volume destination can not be local","commit_id":"56c9e9e9a8d2ca90474dc954e06154418396ad1b"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"e570a1546832a229c6de53081e942083e9d53cf3","unresolved":false,"context_lines":[{"line_number":8656,"context_line":"        ephemeral_bdm \u003d {\u0027source_type\u0027: \u0027blank\u0027, \u0027guest_format\u0027: None,"},{"line_number":8657,"context_line":"                         \u0027destination_type\u0027: \u0027local\u0027}"},{"line_number":8658,"context_line":"        volume_bdm \u003d {\u0027source_type\u0027: \u0027volume\u0027, \u0027volume_size\u0027: volume_size,"},{"line_number":8659,"context_line":"                      \u0027destination_type\u0027: \u0027local\u0027}"},{"line_number":8660,"context_line":""},{"line_number":8661,"context_line":"        inst_type \u003d {\u0027ephemeral_gb\u0027: ephemeral_size, \u0027swap\u0027: swap_size}"},{"line_number":8662,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_f90ee28a","line":8659,"in_reply_to":"ba3cc151_f04dfe72","updated":"2015-07-02 11:15:20.000000000","message":"D\u0027oh! I thought I fixed it :( let\u0027s try again :)","commit_id":"56c9e9e9a8d2ca90474dc954e06154418396ad1b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"45f2414ee6e68ed6e36159f84ddeb6223f57637f","unresolved":false,"context_lines":[{"line_number":1034,"context_line":"                          self.context, instance, instance_type,"},{"line_number":1035,"context_line":"                          mappings_)"},{"line_number":1036,"context_line":""},{"line_number":1037,"context_line":"        # blank device without a specified size fails"},{"line_number":1038,"context_line":"        blank_no_size \u003d ["},{"line_number":1039,"context_line":"            fake_block_device.FakeDbBlockDeviceDict({"},{"line_number":1040,"context_line":"                \u0027device_name\u0027: \u0027/dev/sda4\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_a069af27","line":1037,"updated":"2015-07-04 14:52:30.000000000","message":"nit: s/device/volume/ but meh","commit_id":"817946b90f3def51e513bf4eed36b8e52757087a"}]}
