)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds a new enum and field, ServiceBinaryField"},{"line_number":10,"context_line":"that will hold the constants for the binary field of the Service object."},{"line_number":11,"context_line":"This enum field are based off the base oslo.versionedobjects enum and field."},{"line_number":12,"context_line":"This also changes over the service object to use the new field and bumps"},{"line_number":13,"context_line":"the version so newer versions know to enforce valid values. Finally,"},{"line_number":14,"context_line":"all uses of strings for comparison and assignment to this field are"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"9abb7d3a_e46b89ef","line":11,"range":{"start_line":11,"start_character":70,"end_line":11,"end_character":76},"updated":"2016-05-31 16:31:58.000000000","message":"Should technically wrap at 72 characters, but not that big a deal.","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"6b1a75c56c85b82e5a70d22e2a81ae7d4b4e1d3a","unresolved":false,"context_lines":[{"line_number":13,"context_line":"new field and bumps the version so newer versions know to enforce valid"},{"line_number":14,"context_line":"values. Finally, all uses of strings for comparison and assignment"},{"line_number":15,"context_line":"to this field are changed over to use the constants defined within the enum."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Id2453cb3939dbb506759f1a1fa0822a2cd1dfedf"},{"line_number":18,"context_line":"Partial-Implements: bp cinder-object-fields"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7aa08908_ed15a89b","line":16,"updated":"2016-06-09 17:38:52.000000000","message":"This commit message explains what is happening here, but not why.\n\nWhat is the motivation for this change?  Why is it better than what we have currently?","commit_id":"a167866fee369efc74aeb4d2f879babff9c15c88"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"2ef779d11c521fd15ac687eab9bc73c001c49e35","unresolved":false,"context_lines":[{"line_number":13,"context_line":"new field and bumps the version so newer versions know to enforce valid"},{"line_number":14,"context_line":"values. Finally, all uses of strings for comparison and assignment"},{"line_number":15,"context_line":"to this field are changed over to use the constants defined within the enum."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Id2453cb3939dbb506759f1a1fa0822a2cd1dfedf"},{"line_number":18,"context_line":"Partial-Implements: bp cinder-object-fields"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7aa08908_a92b5b32","line":16,"in_reply_to":"7aa08908_ed15a89b","updated":"2016-06-10 15:59:42.000000000","message":"Hi Eric,\n\nI have done this change to provide a centralized point of constants for the service binary field which until now was using free-text. Since the field has been changed to use ovo features, all future changes to the service object will see the enforcement of this rule.\n\nAs per my understanding, I believe the best motivation here is type-checking which is more of better programming practice.\n\nIf you feel this is a valid reason, I will edit the commit message accordingly?\n\nRegards,\nKarthik","commit_id":"a167866fee369efc74aeb4d2f879babff9c15c88"}],"cinder/cmd/scheduler.py":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    python_logging.captureWarnings(True)"},{"line_number":53,"context_line":"    utils.monkey_patch()"},{"line_number":54,"context_line":"    gmr.TextGuruMeditation.setup_autorun(version, conf\u003dCONF)"},{"line_number":55,"context_line":"    server \u003d service.Service.create(binary\u003dfields.ServiceBinary."},{"line_number":56,"context_line":"                                    CINDER_SCHEDULER)"},{"line_number":57,"context_line":"    service.serve(server)"},{"line_number":58,"context_line":"    service.wait()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_5f333cf6","line":56,"range":{"start_line":55,"start_character":43,"end_line":56,"end_character":52},"updated":"2016-05-31 16:31:58.000000000","message":"We are trying to avoid wrapping like this since some people don\u0027t use ide\u0027s and its hard to find these when searching. Keep it to a single line.","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"}],"cinder/cmd/volume.py":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            try:"},{"line_number":80,"context_line":"                server \u003d service.Service.create(host\u003dhost,"},{"line_number":81,"context_line":"                                                service_name\u003dbackend,"},{"line_number":82,"context_line":"                                                binary\u003dfields.ServiceBinary."},{"line_number":83,"context_line":"                                                CINDER_VOLUME)"},{"line_number":84,"context_line":"            except Exception:"},{"line_number":85,"context_line":"                msg \u003d _(\u0027Volume service %s failed to start.\u0027) % host"},{"line_number":86,"context_line":"                LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_7f7ba08c","line":83,"range":{"start_line":82,"start_character":55,"end_line":83,"end_character":62},"updated":"2016-05-31 16:31:58.000000000","message":"We are trying to avoid wrapping like this so please keep it to a single line.","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"5dcd3ef86a247ba073bdd2b7e86c8878b15f5bca","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            try:"},{"line_number":80,"context_line":"                server \u003d service.Service.create(host\u003dhost,"},{"line_number":81,"context_line":"                                                service_name\u003dbackend,"},{"line_number":82,"context_line":"                                                binary\u003dfields.ServiceBinary."},{"line_number":83,"context_line":"                                                CINDER_VOLUME)"},{"line_number":84,"context_line":"            except Exception:"},{"line_number":85,"context_line":"                msg \u003d _(\u0027Volume service %s failed to start.\u0027) % host"},{"line_number":86,"context_line":"                LOG.exception(msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_874c35c9","line":83,"range":{"start_line":82,"start_character":55,"end_line":83,"end_character":62},"in_reply_to":"9abb7d3a_7f7ba08c","updated":"2016-05-31 20:03:58.000000000","message":"Ohh ya makes sense. I have gone for a global variable approach in patchset2 as the text does not seem to fit in a single line. \n\nPlease let me know if that\u0027s fine.","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                launcher.launch_service(server)"},{"line_number":93,"context_line":"                service_started \u003d True"},{"line_number":94,"context_line":"    else:"},{"line_number":95,"context_line":"        server \u003d service.Service.create(binary\u003dfields.ServiceBinary."},{"line_number":96,"context_line":"                                        CINDER_VOLUME)"},{"line_number":97,"context_line":"        launcher.launch_service(server)"},{"line_number":98,"context_line":"        service_started \u003d True"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_bf7188aa","line":96,"range":{"start_line":95,"start_character":47,"end_line":96,"end_character":53},"updated":"2016-05-31 16:31:58.000000000","message":"ditto above","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"}],"cinder/tests/unit/test_cmd.py":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        self.assertEqual(CONF.version, version.version_string())"},{"line_number":106,"context_line":"        log_setup.assert_called_once_with(CONF, \"cinder\")"},{"line_number":107,"context_line":"        monkey_patch.assert_called_once_with()"},{"line_number":108,"context_line":"        service_create.assert_called_once_with(binary\u003dfields.ServiceBinary."},{"line_number":109,"context_line":"                                               CINDER_BACKUP)"},{"line_number":110,"context_line":"        service_serve.assert_called_once_with(server)"},{"line_number":111,"context_line":"        service_wait.assert_called_once_with()"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_dff1ec02","line":109,"range":{"start_line":108,"start_character":54,"end_line":109,"end_character":60},"updated":"2016-05-31 16:31:58.000000000","message":"Try to keep it to a single line.","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        wsgi_service.assert_called_once_with(\u0027osapi_volume\u0027)"},{"line_number":151,"context_line":"        launcher.launch_service.assert_any_call(server, workers\u003dserver.workers)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        service_create.assert_has_calls([mock.call(binary\u003dfields.ServiceBinary"},{"line_number":154,"context_line":"                                                   .CINDER_SCHEDULER),"},{"line_number":155,"context_line":"                                         mock.call(binary\u003dfields.ServiceBinary"},{"line_number":156,"context_line":"                                                   .CINDER_BACKUP),"},{"line_number":157,"context_line":"                                         mock.call(binary\u003dfields.ServiceBinary"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_bff6a8f6","line":154,"range":{"start_line":153,"start_character":59,"end_line":154,"end_character":69},"updated":"2016-05-31 16:31:58.000000000","message":"ditto above","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        service_create.assert_has_calls([mock.call(binary\u003dfields.ServiceBinary"},{"line_number":154,"context_line":"                                                   .CINDER_SCHEDULER),"},{"line_number":155,"context_line":"                                         mock.call(binary\u003dfields.ServiceBinary"},{"line_number":156,"context_line":"                                                   .CINDER_BACKUP),"},{"line_number":157,"context_line":"                                         mock.call(binary\u003dfields.ServiceBinary"},{"line_number":158,"context_line":"                                                   .CINDER_VOLUME)])"},{"line_number":159,"context_line":"        self.assertEqual(3, service_create.call_count)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_ffdcb074","line":156,"range":{"start_line":155,"start_character":60,"end_line":156,"end_character":65},"updated":"2016-05-31 16:31:58.000000000","message":"ditto","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                                                   .CINDER_SCHEDULER),"},{"line_number":155,"context_line":"                                         mock.call(binary\u003dfields.ServiceBinary"},{"line_number":156,"context_line":"                                                   .CINDER_BACKUP),"},{"line_number":157,"context_line":"                                         mock.call(binary\u003dfields.ServiceBinary"},{"line_number":158,"context_line":"                                                   .CINDER_VOLUME)])"},{"line_number":159,"context_line":"        self.assertEqual(3, service_create.call_count)"},{"line_number":160,"context_line":"        launcher.launch_service.assert_has_calls([mock.call(service)] * 3)"},{"line_number":161,"context_line":"        self.assertEqual(4, launcher.launch_service.call_count)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_9fd2c45a","line":158,"range":{"start_line":157,"start_character":63,"end_line":158,"end_character":62},"updated":"2016-05-31 16:31:58.000000000","message":"ditto","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        wsgi_service.assert_called_once_with(\u0027osapi_volume\u0027)"},{"line_number":192,"context_line":"        launcher.launch_service.assert_any_call(server, workers\u003dserver.workers)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        service_create.assert_has_calls([mock.call(binary\u003dfields.ServiceBinary"},{"line_number":195,"context_line":"                                                   .CINDER_SCHEDULER),"},{"line_number":196,"context_line":"                                         mock.call(binary\u003dfields.ServiceBinary"},{"line_number":197,"context_line":"                                                   .CINDER_BACKUP),"},{"line_number":198,"context_line":"                                         mock.call(binary\u003dfields.ServiceBinary"},{"line_number":199,"context_line":"                                                   .CINDER_VOLUME,"},{"line_number":200,"context_line":"                                                   host\u003d\u0027host@backend1\u0027,"},{"line_number":201,"context_line":"                                                   service_name\u003d\u0027backend1\u0027)])"},{"line_number":202,"context_line":"        self.assertEqual(3, service_create.call_count)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_9f3924a7","line":199,"range":{"start_line":194,"start_character":59,"end_line":199,"end_character":66},"updated":"2016-05-31 16:31:58.000000000","message":"ditto for these","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":315,"context_line":"        self.assertEqual(CONF.version, version.version_string())"},{"line_number":316,"context_line":"        log_setup.assert_called_once_with(CONF, \"cinder\")"},{"line_number":317,"context_line":"        monkey_patch.assert_called_once_with()"},{"line_number":318,"context_line":"        service_create.assert_called_once_with(binary\u003dfields.ServiceBinary"},{"line_number":319,"context_line":"                                               .CINDER_SCHEDULER)"},{"line_number":320,"context_line":"        service_serve.assert_called_once_with(server)"},{"line_number":321,"context_line":"        service_wait.assert_called_once_with()"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_1f4ed43a","line":320,"range":{"start_line":318,"start_character":58,"end_line":320,"end_character":53},"updated":"2016-05-31 16:31:58.000000000","message":"ditto","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        log_setup.assert_called_once_with(CONF, \"cinder\")"},{"line_number":349,"context_line":"        monkey_patch.assert_called_once_with()"},{"line_number":350,"context_line":"        get_launcher.assert_called_once_with()"},{"line_number":351,"context_line":"        service_create.assert_called_once_with(binary\u003dfields."},{"line_number":352,"context_line":"                                               ServiceBinary.CINDER_VOLUME)"},{"line_number":353,"context_line":"        launcher.launch_service.assert_called_once_with(server)"},{"line_number":354,"context_line":"        launcher.wait.assert_called_once_with()"},{"line_number":355,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_3f5118d9","line":352,"range":{"start_line":351,"start_character":51,"end_line":352,"end_character":68},"updated":"2016-05-31 16:31:58.000000000","message":"ditto","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"}],"cinder/tests/unit/test_db_api.py":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            (services, db.service_get_all(self.ctxt, {})),"},{"line_number":198,"context_line":"            (services, db.service_get_all(self.ctxt)),"},{"line_number":199,"context_line":"            (expected, db.service_get_all(self.ctxt, {\u0027host\u0027: \u0027host1\u0027})),"},{"line_number":200,"context_line":"            (expected_bin, db.service_get_all(self.ctxt, {\u0027binary\u0027: fields."},{"line_number":201,"context_line":"                                              ServiceBinary.CINDER_BACKUP})),"},{"line_number":202,"context_line":"            (disabled_services, db.service_get_all(self.ctxt,"},{"line_number":203,"context_line":"                                                   {\u0027disabled\u0027: True})),"},{"line_number":204,"context_line":"            (non_disabled_services, db.service_get_all(self.ctxt,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_5f6b3c85","line":201,"range":{"start_line":200,"start_character":69,"end_line":201,"end_character":71},"updated":"2016-05-31 16:31:58.000000000","message":"Keep to a single line.","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"48437d47068e1a934ea7810cc41002961aeede6f","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        ]"},{"line_number":231,"context_line":"        services \u003d [self._create_service(vals) for vals in values]"},{"line_number":232,"context_line":"        expected \u003d services[:3]"},{"line_number":233,"context_line":"        real \u003d db.service_get_all_by_binary(self.ctxt, fields.ServiceBinary"},{"line_number":234,"context_line":"                                            .CINDER_VOLUME)"},{"line_number":235,"context_line":"        self._assertEqualListsOfObjects(expected, real)"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    def test_service_get_by_args(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_bf122807","line":234,"range":{"start_line":233,"start_character":54,"end_line":234,"end_character":58},"updated":"2016-05-31 16:31:58.000000000","message":"ditto above","commit_id":"b1d7acb294fd9d9b062c557558ebdcdb0f8cbd64"}]}
