)]}'
{"heat/engine/resources/openstack/nova/flavor.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"71bb0e0ff771ac7737289f1c33d9fb818c7fde7c","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    default_client_name \u003d \u0027nova\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    required_service_extension \u003d \u0027os-flavor-manage\u0027"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    entity \u003d \u0027flavors\u0027"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_10fde13a","line":44,"range":{"start_line":44,"start_character":4,"end_line":44,"end_character":51},"updated":"2019-11-06 13:57:16.000000000","message":"x","commit_id":"36a617810a2c22224962dafd4da95700337dbc38"}],"heat/engine/resources/openstack/nova/floatingip.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"71bb0e0ff771ac7737289f1c33d9fb818c7fde7c","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        )"},{"line_number":50,"context_line":"    )"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    required_service_extension \u003d \u0027os-floating-ips\u0027"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    PROPERTIES \u003d (POOL,) \u003d (\u0027pool\u0027,)"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_b0f96d4f","line":52,"range":{"start_line":52,"start_character":4,"end_line":52,"end_character":50},"updated":"2019-11-06 13:57:16.000000000","message":"x","commit_id":"36a617810a2c22224962dafd4da95700337dbc38"}],"heat/engine/resources/openstack/nova/host_aggregate.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"71bb0e0ff771ac7737289f1c33d9fb818c7fde7c","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    entity \u003d \u0027aggregates\u0027"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    required_service_extension \u003d \u0027os-aggregates\u0027"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    PROPERTIES \u003d ("},{"line_number":44,"context_line":"        NAME, AVAILABILITY_ZONE, HOSTS, METADATA"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_f084c5b4","line":41,"range":{"start_line":41,"start_character":4,"end_line":41,"end_character":48},"updated":"2019-11-06 13:57:16.000000000","message":"x","commit_id":"36a617810a2c22224962dafd4da95700337dbc38"}],"heat/tests/openstack/nova/test_host_aggregate.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"71bb0e0ff771ac7737289f1c33d9fb818c7fde7c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class NovaHostAggregateTest(common.HeatTestCase):"},{"line_number":40,"context_line":"    def setUp(self):"},{"line_number":41,"context_line":"        super(NovaHostAggregateTest, self).setUp()"},{"line_number":42,"context_line":"        self.patchobject(nova.NovaClientPlugin,"},{"line_number":43,"context_line":"                         \u0027has_extension\u0027,"},{"line_number":44,"context_line":"                         return_value\u003dTrue)"},{"line_number":45,"context_line":"        self.ctx \u003d utils.dummy_context()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_90bf915f","side":"PARENT","line":42,"updated":"2019-11-06 13:57:16.000000000","message":"This test will hopefully fail now","commit_id":"61048ef16b3651c81ac6765c5bf7eec105e023d1"}],"releasenotes/notes/remove-nova-api-extension-934f8389ea42e9e4.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4b01a70b8be29d71008a957758d09afbf1a20cb4","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Nova has removed api extension support and its api bindings."},{"line_number":5,"context_line":"    Heat has now removed support for extensions from nova client"},{"line_number":6,"context_line":"    plugin and the resource plugins using it."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_2ac5093e","line":6,"updated":"2019-11-06 19:21:56.000000000","message":"What does this mean to an operator? Is there anything they have to do? Are there ways to configure heat to enable/disable features that relied on certain nova API extensions? Horizon had configuration for that which is why it was a bit touchier to fix horizon, but if heat doesn\u0027t have anything like that, I\u0027m not sure what this release note buys anyone.","commit_id":"49a2a1e55ad8e723ba774abe90c249e52697e358"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"d1edab22bb3d29ecb550dfd4561b19aaeb90eddd","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Nova has removed api extension support and its api bindings."},{"line_number":5,"context_line":"    Heat has now removed support for extensions from nova client"},{"line_number":6,"context_line":"    plugin and the resource plugins using it."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3fa7e38b_f06fde25","line":6,"in_reply_to":"3fa7e38b_2ac5093e","updated":"2019-11-06 22:40:57.000000000","message":"There can be heat custom resource plugins out there using heat nova client plugin and those would need to change. And yes, resource plugins can be loaded based on api extensions. That\u0027s what \"required_service_extension\" in a resource plugin is all about.","commit_id":"49a2a1e55ad8e723ba774abe90c249e52697e358"}]}
