)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"8407bc50576357368438ca574c7773e81f718b2b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"4f962af1_e8d879b9","updated":"2024-02-28 06:50:46.000000000","message":"Hi Dmitry,\n\nI updatated the patch to be more in line with prior art with multi-system approach (using the Target property). Please let me know if you are supportive of this direction and I can refine the patch further.\n\nExample calls:\n\n$ curl http://127.0.0.1:8000/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate -X POST -d \u0027{\"ImageURI\": \"http:///test.com/file.img\", \"Target\" : \"591b3f9d-d9b0-4e49-90b0-d1b959fd235f\"\u0027} -H \"Content-Type: application/json\"\n\njanders@carbon:~/git/sushy-tools-biosupdate/sushy-tools/sushy_tools/emulator$ curl http://127.0.0.1:8000/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate -X POST -d \u0027{\"Target\" : \"591b3f9dd-d9b0-4e49-90b0-d1b959fd235f\"}\u0027 -H \"Content-Type: application/json\"\n{\n  \"error\": {\n    \"code\": \"Base.1.0.GeneralError\",\n    \"message\": \"Missing ImageURI and/or Target.\",\n    \"@Message.ExtendedInfo\": [\n      {\n        \"@odata.type\": \"/redfish/v1/$metadata#Message.1.0.0.Message\",\n        \"MessageId\": \"Base.1.0.GeneralError\"\n      }\n    ]\n  }\n}\n$","commit_id":"18b2226283b7e6d85655a1c1492cd166ea3f165c"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"22208544ff778386424667dc7431c84069b4a3f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3be51c3d_1b7abda2","updated":"2024-06-14 14:27:56.000000000","message":"You need to update https://opendev.org/openstack/sushy-tools/src/branch/master/sushy_tools/emulator/templates/root.json to include UpdateService.","commit_id":"806257cca484d11686b1cc6dc376599c6995e9dd"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"bdf4eae813764347f6ab26fd12c73ff3f8f77582","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d871b5f5_1e05c26a","updated":"2024-03-13 20:12:53.000000000","message":"recheck","commit_id":"806257cca484d11686b1cc6dc376599c6995e9dd"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"e813de24cc567e4c8774ef01dd446ee709e054c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"ea373561_f55d42bd","in_reply_to":"3be51c3d_1b7abda2","updated":"2024-06-18 04:57:35.000000000","message":"Good pickup, thank you Iury, will upload revised patch shortly.\nI experienced the issue you explained the other day where Ironic still doesn\u0027t see the entry AFTER this is added, still looking into it","commit_id":"806257cca484d11686b1cc6dc376599c6995e9dd"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"c36d00783ee9687b4ea127cf191f1572681c18a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"6ca34c52_2e76db6e","updated":"2024-07-12 10:39:58.000000000","message":"In general lgtm, just a minor thing in the unit test, worth a release note (seems like we do this in sushy-tools \u003d) )","commit_id":"9c78cf4d0b3af1f2b5c045ad87052f194f14a600"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"3cd3e0202821f8768044245776ba04a53b0d9986","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"2526b311_b48aa40f","updated":"2024-07-12 10:50:19.000000000","message":"Thank you for your review Iury. All done.","commit_id":"7cf3e225cad657eb8a173bb2b2d7640b4a4cc0ce"}],"sushy_tools/emulator/controllers/update_service.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"20d3654b02a49e7130c47f6121ce915f2cb10e25","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"update_service \u003d flask.Blueprint("},{"line_number":20,"context_line":"    \u0027UpdateService\u0027, __name__,"},{"line_number":21,"context_line":"    url_prefix\u003d\u0027/redfish/v1/Systems/\u003cidentity\u003e/UpdateService\u0027)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"@update_service.route(\u0027\u0027, methods\u003d[\u0027GET\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"b03576e1_5afd9db1","line":21,"updated":"2024-02-20 07:45:16.000000000","message":"UpdateService is not a system subresource. I understand it\u0027s easier for us this way, but I suggest not adding something that is basically against the standard and actual implementations.","commit_id":"5f18e5f06d475ecdab0499d17c7b4a881ba0d6e4"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"37eb37e1fdedc88243df94b5a0e7db484e2c084d","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"update_service \u003d flask.Blueprint("},{"line_number":20,"context_line":"    \u0027UpdateService\u0027, __name__,"},{"line_number":21,"context_line":"    url_prefix\u003d\u0027/redfish/v1/Systems/\u003cidentity\u003e/UpdateService\u0027)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"@update_service.route(\u0027\u0027, methods\u003d[\u0027GET\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"447a1f5e_1363f3cc","line":21,"in_reply_to":"4fd6d31b_08b5ed1c","updated":"2024-07-09 10:15:29.000000000","message":"Done","commit_id":"5f18e5f06d475ecdab0499d17c7b4a881ba0d6e4"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"e987e3679ffbd697f538825f77947dfe3afe8366","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"update_service \u003d flask.Blueprint("},{"line_number":20,"context_line":"    \u0027UpdateService\u0027, __name__,"},{"line_number":21,"context_line":"    url_prefix\u003d\u0027/redfish/v1/Systems/\u003cidentity\u003e/UpdateService\u0027)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"@update_service.route(\u0027\u0027, methods\u003d[\u0027GET\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"4fd6d31b_08b5ed1c","line":21,"in_reply_to":"98023813_60cb8421","updated":"2024-03-01 02:13:00.000000000","message":"So, UpdateService doesn\u0027t have an identity, from what I remember the Action for SimpleUpdate will identify the right place by using targets.. but we are not using this (maybe real hardware is just smart enough to understand what needs to be updated based on the image provided...)\n\nTo simplify things I think the url could tell the component that will have an update and we can handle like this.. (https://\u003curl\u003e/component) ?","commit_id":"5f18e5f06d475ecdab0499d17c7b4a881ba0d6e4"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"c8312777751480ab2673db1a8226e5fa7eb89a92","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"update_service \u003d flask.Blueprint("},{"line_number":20,"context_line":"    \u0027UpdateService\u0027, __name__,"},{"line_number":21,"context_line":"    url_prefix\u003d\u0027/redfish/v1/Systems/\u003cidentity\u003e/UpdateService\u0027)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"@update_service.route(\u0027\u0027, methods\u003d[\u0027GET\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"98023813_60cb8421","line":21,"in_reply_to":"b03576e1_5afd9db1","updated":"2024-02-20 09:11:53.000000000","message":"Thank you for your comment Dmitry. I see your point - was in two minds on whether we do it like this or not - I followed prior art related to Virtual Media ( https://opendev.org/openstack/sushy-tools/src/branch/master/sushy_tools/emulator/controllers/virtual_media.py#L21 ) although these are not the same.\n\nIs it better if we go with /redfish/v1/UpdateService/\u003cidentity\u003e instead? I can evaluate such concept.","commit_id":"5f18e5f06d475ecdab0499d17c7b4a881ba0d6e4"}],"sushy_tools/tests/unit/emulator/resources/test_update_service.py":[{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"c36d00783ee9687b4ea127cf191f1572681c18a6","unresolved":true,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        response \u003d self.app.post(\u0027/redfish/v1/UpdateService/Actions/\u0027"},{"line_number":106,"context_line":"                                 \u0027UpdateService.SimpleUpdate\u0027, json\u003dargs)"},{"line_number":107,"context_line":"        print(\"response: \", response.json)"},{"line_number":108,"context_line":"        self.assertEqual(\u0027Base.1.0.GeneralError\u0027,"},{"line_number":109,"context_line":"                         response.json[\u0027error\u0027][\u0027code\u0027])"},{"line_number":110,"context_line":"        self.assertEqual(\u0027Missing ImageURI and/or Targets.\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"a9fea7f5_11629992","line":107,"updated":"2024-07-12 10:39:58.000000000","message":"you probably missed this \u003d)","commit_id":"9c78cf4d0b3af1f2b5c045ad87052f194f14a600"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"3cd3e0202821f8768044245776ba04a53b0d9986","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        response \u003d self.app.post(\u0027/redfish/v1/UpdateService/Actions/\u0027"},{"line_number":106,"context_line":"                                 \u0027UpdateService.SimpleUpdate\u0027, json\u003dargs)"},{"line_number":107,"context_line":"        print(\"response: \", response.json)"},{"line_number":108,"context_line":"        self.assertEqual(\u0027Base.1.0.GeneralError\u0027,"},{"line_number":109,"context_line":"                         response.json[\u0027error\u0027][\u0027code\u0027])"},{"line_number":110,"context_line":"        self.assertEqual(\u0027Missing ImageURI and/or Targets.\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"105ee7e7_a552ae59","line":107,"in_reply_to":"a9fea7f5_11629992","updated":"2024-07-12 10:50:19.000000000","message":"Done","commit_id":"9c78cf4d0b3af1f2b5c045ad87052f194f14a600"}]}
