)]}'
{"ironic/api/controllers/v1/node.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"05af65b7edc8bbf42a4c37a4f16ed5099da7b856","unresolved":false,"context_lines":[{"line_number":2124,"context_line":"                generic_update \u003d True"},{"line_number":2125,"context_line":""},{"line_number":2126,"context_line":"        # always do at least one check"},{"line_number":2127,"context_line":"        if generic_update or policy_checks \u003d\u003d []:"},{"line_number":2128,"context_line":"            policy_checks.append(\u0027baremetal:node:update\u0027)"},{"line_number":2129,"context_line":""},{"line_number":2130,"context_line":"        rpc_node \u003d api_utils.check_multiple_node_policies_and_retrieve("}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_d26b881c","line":2127,"updated":"2020-03-17 10:03:29.000000000","message":"nit: \"not policy_checks\"","commit_id":"16a2473b82565c5c2258f3a3b2674fca28bb8070"}],"ironic/tests/unit/api/controllers/v1/test_node.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"05af65b7edc8bbf42a4c37a4f16ed5099da7b856","unresolved":false,"context_lines":[{"line_number":3400,"context_line":"        self.assertEqual(\u0027application/json\u0027, response.content_type)"},{"line_number":3401,"context_line":"        self.assertEqual(http_client.NOT_ACCEPTABLE, response.status_code)"},{"line_number":3402,"context_line":""},{"line_number":3403,"context_line":"    @mock.patch.object(api_utils, \u0027check_multiple_node_policies_and_retrieve\u0027)"},{"line_number":3404,"context_line":"    def test_patch_policy_update(self, mock_cmnpar):"},{"line_number":3405,"context_line":"        node \u003d obj_utils.create_test_node(self.context,"},{"line_number":3406,"context_line":"                                          uuid\u003duuidutils.generate_uuid())"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_927510fd","line":3403,"updated":"2020-03-17 10:03:29.000000000","message":"nit: autospec\u003dTrue","commit_id":"16a2473b82565c5c2258f3a3b2674fca28bb8070"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"05af65b7edc8bbf42a4c37a4f16ed5099da7b856","unresolved":false,"context_lines":[{"line_number":3417,"context_line":"        mock_cmnpar.assert_called_once_with("},{"line_number":3418,"context_line":"            [\u0027baremetal:node:update\u0027], node.uuid, with_suffix\u003dTrue)"},{"line_number":3419,"context_line":""},{"line_number":3420,"context_line":"    @mock.patch.object(api_utils, \u0027check_multiple_node_policies_and_retrieve\u0027)"},{"line_number":3421,"context_line":"    def test_patch_policy_update_none(self, mock_cmnpar):"},{"line_number":3422,"context_line":"        node \u003d obj_utils.create_test_node(self.context,"},{"line_number":3423,"context_line":"                                          uuid\u003duuidutils.generate_uuid())"}],"source_content_type":"text/x-python","patch_set":3,"id":"1fa4df85_b2704c0a","line":3420,"updated":"2020-03-17 10:03:29.000000000","message":"ditto","commit_id":"16a2473b82565c5c2258f3a3b2674fca28bb8070"}],"releasenotes/notes/node-update-instance-info-extra-policies-862b2a70b941cf39.yaml":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f5561689d1038a0083e315b6fcfa97e987dc09c6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In order to use standalone Ironic to provision a node, a user must be"},{"line_number":5,"context_line":"    able to update a few node attributes. This is fine for an admin or owner;"},{"line_number":6,"context_line":"    however a lessee should not be allowed to arbitrarily update any node"},{"line_number":7,"context_line":"    attribute. Adding individual policies that allow a user to update"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_4968c520","line":4,"updated":"2020-02-13 21:23:04.000000000","message":"It would be best to reorder this to state what was added and then explain what so that we don\u0027t have to rewrite it to meet the desired format for the release notes later.","commit_id":"7e5c9fc2d193aa890ba654697c5264c81a15a66b"},{"author":{"_account_id":7386,"name":"Tzu-Mainn Chen","email":"tzumainn@redhat.com","username":"tzumainn"},"change_message_id":"1e5f8f53c246bcacb2aeb91ec9df14bddf6c0e54","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In order to use standalone Ironic to provision a node, a user must be"},{"line_number":5,"context_line":"    able to update a few node attributes. This is fine for an admin or owner;"},{"line_number":6,"context_line":"    however a lessee should not be allowed to arbitrarily update any node"},{"line_number":7,"context_line":"    attribute. Adding individual policies that allow a user to update"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_6f6021d1","line":4,"in_reply_to":"3fa7e38b_4968c520","updated":"2020-02-13 23:05:13.000000000","message":"Good point! I\u0027ve updated the release note text. Thanks!","commit_id":"7e5c9fc2d193aa890ba654697c5264c81a15a66b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"05af65b7edc8bbf42a4c37a4f16ed5099da7b856","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Adds ``baremetal:node:update_extra`` and ``baremetal:node:instance_info``"},{"line_number":5,"context_line":"    policies to allow finer-grained policy control over node updates. In order"},{"line_number":6,"context_line":"    to use standalone Ironic to provision a node, a user must be able to"},{"line_number":7,"context_line":"    update these attributes, and a lessee should not be able to update all"},{"line_number":8,"context_line":"    node attributes."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1fa4df85_f266c455","line":6,"updated":"2020-03-17 10:03:29.000000000","message":"the \"must\" bit only concerns instance_info, the usage of extra is an idiosyncrasy of metalsmith","commit_id":"16a2473b82565c5c2258f3a3b2674fca28bb8070"}]}
