)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"42a5b3c3bd213fd84a3cfed074278bc470b9bf59","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Introducing new forced_down field for a Service object"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This field is used for mark specified service as down in forceful way."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I7a3d6fc4c66052dd6034269914c75326323bc3f3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba3cc151_6f3ce893","line":10,"updated":"2015-06-29 14:31:50.000000000","message":"Missed to tag your commit message with blueprint implemented here.","commit_id":"02474cd71ff8efb7a39103f4992d2ebb5d86f032"}],"nova/db/sqlalchemy/migrate_repo/versions/294_add_forced_down_for_services.py":[{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"bf7269c23e3081c7feba07904a5ed6094d327b2b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    services.create_column(Column(\u0027forced_down\u0027, Boolean, default\u003dFalse))"},{"line_number":23,"context_line":"    shadow_services.create_column(Column(\u0027forced_down\u0027, Boolean,"},{"line_number":24,"context_line":"                                         default\u003dFalse))"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_d71eed0c","line":25,"updated":"2015-06-26 08:31:22.000000000","message":"Remove blank line","commit_id":"ddd2769ed10528b1899268221e1038a6969415a6"}],"nova/objects/service.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6290d20724e12a3082f36f77b78f3ac7bfa030b1","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        if _target_version \u003c (1, 13) and \u0027last_seen_up\u0027 in primitive:"},{"line_number":75,"context_line":"            del primitive[\u0027last_seen_up\u0027]"},{"line_number":76,"context_line":"        if _target_version \u003c (1, 14) and \u0027forced_down\u0027 in primitive:"},{"line_number":77,"context_line":"            del primitive[\u0027forced_down\u0027]"},{"line_number":78,"context_line":"        if _target_version \u003c (1, 10):"},{"line_number":79,"context_line":"            target_compute_version \u003d self.obj_calculate_child_version("},{"line_number":80,"context_line":"                target_version, \u0027compute_node\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_8ad80581","line":77,"updated":"2015-07-07 06:52:26.000000000","message":"this duplicated with line 72?","commit_id":"67ce492791628efcda6f4ca721c2cf0825919848"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"5b3dd215bd8897ac0db824f2a7400013d523e645","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        if _target_version \u003c (1, 13) and \u0027last_seen_up\u0027 in primitive:"},{"line_number":75,"context_line":"            del primitive[\u0027last_seen_up\u0027]"},{"line_number":76,"context_line":"        if _target_version \u003c (1, 14) and \u0027forced_down\u0027 in primitive:"},{"line_number":77,"context_line":"            del primitive[\u0027forced_down\u0027]"},{"line_number":78,"context_line":"        if _target_version \u003c (1, 10):"},{"line_number":79,"context_line":"            target_compute_version \u003d self.obj_calculate_child_version("},{"line_number":80,"context_line":"                target_version, \u0027compute_node\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_0ebab323","line":77,"in_reply_to":"ba3cc151_8ad80581","updated":"2015-07-07 14:16:58.000000000","message":"Good catch. Fast merging is definitely not a way :(","commit_id":"67ce492791628efcda6f4ca721c2cf0825919848"}],"nova/tests/unit/db/test_db_api.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"22b248f7ad456c9e94026584dfbf594699f01420","unresolved":false,"context_lines":[{"line_number":2872,"context_line":"        service \u003d self._create_service({\u0027forced_down\u0027: True})"},{"line_number":2873,"context_line":"        db.service_update(self.ctxt, service[\u0027id\u0027], {\u0027forced_down\u0027: False})"},{"line_number":2874,"context_line":"        updated_service \u003d db.service_get(self.ctxt, service[\u0027id\u0027])"},{"line_number":2875,"context_line":"        self.assertFalse(updated_service[\u0027forced_down\u0027])"},{"line_number":2876,"context_line":""},{"line_number":2877,"context_line":"    def test_service_get(self):"},{"line_number":2878,"context_line":"        service1 \u003d self._create_service({})"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_ab1b0072","line":2875,"updated":"2015-07-09 12:35:50.000000000","message":"IMHO these tests are not necessary at all but since we have them we can leave them in.","commit_id":"27dcd99e6e8519ca295b770ec455b90be6734656"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1d58036d3cb30324da9e02c2129ff04c9c53dee1","unresolved":false,"context_lines":[{"line_number":2997,"context_line":"        self.assertRaises(exception.ServiceTopicExists, db.service_create,"},{"line_number":2998,"context_line":"                          self.ctxt, values)"},{"line_number":2999,"context_line":""},{"line_number":3000,"context_line":"    def test_wat(self):"},{"line_number":3001,"context_line":"        service1 \u003d self._create_service({\u0027host\u0027: \u0027host1\u0027, \u0027binary\u0027: \u0027foo\u0027})"},{"line_number":3002,"context_line":"        self._create_service({\u0027host\u0027: \u0027host2\u0027, \u0027binary\u0027: \u0027bar\u0027})"},{"line_number":3003,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_48936c5b","line":3000,"updated":"2015-07-09 06:31:22.000000000","message":"the test name is really cryptic here. can you please provide a more comprehensive test name","commit_id":"27dcd99e6e8519ca295b770ec455b90be6734656"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"22b248f7ad456c9e94026584dfbf594699f01420","unresolved":false,"context_lines":[{"line_number":2997,"context_line":"        self.assertRaises(exception.ServiceTopicExists, db.service_create,"},{"line_number":2998,"context_line":"                          self.ctxt, values)"},{"line_number":2999,"context_line":""},{"line_number":3000,"context_line":"    def test_wat(self):"},{"line_number":3001,"context_line":"        service1 \u003d self._create_service({\u0027host\u0027: \u0027host1\u0027, \u0027binary\u0027: \u0027foo\u0027})"},{"line_number":3002,"context_line":"        self._create_service({\u0027host\u0027: \u0027host2\u0027, \u0027binary\u0027: \u0027bar\u0027})"},{"line_number":3003,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_b075abfa","line":3000,"in_reply_to":"ba3cc151_48936c5b","updated":"2015-07-09 12:35:50.000000000","message":"I don\u0027t think we actually need this test, or at least not in this commit. I assume this was just the author trying something out and then staging and committing it by accident","commit_id":"27dcd99e6e8519ca295b770ec455b90be6734656"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"a044233f7e9622ee1cfe9c3b8beb9067f84d2aa8","unresolved":false,"context_lines":[{"line_number":2997,"context_line":"        self.assertRaises(exception.ServiceTopicExists, db.service_create,"},{"line_number":2998,"context_line":"                          self.ctxt, values)"},{"line_number":2999,"context_line":""},{"line_number":3000,"context_line":"    def test_wat(self):"},{"line_number":3001,"context_line":"        service1 \u003d self._create_service({\u0027host\u0027: \u0027host1\u0027, \u0027binary\u0027: \u0027foo\u0027})"},{"line_number":3002,"context_line":"        self._create_service({\u0027host\u0027: \u0027host2\u0027, \u0027binary\u0027: \u0027bar\u0027})"},{"line_number":3003,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_26e645b0","line":3000,"in_reply_to":"ba3cc151_b075abfa","updated":"2015-07-09 13:02:01.000000000","message":"This test is added by accident. will be removed in next turn. Sorry about that.","commit_id":"27dcd99e6e8519ca295b770ec455b90be6734656"}],"nova/tests/unit/objects/test_service.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"1d58036d3cb30324da9e02c2129ff04c9c53dee1","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    \u0027binary\u0027: \u0027fake-service\u0027,"},{"line_number":36,"context_line":"    \u0027topic\u0027: \u0027fake-service-topic\u0027,"},{"line_number":37,"context_line":"    \u0027report_count\u0027: 1,"},{"line_number":38,"context_line":"    \u0027forced_down\u0027: False,"},{"line_number":39,"context_line":"    \u0027disabled\u0027: False,"},{"line_number":40,"context_line":"    \u0027disabled_reason\u0027: None,"},{"line_number":41,"context_line":"    \u0027last_seen_up\u0027: None,"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_e874c036","line":38,"updated":"2015-07-09 06:31:22.000000000","message":"is there a chance of adding a test here where this value changes?","commit_id":"27dcd99e6e8519ca295b770ec455b90be6734656"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"3c4b3f58801d8ed0615cb69e0647827e7c10058f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    \u0027binary\u0027: \u0027fake-service\u0027,"},{"line_number":36,"context_line":"    \u0027topic\u0027: \u0027fake-service-topic\u0027,"},{"line_number":37,"context_line":"    \u0027report_count\u0027: 1,"},{"line_number":38,"context_line":"    \u0027forced_down\u0027: False,"},{"line_number":39,"context_line":"    \u0027disabled\u0027: False,"},{"line_number":40,"context_line":"    \u0027disabled_reason\u0027: None,"},{"line_number":41,"context_line":"    \u0027last_seen_up\u0027: None,"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_2a2e0743","line":38,"in_reply_to":"ba3cc151_e874c036","updated":"2015-07-09 13:40:33.000000000","message":"Garyk, I can write a test cases which will check if update forced_down flag will change the object state, but I think (similar to Nikola) that there is no value of such test.","commit_id":"27dcd99e6e8519ca295b770ec455b90be6734656"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"22b248f7ad456c9e94026584dfbf594699f01420","unresolved":false,"context_lines":[{"line_number":35,"context_line":"    \u0027binary\u0027: \u0027fake-service\u0027,"},{"line_number":36,"context_line":"    \u0027topic\u0027: \u0027fake-service-topic\u0027,"},{"line_number":37,"context_line":"    \u0027report_count\u0027: 1,"},{"line_number":38,"context_line":"    \u0027forced_down\u0027: False,"},{"line_number":39,"context_line":"    \u0027disabled\u0027: False,"},{"line_number":40,"context_line":"    \u0027disabled_reason\u0027: None,"},{"line_number":41,"context_line":"    \u0027last_seen_up\u0027: None,"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba3cc151_2bdb7050","line":38,"in_reply_to":"ba3cc151_e874c036","updated":"2015-07-09 12:35:50.000000000","message":"what would that be testing? that fields work as expected? IMHO this is not required","commit_id":"27dcd99e6e8519ca295b770ec455b90be6734656"}]}
