)]}'
{"ironic_tempest_plugin/services/baremetal/v1/json/baremetal_client.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"be15a9951b47a7163efc31dbdfed167b6101399d","unresolved":false,"context_lines":[{"line_number":642,"context_line":"        return resp, self.deserialize(body)"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    @base.handle_errors"},{"line_number":645,"context_line":"    def list_node_traits(self, uuid):"},{"line_number":646,"context_line":"        \"\"\"List all traits associated with the node.\"\"\""},{"line_number":647,"context_line":"        return self._list_request(\u0027/nodes/%s/traits\u0027 % uuid)"},{"line_number":648,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_3aec0a28","line":645,"updated":"2018-01-23 19:11:18.000000000","message":"nit (to be consistent with your other tests) add a docstring","commit_id":"6963269e04a7047deb3b0fc9efddd721cc304c83"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e1a467d41976c97741eb8c642d8bff24b0c6586e","unresolved":false,"context_lines":[{"line_number":642,"context_line":"        return resp, self.deserialize(body)"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    @base.handle_errors"},{"line_number":645,"context_line":"    def list_node_traits(self, uuid):"},{"line_number":646,"context_line":"        \"\"\"List all traits associated with the node.\"\"\""},{"line_number":647,"context_line":"        return self._list_request(\u0027/nodes/%s/traits\u0027 % uuid)"},{"line_number":648,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_dae96680","line":645,"in_reply_to":"7f96bb07_3aec0a28","updated":"2018-01-23 19:31:35.000000000","message":"Done","commit_id":"6963269e04a7047deb3b0fc9efddd721cc304c83"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"be15a9951b47a7163efc31dbdfed167b6101399d","unresolved":false,"context_lines":[{"line_number":673,"context_line":""},{"line_number":674,"context_line":"    @base.handle_errors"},{"line_number":675,"context_line":"    def remove_node_traits(self, node_uuid):"},{"line_number":676,"context_line":"        \"\"\"Remove all traits from the specified node node."},{"line_number":677,"context_line":""},{"line_number":678,"context_line":"        :param node_uuid: Unique identifier of the node in UUID format."},{"line_number":679,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_9adc3e75","line":676,"updated":"2018-01-23 19:11:18.000000000","message":"nit s/node node/node/","commit_id":"6963269e04a7047deb3b0fc9efddd721cc304c83"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e1a467d41976c97741eb8c642d8bff24b0c6586e","unresolved":false,"context_lines":[{"line_number":673,"context_line":""},{"line_number":674,"context_line":"    @base.handle_errors"},{"line_number":675,"context_line":"    def remove_node_traits(self, node_uuid):"},{"line_number":676,"context_line":"        \"\"\"Remove all traits from the specified node node."},{"line_number":677,"context_line":""},{"line_number":678,"context_line":"        :param node_uuid: Unique identifier of the node in UUID format."},{"line_number":679,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_faec6290","line":676,"in_reply_to":"7f96bb07_9adc3e75","updated":"2018-01-23 19:31:35.000000000","message":"Sloppy.","commit_id":"6963269e04a7047deb3b0fc9efddd721cc304c83"}],"ironic_tempest_plugin/tests/api/admin/test_nodes.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"be15a9951b47a7163efc31dbdfed167b6101399d","unresolved":false,"context_lines":[{"line_number":415,"context_line":"                TestNodesTraits.min_microversion)"},{"line_number":416,"context_line":"        )"},{"line_number":417,"context_line":"        _, self.chassis \u003d self.create_chassis()"},{"line_number":418,"context_line":"        self.traits \u003d [\u0027HW_CPU_X86_VMX\u0027, \u0027CUSTOM_TRAIT1\u0027]"},{"line_number":419,"context_line":"        _, self.node \u003d self.create_node(self.chassis[\u0027uuid\u0027])"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"    @decorators.idempotent_id(\u00275c3a2dd0-af10-474d-a209-d30426e1eb5d\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_da82c6c8","line":418,"updated":"2018-01-23 19:11:18.000000000","message":"I\u0027m not sure that this is ever used.","commit_id":"6963269e04a7047deb3b0fc9efddd721cc304c83"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e1a467d41976c97741eb8c642d8bff24b0c6586e","unresolved":false,"context_lines":[{"line_number":415,"context_line":"                TestNodesTraits.min_microversion)"},{"line_number":416,"context_line":"        )"},{"line_number":417,"context_line":"        _, self.chassis \u003d self.create_chassis()"},{"line_number":418,"context_line":"        self.traits \u003d [\u0027HW_CPU_X86_VMX\u0027, \u0027CUSTOM_TRAIT1\u0027]"},{"line_number":419,"context_line":"        _, self.node \u003d self.create_node(self.chassis[\u0027uuid\u0027])"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":"    @decorators.idempotent_id(\u00275c3a2dd0-af10-474d-a209-d30426e1eb5d\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_955e4f10","line":418,"in_reply_to":"7f96bb07_da82c6c8","updated":"2018-01-23 19:31:35.000000000","message":"I think you might be right. I\u0027ll change to start using it as it exercises the standard trait code path.","commit_id":"6963269e04a7047deb3b0fc9efddd721cc304c83"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"be15a9951b47a7163efc31dbdfed167b6101399d","unresolved":false,"context_lines":[{"line_number":695,"context_line":"        \"\"\"Try to remove a trait from a node using an older api version.\"\"\""},{"line_number":696,"context_line":"        self.assertRaises("},{"line_number":697,"context_line":"            lib_exc.NotFound,"},{"line_number":698,"context_line":"            self.client.remove_node_trait, self.node[\u0027uuid\u0027], \u0027CUSTOM_TRAIT1\u0027)"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":701,"context_line":"    @decorators.idempotent_id(\u0027f8375b3c-1939-4d1c-97c4-d23e10680090\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_3a172aa6","line":698,"updated":"2018-01-23 19:11:18.000000000","message":"what\u0027s the http status that was returned?","commit_id":"6963269e04a7047deb3b0fc9efddd721cc304c83"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"e1a467d41976c97741eb8c642d8bff24b0c6586e","unresolved":false,"context_lines":[{"line_number":695,"context_line":"        \"\"\"Try to remove a trait from a node using an older api version.\"\"\""},{"line_number":696,"context_line":"        self.assertRaises("},{"line_number":697,"context_line":"            lib_exc.NotFound,"},{"line_number":698,"context_line":"            self.client.remove_node_trait, self.node[\u0027uuid\u0027], \u0027CUSTOM_TRAIT1\u0027)"},{"line_number":699,"context_line":""},{"line_number":700,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":701,"context_line":"    @decorators.idempotent_id(\u0027f8375b3c-1939-4d1c-97c4-d23e10680090\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_faba226c","line":698,"in_reply_to":"7f96bb07_3a172aa6","updated":"2018-01-23 19:31:35.000000000","message":"NotFound \u003d\u003d 404","commit_id":"6963269e04a7047deb3b0fc9efddd721cc304c83"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"be15a9951b47a7163efc31dbdfed167b6101399d","unresolved":false,"context_lines":[{"line_number":703,"context_line":"        \"\"\"Try to remove all traits from a node using an older api version.\"\"\""},{"line_number":704,"context_line":"        self.assertRaises("},{"line_number":705,"context_line":"            lib_exc.NotFound,"},{"line_number":706,"context_line":"            self.client.remove_node_traits, self.node[\u0027uuid\u0027])"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":709,"context_line":"    @decorators.idempotent_id(\u0027525eeb59-b7ce-413d-a37b-401e67402a4c\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_da0de690","line":706,"updated":"2018-01-23 19:11:18.000000000","message":"ditto","commit_id":"6963269e04a7047deb3b0fc9efddd721cc304c83"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6a319b47dc002e7e9186c19d8444ffb797f1ee9f","unresolved":false,"context_lines":[{"line_number":641,"context_line":"                  \u0027op\u0027: \u0027add\u0027,"},{"line_number":642,"context_line":"                  \u0027value\u0027: [\u0027CUSTOM_TRAIT1\u0027]}]"},{"line_number":643,"context_line":"        self.assertRaises("},{"line_number":644,"context_line":"            lib_exc.BadRequest,"},{"line_number":645,"context_line":"            self.client.update_node, self.node[\u0027uuid\u0027], patch)"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"        _, body \u003d self.client.list_node_traits(self.node[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f93b717_6193e9a4","line":644,"updated":"2018-01-26 17:29:55.000000000","message":"ugh, this is ugly :( we should stop exposing (at least by default) things on nodes that cannot be changed on nodes, but require a separate API","commit_id":"bcdb740e5d40e3dedfc73a1e6fe6b80585621fc2"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"aad08806cf7bd50105a9a85c9381596ee6b0d8c0","unresolved":false,"context_lines":[{"line_number":641,"context_line":"                  \u0027op\u0027: \u0027add\u0027,"},{"line_number":642,"context_line":"                  \u0027value\u0027: [\u0027CUSTOM_TRAIT1\u0027]}]"},{"line_number":643,"context_line":"        self.assertRaises("},{"line_number":644,"context_line":"            lib_exc.BadRequest,"},{"line_number":645,"context_line":"            self.client.update_node, self.node[\u0027uuid\u0027], patch)"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"        _, body \u003d self.client.list_node_traits(self.node[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f93b717_6d4bb3af","line":644,"in_reply_to":"5f93b717_6193e9a4","updated":"2018-01-29 14:52:30.000000000","message":"Oh. That would be inconsistent with existing behaviour :-( Eg, provision_state, maintenance. Is that something we need to discuss?","commit_id":"bcdb740e5d40e3dedfc73a1e6fe6b80585621fc2"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"dede555c1ccf92b2e489e7e882c9044730c408ab","unresolved":false,"context_lines":[{"line_number":641,"context_line":"                  \u0027op\u0027: \u0027add\u0027,"},{"line_number":642,"context_line":"                  \u0027value\u0027: [\u0027CUSTOM_TRAIT1\u0027]}]"},{"line_number":643,"context_line":"        self.assertRaises("},{"line_number":644,"context_line":"            lib_exc.BadRequest,"},{"line_number":645,"context_line":"            self.client.update_node, self.node[\u0027uuid\u0027], patch)"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"        _, body \u003d self.client.list_node_traits(self.node[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f93b717_ed7023df","line":644,"in_reply_to":"5f93b717_6d4bb3af","updated":"2018-01-29 15:00:33.000000000","message":"Yeah, the more I think about this the more I wish traits were just a node field like any other.","commit_id":"bcdb740e5d40e3dedfc73a1e6fe6b80585621fc2"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"6a93c460f3c9c503372a663e3e991510525fc5d1","unresolved":false,"context_lines":[{"line_number":688,"context_line":"        \"\"\"Try to remove a trait from a node using an older api version.\"\"\""},{"line_number":689,"context_line":"        self.assertRaises("},{"line_number":690,"context_line":"            lib_exc.NotFound,"},{"line_number":691,"context_line":"            self.client.remove_node_trait, self.node[\u0027uuid\u0027], \u0027CUSTOM_TRAIT1\u0027)"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":694,"context_line":"    @decorators.idempotent_id(\u0027f8375b3c-1939-4d1c-97c4-d23e10680090\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_ab03ea41","line":691,"updated":"2018-01-23 21:20:23.000000000","message":"nit, would be good to put self.assertEqual(404, exc.resp.status)","commit_id":"bcdb740e5d40e3dedfc73a1e6fe6b80585621fc2"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"6a93c460f3c9c503372a663e3e991510525fc5d1","unresolved":false,"context_lines":[{"line_number":696,"context_line":"        \"\"\"Try to remove all traits from a node using an older api version.\"\"\""},{"line_number":697,"context_line":"        self.assertRaises("},{"line_number":698,"context_line":"            lib_exc.NotFound,"},{"line_number":699,"context_line":"            self.client.remove_node_traits, self.node[\u0027uuid\u0027])"},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"    @decorators.attr(type\u003d\u0027negative\u0027)"},{"line_number":702,"context_line":"    @decorators.idempotent_id(\u0027525eeb59-b7ce-413d-a37b-401e67402a4c\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f96bb07_6bfde238","line":699,"updated":"2018-01-23 21:20:23.000000000","message":"ditto","commit_id":"bcdb740e5d40e3dedfc73a1e6fe6b80585621fc2"}]}
