)]}'
{"nova/api/openstack/compute/services.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ad877c73e3eecea812a4d0b32d8a9b2b48d5afd5","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    def _forced_down(self, body, context):"},{"line_number":135,"context_line":"        \"\"\"Set or unset forced_down flag for the service\"\"\""},{"line_number":136,"context_line":"        try:"},{"line_number":137,"context_line":"            forced_down \u003d strutils.bool_from_string(body[\"forced_down\"])"},{"line_number":138,"context_line":"        except KeyError:"},{"line_number":139,"context_line":"            msg \u003d _(\u0027Missing forced_down field\u0027)"},{"line_number":140,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_3ec77415","line":137,"range":{"start_line":137,"start_character":35,"end_line":137,"end_character":51},"updated":"2017-06-12 19:57:48.000000000","message":"This should be strict\u003dTrue right? Otherwise anything that\u0027s not None equates to True.","commit_id":"5b59cd3e8debc90a4193eb38c1b21d33108d2cfb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"37ea3eeed97da901fdf280d6d0bc057ac1c02e2c","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    def _forced_down(self, body, context):"},{"line_number":135,"context_line":"        \"\"\"Set or unset forced_down flag for the service\"\"\""},{"line_number":136,"context_line":"        try:"},{"line_number":137,"context_line":"            forced_down \u003d strutils.bool_from_string(body[\"forced_down\"])"},{"line_number":138,"context_line":"        except KeyError:"},{"line_number":139,"context_line":"            msg \u003d _(\u0027Missing forced_down field\u0027)"},{"line_number":140,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_3e1ad47c","line":137,"range":{"start_line":137,"start_character":35,"end_line":137,"end_character":51},"in_reply_to":"7f231b9d_3ec77415","updated":"2017-06-12 20:04:27.000000000","message":"Ken\u0027ichi pointed out that the jsonschema validation will catch other things, but we don\u0027t have a test for that, like passing forced_down\u003d\u0027invalid\u0027.","commit_id":"5b59cd3e8debc90a4193eb38c1b21d33108d2cfb"}],"nova/tests/unit/api/openstack/compute/test_services.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"578c14b347dde1567fac968abdd4816be2a77c86","unresolved":false,"context_lines":[{"line_number":906,"context_line":""},{"line_number":907,"context_line":"    def test_force_down_service_with_string_forced_down(self):"},{"line_number":908,"context_line":"        req \u003d FakeRequest(self.wsgi_api_version)"},{"line_number":909,"context_line":"        req_body \u003d {\"forced_down\": \"True\","},{"line_number":910,"context_line":"                    \"host\": \"host1\", \"binary\": \"nova-compute\"}"},{"line_number":911,"context_line":"        res_dict \u003d self.controller.update(req, \u0027force-down\u0027, body\u003dreq_body)"},{"line_number":912,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_5e1eb0ba","line":909,"range":{"start_line":909,"start_character":36,"end_line":909,"end_character":40},"updated":"2017-06-12 19:55:48.000000000","message":"\"on\" or \"yes\" would be slightly more interesting, but this works.","commit_id":"5b59cd3e8debc90a4193eb38c1b21d33108d2cfb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8d56e26363fe70ba06f799ecf92847257fd3c630","unresolved":false,"context_lines":[{"line_number":906,"context_line":""},{"line_number":907,"context_line":"    def test_force_down_service_with_string_forced_down(self):"},{"line_number":908,"context_line":"        req \u003d FakeRequest(self.wsgi_api_version)"},{"line_number":909,"context_line":"        req_body \u003d {\"forced_down\": \"True\","},{"line_number":910,"context_line":"                    \"host\": \"host1\", \"binary\": \"nova-compute\"}"},{"line_number":911,"context_line":"        res_dict \u003d self.controller.update(req, \u0027force-down\u0027, body\u003dreq_body)"},{"line_number":912,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_5efa3042","line":909,"range":{"start_line":909,"start_character":36,"end_line":909,"end_character":40},"in_reply_to":"7f231b9d_5e1eb0ba","updated":"2017-06-12 19:58:54.000000000","message":"If you\u0027re not using strict\u003dTrue, you could pass \"invalid\" and it would equate to True, which I don\u0027t think is what we want.","commit_id":"5b59cd3e8debc90a4193eb38c1b21d33108d2cfb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c3120bbcea3bd4c84173eb50031606c32e98ed1e","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        super(FakeRequest, self).__init__()"},{"line_number":118,"context_line":"        self.api_version_request \u003d api_version.APIVersionRequest(version)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def is_legacy_v2(self):"},{"line_number":121,"context_line":"        return False"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"class FakeRequestWithService(FakeRequest):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f231b9d_b9a27e99","line":121,"range":{"start_line":120,"start_character":4,"end_line":121,"end_character":20},"updated":"2017-06-12 20:18:00.000000000","message":"You don\u0027t actually need this since you\u0027re specifying body as a kwarg.","commit_id":"460917f6d09b4fdf21d8453d89dd9cae209de37b"}]}
