)]}'
{"api-ref/source/os-hosts.inc":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cac11c6f92e318ecb3cbfa29aacc97cf55d3d9b9","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. -*- rst -*-"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":" Hosts (os-hosts)"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":".. warning::"}],"source_content_type":"text/x-c++src","patch_set":3,"id":"7ffa3b31_1ce467e0","line":4,"updated":"2017-04-19 23:45:04.000000000","message":"We need to put \"(DEPRECATED)\" in the title like the other deprecated APIs. And move this down in the index for the api-ref.","commit_id":"5d9d88679db7e989c3bdf8cb30debf77d167c67f"}],"nova/api/openstack/api_version_request.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a9c8d19c970efd155e26274bdf2cf5456f85b090","unresolved":false,"context_lines":[{"line_number":111,"context_line":"# Note(cyeoh): This only applies for the v2.1 API once microversions"},{"line_number":112,"context_line":"# support is fully merged. It does not affect the V2 API."},{"line_number":113,"context_line":"_MIN_API_VERSION \u003d \"2.1\""},{"line_number":114,"context_line":"_MAX_API_VERSION \u003d \"2.43\""},{"line_number":115,"context_line":"DEFAULT_API_VERSION \u003d _MIN_API_VERSION"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"# Almost all proxy APIs which related to network, images and baremetal"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ff52f3f_8b5b0386","line":114,"updated":"2017-04-13 13:38:07.000000000","message":"There will be some functional tests that you have to update for this for the GET /versions API.","commit_id":"c6600a57714b4e3b5e2a43c16f3876c7c81b94a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a9c8d19c970efd155e26274bdf2cf5456f85b090","unresolved":false,"context_lines":[{"line_number":123,"context_line":"MAX_IMAGE_META_PROXY_API_VERSION \u003d \u00272.38\u0027"},{"line_number":124,"context_line":"MIN_WITHOUT_IMAGE_META_PROXY_API_VERSION \u003d \u00272.39\u0027"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"# Starting from microversion 2.43 also os-hosts API is deprecated."},{"line_number":127,"context_line":"MAX_OS_HOST_API_VERSION \u003d \u00272.42\u0027"},{"line_number":128,"context_line":"MIN_WITHOUT_OS_HOST_API_VERSION \u003d \u00272.43\u0027"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# NOTE(cyeoh): min and max versions declared as functions so we can"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ff52f3f_ab1807d3","line":128,"range":{"start_line":126,"start_character":0,"end_line":128,"end_character":40},"updated":"2017-04-13 13:38:07.000000000","message":"This gets a bit confusing. The other constants in here were for changes to multiple APIs. Since the os-hosts deprecation is all self-contained, I think we can just hard-code it in that single API.","commit_id":"c6600a57714b4e3b5e2a43c16f3876c7c81b94a2"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4e8228b9cb690b038f7b1664fb920954e79eb915","unresolved":false,"context_lines":[{"line_number":123,"context_line":"MAX_IMAGE_META_PROXY_API_VERSION \u003d \u00272.38\u0027"},{"line_number":124,"context_line":"MIN_WITHOUT_IMAGE_META_PROXY_API_VERSION \u003d \u00272.39\u0027"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"# Starting from microversion 2.43 also os-hosts API is deprecated."},{"line_number":127,"context_line":"MAX_OS_HOST_API_VERSION \u003d \u00272.42\u0027"},{"line_number":128,"context_line":"MIN_WITHOUT_OS_HOST_API_VERSION \u003d \u00272.43\u0027"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# NOTE(cyeoh): min and max versions declared as functions so we can"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ffa3b31_4c23a006","line":128,"range":{"start_line":126,"start_character":0,"end_line":128,"end_character":40},"in_reply_to":"9ff52f3f_ab1807d3","updated":"2017-04-18 08:29:56.000000000","message":"yea we can decorate host API till 2.42","commit_id":"c6600a57714b4e3b5e2a43c16f3876c7c81b94a2"}],"nova/api/openstack/compute/hosts.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4e8228b9cb690b038f7b1664fb920954e79eb915","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.api \u003d compute.HostAPI()"},{"line_number":43,"context_line":"        super(HostController, self).__init__()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @wsgi.Controller.api_version(\"2.1\", MAX_OS_HOST_API_VERSION)"},{"line_number":46,"context_line":"    @extensions.expected_errors(())"},{"line_number":47,"context_line":"    def index(self, req):"},{"line_number":48,"context_line":"        \"\"\"Returns a dict in the format"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ffa3b31_2cfe1437","line":45,"range":{"start_line":45,"start_character":40,"end_line":45,"end_character":63},"updated":"2017-04-18 08:29:56.000000000","message":"\"2.42\"","commit_id":"c6600a57714b4e3b5e2a43c16f3876c7c81b94a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a9c8d19c970efd155e26274bdf2cf5456f85b090","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        self.api \u003d compute.HostAPI()"},{"line_number":43,"context_line":"        super(HostController, self).__init__()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @wsgi.Controller.api_version(\"2.1\", MAX_OS_HOST_API_VERSION)"},{"line_number":46,"context_line":"    @extensions.expected_errors(())"},{"line_number":47,"context_line":"    def index(self, req):"},{"line_number":48,"context_line":"        \"\"\"Returns a dict in the format"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ff52f3f_cbc6ab17","line":45,"updated":"2017-04-13 13:38:07.000000000","message":"We should probably have a unit test for each deprecated API which simply calls the API at the 2.43 microversion and asserts we get a 404.","commit_id":"c6600a57714b4e3b5e2a43c16f3876c7c81b94a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a9c8d19c970efd155e26274bdf2cf5456f85b090","unresolved":false,"context_lines":[{"line_number":191,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003de.format_message())"},{"line_number":192,"context_line":"        return {\"host\": host_name, \"power_action\": result}"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    @wsgi.Controller.api_version(\"2.1\", MAX_OS_HOST_API_VERSION) "},{"line_number":195,"context_line":"    @extensions.expected_errors((400, 404, 501))"},{"line_number":196,"context_line":"    def startup(self, req, id):"},{"line_number":197,"context_line":"        return self._host_power_action(req, host_name\u003did, action\u003d\"startup\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ff52f3f_8b0d4392","line":194,"range":{"start_line":194,"start_character":64,"end_line":194,"end_character":65},"updated":"2017-04-13 13:38:07.000000000","message":"whitespace","commit_id":"c6600a57714b4e3b5e2a43c16f3876c7c81b94a2"}],"nova/api/openstack/compute/rest_api_version_history.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a9c8d19c970efd155e26274bdf2cf5456f85b090","unresolved":false,"context_lines":[{"line_number":483,"context_line":"  2.42 restores the tag parameter to both networks and block_device_mapping_v2,"},{"line_number":484,"context_line":"  allowing networks and block devices to be tagged again."},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"2.43"},{"line_number":487,"context_line":"----"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"  Deprecate os-hosts API that can be achieved by os-services and os-hypervisors"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ff52f3f_cb610b3c","line":486,"updated":"2017-04-13 13:38:07.000000000","message":"We should also have a release note for this.","commit_id":"c6600a57714b4e3b5e2a43c16f3876c7c81b94a2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a9c8d19c970efd155e26274bdf2cf5456f85b090","unresolved":false,"context_lines":[{"line_number":486,"context_line":"2.43"},{"line_number":487,"context_line":"----"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"  Deprecate os-hosts API that can be achieved by os-services and os-hypervisors"},{"line_number":490,"context_line":"  API with same functionalities."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ff52f3f_0b76d307","line":490,"range":{"start_line":489,"start_character":2,"end_line":490,"end_character":32},"updated":"2017-04-13 13:38:07.000000000","message":"I would reword this to say something like:\n\nThe ``os-hosts`` API is deprecated. To list and show host details, use the ``os-hypervisors`` API. To enable or disable a service, use the ``os-services`` API.","commit_id":"c6600a57714b4e3b5e2a43c16f3876c7c81b94a2"}],"nova/tests/unit/api/openstack/compute/test_hosts.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5cc85dacbfd5366583501be7a2b96e02914eb067","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    return inst"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"class FakeRequestWithNovaZone(object):"},{"line_number":132,"context_line":"    environ \u003d {\"nova.context\": context_maker.get_admin_context()}"},{"line_number":133,"context_line":"    GET \u003d {\"zone\": \"nova\"}"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_d7b00d46","line":131,"updated":"2017-04-20 09:40:17.000000000","message":"So this can be removed?","commit_id":"b8463947bcf5acea2f69b63bc47d052327d95ce4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5cc85dacbfd5366583501be7a2b96e02914eb067","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                              self.controller.show, self.req, s_ref[\u0027host\u0027])"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    def test_list_hosts_with_zone(self):"},{"line_number":384,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027\u0027, use_admin_context\u003dTrue)"},{"line_number":385,"context_line":"        result \u003d self.controller.index(req)"},{"line_number":386,"context_line":"        self.assertIn(\u0027hosts\u0027, result)"},{"line_number":387,"context_line":"        hosts \u003d result[\u0027hosts\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_173f9587","line":384,"updated":"2017-04-20 09:40:17.000000000","message":"You should specify the query string? But I feel this change useless with this change.","commit_id":"b8463947bcf5acea2f69b63bc47d052327d95ce4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"118e20be98853269d8c49146538d92ffc4492ddb","unresolved":false,"context_lines":[{"line_number":381,"context_line":"                              self.controller.show, self.req, s_ref[\u0027host\u0027])"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    def test_list_hosts_with_zone(self):"},{"line_number":384,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027\u0027, use_admin_context\u003dTrue)"},{"line_number":385,"context_line":"        result \u003d self.controller.index(req)"},{"line_number":386,"context_line":"        self.assertIn(\u0027hosts\u0027, result)"},{"line_number":387,"context_line":"        hosts \u003d result[\u0027hosts\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_6f4ef26f","line":384,"in_reply_to":"7ffa3b31_173f9587","updated":"2017-04-20 15:33:23.000000000","message":"Not sure why jichenjc changed this. I\u0027ll investigate.","commit_id":"b8463947bcf5acea2f69b63bc47d052327d95ce4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5cc85dacbfd5366583501be7a2b96e02914eb067","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        result \u003d self.controller.index(req)"},{"line_number":386,"context_line":"        self.assertIn(\u0027hosts\u0027, result)"},{"line_number":387,"context_line":"        hosts \u003d result[\u0027hosts\u0027]"},{"line_number":388,"context_line":"        self.assertEqual(fake_hosts.HOST_LIST_NOVA_ZONE, hosts)"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"class HostsPolicyEnforcementV21(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_77fdb9af","line":388,"updated":"2017-04-20 09:40:17.000000000","message":"The test looks like wrong. Without query string, it still can pass. But I feel we should fix this test in another patch.","commit_id":"b8463947bcf5acea2f69b63bc47d052327d95ce4"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"d97a56630c605aec87b154c13585b726d6a9ed48","unresolved":false,"context_lines":[{"line_number":132,"context_line":"class FakeRequestWithNovaZone(object):"},{"line_number":133,"context_line":"    environ \u003d {\"nova.context\": context_maker.get_admin_context()}"},{"line_number":134,"context_line":"    GET \u003d {\"zone\": \"nova\"}"},{"line_number":135,"context_line":"    api_version_request \u003d api_version.APIVersionRequest(\u00272.1\u0027)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"class HostTestCaseV21(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7ffa3b31_a6108e58","line":135,"range":{"start_line":135,"start_character":26,"end_line":135,"end_character":37},"updated":"2017-04-21 08:32:27.000000000","message":"thanks for changing this , I thought this is useless at all","commit_id":"aad4be2e3d071aa402d53178689b350436ae4b34"}]}
