)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"43e4c7af5df04c1379d13028c08eb8996616203f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Redfish: Add root_prefix to Sushy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds the root_prefix parameter to the sushy context, based on the"},{"line_number":10,"context_line":"user input for `redfish_system_id` parameter."},{"line_number":11,"context_line":"This is needed if the Redfish API is not located in the default"},{"line_number":12,"context_line":"/redfish/v1/ endpoint."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"1fa4df85_c40f2edf","line":10,"updated":"2020-03-02 11:27:13.000000000","message":"Is it `redfish_address`?","commit_id":"b08029c6be85c957055f59b51a9db73c60be3cea"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"c5309439b273f82c67151dcedb13b9771e7a6f78","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     maelk \u003cmael.kimmerlin@est.tech\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-03-02 16:34:11 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Redfish: Add root_prefix to Sushy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds the root_prefix parameter to the sushy context, based on the"},{"line_number":10,"context_line":"user input for `redfish_address` parameter."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"1fa4df85_6d22d654","line":7,"updated":"2020-03-02 16:41:04.000000000","message":"nit: I\u0027d drop Redfish from here","commit_id":"76238f4b458cad8d81ba10efd06473bc66f36d89"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"c5309439b273f82c67151dcedb13b9771e7a6f78","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds the root_prefix parameter to the sushy context, based on the"},{"line_number":10,"context_line":"user input for `redfish_address` parameter."},{"line_number":11,"context_line":"This is needed if the Redfish API is not located in the default"},{"line_number":12,"context_line":"/redfish/v1/ endpoint."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ie886040fef9bc75197a99fe7cc7495c6147edb38"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"1fa4df85_cde0aafd","line":11,"updated":"2020-03-02 16:41:04.000000000","message":"nit: s/located in/mounted on/","commit_id":"76238f4b458cad8d81ba10efd06473bc66f36d89"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"c5309439b273f82c67151dcedb13b9771e7a6f78","unresolved":false,"context_lines":[{"line_number":11,"context_line":"This is needed if the Redfish API is not located in the default"},{"line_number":12,"context_line":"/redfish/v1/ endpoint."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ie886040fef9bc75197a99fe7cc7495c6147edb38"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"1fa4df85_6de73614","line":14,"updated":"2020-03-02 16:41:04.000000000","message":"Do we need a Story for this change?","commit_id":"76238f4b458cad8d81ba10efd06473bc66f36d89"}],"ironic/drivers/modules/redfish/utils.py":[{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"b4eca050a94bb1d4f89d7ac5f101f17715d0b8f4","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                         \u0027must include the authority portion of the URL. \u0027"},{"line_number":38,"context_line":"                         \u0027If the scheme is missing, https is assumed. \u0027"},{"line_number":39,"context_line":"                         \u0027For example: https://mgmt.vendor.com. Required\u0027),"},{"line_number":40,"context_line":"    \u0027redfish_system_id\u0027: _(\u0027The canonical path to the ComputerSystem \u0027"},{"line_number":41,"context_line":"                           \u0027resource that the driver will interact with. \u0027"},{"line_number":42,"context_line":"                           \u0027It should include the root service, version and \u0027"},{"line_number":43,"context_line":"                           \u0027the unique resource path to a ComputerSystem \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_75423d95","line":40,"updated":"2020-02-13 12:09:42.000000000","message":"Actually, we can just extract the prefix from this option. Based on the assumption that `/redfish/v1` is firmly fixed in the standard. Then we could get away with not introducing a new option to ironic driver.","commit_id":"d62de735e7662d0afb5ed71da48bebd3349a4f57"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"b4eca050a94bb1d4f89d7ac5f101f17715d0b8f4","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \u0027redfish_root_prefix\u0027: _(\u0027The URL prefix to the controller API\u0027"},{"line_number":70,"context_line":"                             \u0027This is needed if the Redfish API is not\u0027"},{"line_number":71,"context_line":"                             \u0027located in the default /redfish/v1 endpoint\u0027"},{"line_number":72,"context_line":"                             \u0027For example: /HEL/redfish/v1\u0027)"},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"COMMON_PROPERTIES \u003d REQUIRED_PROPERTIES.copy()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_351365b9","line":72,"updated":"2020-02-13 12:09:42.000000000","message":"Since `/redfish/v1` is canonical part of the URL and can\u0027t be changed, may be this prefix option should only take `/HELL` which would then actually be a prefix for Redfish service root conveniently defaulted to \u0027\u0027.","commit_id":"d62de735e7662d0afb5ed71da48bebd3349a4f57"},{"author":{"_account_id":30797,"name":"kanwar saad bin liaqat","email":"kanwar.sbl@gmail.com","username":"ekanwli"},"change_message_id":"3f75e98975defc3b5f6876308ca67efcbb2a33ff","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            conn \u003d sushy.Sushy("},{"line_number":204,"context_line":"                self._driver_info[\u0027address\u0027],"},{"line_number":205,"context_line":"                verify\u003dself._driver_info[\u0027verify_ca\u0027],"},{"line_number":206,"context_line":"                root_prefix\u003dself._driver_info[\u0027root_prefix\u0027],"},{"line_number":207,"context_line":"                auth\u003dauthenticator"},{"line_number":208,"context_line":"            )"},{"line_number":209,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_a5909c50","line":206,"updated":"2020-02-12 11:56:40.000000000","message":"you need to add default prefix if not given by user.","commit_id":"d62de735e7662d0afb5ed71da48bebd3349a4f57"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"b4eca050a94bb1d4f89d7ac5f101f17715d0b8f4","unresolved":false,"context_lines":[{"line_number":203,"context_line":"            conn \u003d sushy.Sushy("},{"line_number":204,"context_line":"                self._driver_info[\u0027address\u0027],"},{"line_number":205,"context_line":"                verify\u003dself._driver_info[\u0027verify_ca\u0027],"},{"line_number":206,"context_line":"                root_prefix\u003dself._driver_info[\u0027root_prefix\u0027],"},{"line_number":207,"context_line":"                auth\u003dauthenticator"},{"line_number":208,"context_line":"            )"},{"line_number":209,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_15274920","line":206,"in_reply_to":"3fa7e38b_a5909c50","updated":"2020-02-13 12:09:42.000000000","message":"+1\n\nSushy seems to have this prefix defaulted.","commit_id":"d62de735e7662d0afb5ed71da48bebd3349a4f57"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"b8c4f4ef79b7f9f6fd7536e384e3af72fe84fbcb","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                           \u0027\"basic\", \"session\" or \"auto\". If not set, the \u0027"},{"line_number":67,"context_line":"                           \u0027default value is taken from Ironic \u0027"},{"line_number":68,"context_line":"                           \u0027configuration as ``[redfish]auth_type`` option.\u0027),"},{"line_number":69,"context_line":"    \u0027redfish_root_prefix\u0027: _(\u0027The URL prefix to the controller API\u0027"},{"line_number":70,"context_line":"                             \u0027This is needed if the Redfish API is not\u0027"},{"line_number":71,"context_line":"                             \u0027located in the default /redfish/v1 endpoint\u0027"},{"line_number":72,"context_line":"                             \u0027For example: /HEL/redfish/v1\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_c356de5d","line":69,"updated":"2020-02-13 12:33:33.000000000","message":"missing dot","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"b8c4f4ef79b7f9f6fd7536e384e3af72fe84fbcb","unresolved":false,"context_lines":[{"line_number":67,"context_line":"                           \u0027default value is taken from Ironic \u0027"},{"line_number":68,"context_line":"                           \u0027configuration as ``[redfish]auth_type`` option.\u0027),"},{"line_number":69,"context_line":"    \u0027redfish_root_prefix\u0027: _(\u0027The URL prefix to the controller API\u0027"},{"line_number":70,"context_line":"                             \u0027This is needed if the Redfish API is not\u0027"},{"line_number":71,"context_line":"                             \u0027located in the default /redfish/v1 endpoint\u0027"},{"line_number":72,"context_line":"                             \u0027For example: /HEL/redfish/v1\u0027)"},{"line_number":73,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_d89c88bf","line":70,"updated":"2020-02-13 12:33:33.000000000","message":"add space","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"b8c4f4ef79b7f9f6fd7536e384e3af72fe84fbcb","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                           \u0027configuration as ``[redfish]auth_type`` option.\u0027),"},{"line_number":69,"context_line":"    \u0027redfish_root_prefix\u0027: _(\u0027The URL prefix to the controller API\u0027"},{"line_number":70,"context_line":"                             \u0027This is needed if the Redfish API is not\u0027"},{"line_number":71,"context_line":"                             \u0027located in the default /redfish/v1 endpoint\u0027"},{"line_number":72,"context_line":"                             \u0027For example: /HEL/redfish/v1\u0027)"},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_78ab14d3","line":71,"updated":"2020-02-13 12:33:33.000000000","message":"missing dot and space","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"b8c4f4ef79b7f9f6fd7536e384e3af72fe84fbcb","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \u0027redfish_root_prefix\u0027: _(\u0027The URL prefix to the controller API\u0027"},{"line_number":70,"context_line":"                             \u0027This is needed if the Redfish API is not\u0027"},{"line_number":71,"context_line":"                             \u0027located in the default /redfish/v1 endpoint\u0027"},{"line_number":72,"context_line":"                             \u0027For example: /HEL/redfish/v1\u0027)"},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"COMMON_PROPERTIES \u003d REQUIRED_PROPERTIES.copy()"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_f878647d","line":72,"updated":"2020-02-13 12:33:33.000000000","message":"missing dot space and Optional word","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"606a86d66fe59db8ccd812c93dedf3d48460a8fa","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \u0027redfish_root_prefix\u0027: _(\u0027The URL prefix to the controller API\u0027"},{"line_number":70,"context_line":"                             \u0027This is needed if the Redfish API is not\u0027"},{"line_number":71,"context_line":"                             \u0027located in the default /redfish/v1 endpoint\u0027"},{"line_number":72,"context_line":"                             \u0027For example: /HEL/redfish/v1\u0027)"},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"COMMON_PROPERTIES \u003d REQUIRED_PROPERTIES.copy()"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_74c23437","line":72,"in_reply_to":"3fa7e38b_b8bc2c07","updated":"2020-02-13 22:21:45.000000000","message":"++","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"81d5483dbf1a902289dfe6cb0b3aa923f60bc132","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    \u0027redfish_root_prefix\u0027: _(\u0027The URL prefix to the controller API\u0027"},{"line_number":70,"context_line":"                             \u0027This is needed if the Redfish API is not\u0027"},{"line_number":71,"context_line":"                             \u0027located in the default /redfish/v1 endpoint\u0027"},{"line_number":72,"context_line":"                             \u0027For example: /HEL/redfish/v1\u0027)"},{"line_number":73,"context_line":"}"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"COMMON_PROPERTIES \u003d REQUIRED_PROPERTIES.copy()"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_b8bc2c07","line":72,"in_reply_to":"3fa7e38b_f878647d","updated":"2020-02-13 12:35:13.000000000","message":"Also missing \u0027L\u0027 in \u0027/HELL\u0027\n\n;-)","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"606a86d66fe59db8ccd812c93dedf3d48460a8fa","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            \u0027node_uuid\u0027: node.uuid,"},{"line_number":171,"context_line":"            \u0027root_prefix\u0027: root_prefix}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class SessionCache(object):"},{"line_number":175,"context_line":"    \"\"\"Cache of HTTP sessions credentials\"\"\""},{"line_number":176,"context_line":"    AUTH_CLASSES \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_54ccd860","line":173,"updated":"2020-02-13 22:21:45.000000000","message":"I guess my only concern with this patch is that don\u0027t break existing users and that this remains optional, as users have already been defining /redfish/v1/Systems/1 for a while in their system ID.\n\nAnd then if we do that, do we make the \"Systems\" portion optional?","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"dbeefcdf38867edf2baa413e2a22294dbdcabdf4","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            \u0027node_uuid\u0027: node.uuid,"},{"line_number":171,"context_line":"            \u0027root_prefix\u0027: root_prefix}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class SessionCache(object):"},{"line_number":175,"context_line":"    \"\"\"Cache of HTTP sessions credentials\"\"\""},{"line_number":176,"context_line":"    AUTH_CLASSES \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_678b4c16","line":173,"in_reply_to":"3fa7e38b_27d9d454","updated":"2020-02-17 11:41:55.000000000","message":"My impression is that \u0027redfish/v1\u0027 part should always be present [1]...:\n\n  The protocol version is separate from the version of the resources or the version of the Redfish Schema supported by them.\n\n  Each version of the Redfish protocol is strongly typed. This is accomplished using the URI of the Redfish Service in combination with the resource obtained at that URI, called the ServiceRoot.\n\n  The root URI for this version of the Redfish protocol shall be \"/redfish/v1/\".\n\nMay be that\u0027s OK, from Redfish standpoint, if the vendor would mount `/redfish/v1` under some prefix URL e.g. /some/thing/redfish/v1...\n\nWDYT?\n\n1. http://redfish.dmtf.org/schemas/DSP0266_1.1.html","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":30842,"name":"Maël Kimmerlin","email":"mael.kimmerlin@est.tech","username":"maelk"},"change_message_id":"b2e3f57c2cd769a4bcc8be3227b8069ecd205ad7","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            \u0027node_uuid\u0027: node.uuid,"},{"line_number":171,"context_line":"            \u0027root_prefix\u0027: root_prefix}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class SessionCache(object):"},{"line_number":175,"context_line":"    \"\"\"Cache of HTTP sessions credentials\"\"\""},{"line_number":176,"context_line":"    AUTH_CLASSES \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_672cc5ff","line":173,"in_reply_to":"3fa7e38b_54ccd860","updated":"2020-02-14 08:20:25.000000000","message":"This does not change anything regarding the system ID, users have to keep defining it the same way they were doing before.\nWhen not specified, sushy defaults to /redfish/v1/ for the root prefix anyways, so this should not break any compatibility afaik. I did not change the system_id and address for two reasons:\n- to not break compatibility and not change the current way things work\n- to address cases that do not completely comply with the standards. I did not want to assume that the root_prefix is in the system_id.\n\nSomething that could be done is to parse the root_prefix from the address parameter. Currently Sushy seems to discard whatever path is there, so we could get the root prefix from there.","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"1fb46984e20ba1a9fa72a99bb082af8b43d99358","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            \u0027node_uuid\u0027: node.uuid,"},{"line_number":171,"context_line":"            \u0027root_prefix\u0027: root_prefix}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class SessionCache(object):"},{"line_number":175,"context_line":"    \"\"\"Cache of HTTP sessions credentials\"\"\""},{"line_number":176,"context_line":"    AUTH_CLASSES \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_6aa24cae","line":173,"in_reply_to":"3fa7e38b_672cc5ff","updated":"2020-02-14 08:39:09.000000000","message":"I\u0027d vote for:\n\n- not introducing new `root_prefix` parameter\n- parsing `root_prefix` out (for internal sushy consumption) from `system_id`\n\nIf we add `root_prefix`, its interplay with `system_id` (potentially pointing to some other URL prefix) would be confusing.","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":30842,"name":"Maël Kimmerlin","email":"mael.kimmerlin@est.tech","username":"maelk"},"change_message_id":"4f4bec307d2d57638b620bc47227544d080e244d","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            \u0027node_uuid\u0027: node.uuid,"},{"line_number":171,"context_line":"            \u0027root_prefix\u0027: root_prefix}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class SessionCache(object):"},{"line_number":175,"context_line":"    \"\"\"Cache of HTTP sessions credentials\"\"\""},{"line_number":176,"context_line":"    AUTH_CLASSES \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_f8ecb906","line":173,"in_reply_to":"3fa7e38b_678b4c16","updated":"2020-02-17 14:53:41.000000000","message":"I would rather not make any assumption there. We\u0027re working with a system that is pre-v1 release. The only difference is that we have /\u003cid1\u003e/\u003cid2\u003e/redfish/v0/Systems/\u003cid\u003e. So for us the assumption where /redfish/v1 would always be present does not stand, but we still could match \"/redfish/vX/Systems\" and take whatever is before Systems as the root_prefix. I am just afraid of introducing a bug for some systems that do not follow this specific convention (even if it is in the standard). If you say that it is better to go this way, then I will make a new patchset. Thank you for the review @Julia and @Ilya","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":30842,"name":"Maël Kimmerlin","email":"mael.kimmerlin@est.tech","username":"maelk"},"change_message_id":"5a3f1c388907122dd91ad01aa4edebf809fcd35c","unresolved":false,"context_lines":[{"line_number":170,"context_line":"            \u0027node_uuid\u0027: node.uuid,"},{"line_number":171,"context_line":"            \u0027root_prefix\u0027: root_prefix}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class SessionCache(object):"},{"line_number":175,"context_line":"    \"\"\"Cache of HTTP sessions credentials\"\"\""},{"line_number":176,"context_line":"    AUTH_CLASSES \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_27d9d454","line":173,"in_reply_to":"3fa7e38b_6aa24cae","updated":"2020-02-17 11:32:08.000000000","message":"This means that we assume that the system_id follows the standard having the id like `\u003croot_prefix\u003e/Systems/\u003cid\u003e`. What if it does not and the system_id does not contain the root prefix ?","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3f039a84fa2f3fb3b48718efdb65f6e8065739e7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from oslo_utils import strutils"},{"line_number":24,"context_line":"import retrying"},{"line_number":25,"context_line":"import rfc3986"},{"line_number":26,"context_line":"import re"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"from ironic.common import exception"},{"line_number":29,"context_line":"from ironic.common.i18n import _"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_ee7b777a","line":26,"updated":"2020-02-18 20:34:32.000000000","message":"This should be moved up in import order\n\n ./ironic/drivers/modules/redfish/utils.py:26:1: H306  imports not in alphabetical order (rfc3986, re)\n./ironic/drivers/modules/redfish/utils.py:26:1: I100 Import statements are in the wrong order. \u0027import re\u0027 should be before \u0027import rfc3986\u0027 and in a different group.\n./ironic/drivers/modules/redfish/utils.py:26:1: I201 Missing newline between import groups. \u0027import re\u0027 is identified as Stdlib and \u0027import rfc3986\u0027 is identified as Third Party.","commit_id":"db51ee2e1f618fc828e412c757b22ef3c932101e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3f039a84fa2f3fb3b48718efdb65f6e8065739e7","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            {\u0027value\u0027: auth_type, \u0027node\u0027: node.uuid})"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    root_prefix \u003d re.search(\u0027[\\w\\/]*\\/redfish\\/v[\\w\\-\\_\\.]+\\/(?\u003dSystems\\/)\u0027,"},{"line_number":163,"context_line":"        redfish_system_id).group(0)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    return {\u0027address\u0027: address,"},{"line_number":166,"context_line":"            \u0027system_id\u0027: redfish_system_id,"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_2e898f6f","line":163,"updated":"2020-02-18 20:34:32.000000000","message":"This should be indented to match the start just after the ( character of the line above.","commit_id":"db51ee2e1f618fc828e412c757b22ef3c932101e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"99b2ae1f860bdbf25d2ed9e2702bd235f0c7069a","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":"import re"},{"line_number":19,"context_line":"from urllib import parse as urlparse"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from oslo_log import log"},{"line_number":23,"context_line":"from oslo_utils import excutils"}],"source_content_type":"text/x-python","patch_set":13,"id":"3fa7e38b_c859c890","line":20,"updated":"2020-02-19 10:00:44.000000000","message":"nit: new blank line not needed","commit_id":"a656764166275473c91eca594aafbf8f56708edb"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"99b2ae1f860bdbf25d2ed9e2702bd235f0c7069a","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                  \u0027that the driver will interact with. For example: \u0027"},{"line_number":127,"context_line":"                  \u0027/redfish/v1/Systems/1\u0027) %"},{"line_number":128,"context_line":"                {\u0027value\u0027: driver_info[\u0027redfish_system_id\u0027], \u0027node\u0027: node.uuid})"},{"line_number":129,"context_line":"        root_prefix \u003d re.search(\u0027[\\w\\/]*\\/redfish\\/v[\\w\\-\\_\\.]+\\/(?\u003dSystems\\/)\u0027,"},{"line_number":130,"context_line":"                                redfish_system_id).group(0)"},{"line_number":131,"context_line":"    else:"},{"line_number":132,"context_line":"        root_prefix \u003d \"/redfish/v1/\""}],"source_content_type":"text/x-python","patch_set":13,"id":"3fa7e38b_a8580c89","line":129,"updated":"2020-02-19 10:00:44.000000000","message":"line too long","commit_id":"a656764166275473c91eca594aafbf8f56708edb"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"99b2ae1f860bdbf25d2ed9e2702bd235f0c7069a","unresolved":false,"context_lines":[{"line_number":164,"context_line":"              \u0027The value should be one of \"basic\", \"session\" or \"auto\".\u0027) %"},{"line_number":165,"context_line":"            {\u0027value\u0027: auth_type, \u0027node\u0027: node.uuid})"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    return {\u0027address\u0027: address,"},{"line_number":170,"context_line":"            \u0027system_id\u0027: redfish_system_id,"}],"source_content_type":"text/x-python","patch_set":13,"id":"3fa7e38b_684a14af","line":167,"updated":"2020-02-19 10:00:44.000000000","message":"remove the 2 new blank lines here","commit_id":"a656764166275473c91eca594aafbf8f56708edb"},{"author":{"_account_id":30842,"name":"Maël Kimmerlin","email":"mael.kimmerlin@est.tech","username":"maelk"},"change_message_id":"6031e08404c76bc66cc13c8f3d5f3a1716603469","unresolved":false,"context_lines":[{"line_number":37,"context_line":"                         \u0027must include the authority portion of the URL. \u0027"},{"line_number":38,"context_line":"                         \u0027If the scheme is missing, https is assumed. \u0027"},{"line_number":39,"context_line":"                         \u0027For example: https://mgmt.vendor.com. \u0027"},{"line_number":40,"context_line":"                         \u0027If a path is added, it will be used as the API \u0027"},{"line_number":41,"context_line":"                         \u0027endpoint root_prefix. Required\u0027),"},{"line_number":42,"context_line":"}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"OPTIONAL_PROPERTIES \u003d {"}],"source_content_type":"text/x-python","patch_set":15,"id":"1fa4df85_f86fd58f","line":41,"range":{"start_line":40,"start_character":26,"end_line":41,"end_character":47},"updated":"2020-02-24 08:06:46.000000000","message":"Since we had a redfish endpoint that does not respect the `/redfish/vX/Systems` endpoint for the system path, the regex idea on the system_id was not working. Now, we take anything that is given as path on the address as root prefix.","commit_id":"f53a9218b4b24a9e26ecb5e8bffdfe01ae70543b"},{"author":{"_account_id":30842,"name":"Maël Kimmerlin","email":"mael.kimmerlin@est.tech","username":"maelk"},"change_message_id":"6031e08404c76bc66cc13c8f3d5f3a1716603469","unresolved":false,"context_lines":[{"line_number":113,"context_line":"            _(\u0027Invalid Redfish address %(address)s set in \u0027"},{"line_number":114,"context_line":"              \u0027driver_info/redfish_address on node %(node)s\u0027) %"},{"line_number":115,"context_line":"            {\u0027address\u0027: address, \u0027node\u0027: node.uuid})"},{"line_number":116,"context_line":"    address \u003d \u0027{}://{}\u0027.format(parsed.scheme, parsed.authority)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    # Obtain the Redfish root prefix from the address path"},{"line_number":119,"context_line":"    # If not specified, default to \u0027/redfish/v1/\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"1fa4df85_b8695d8c","line":116,"range":{"start_line":116,"start_character":4,"end_line":116,"end_character":63},"updated":"2020-02-24 08:06:46.000000000","message":"this discards the path part of the address given by the user","commit_id":"f53a9218b4b24a9e26ecb5e8bffdfe01ae70543b"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"43e4c7af5df04c1379d13028c08eb8996616203f","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    # If not specified, default to \u0027/redfish/v1/\u0027"},{"line_number":120,"context_line":"    root_prefix \u003d parsed.path"},{"line_number":121,"context_line":"    if not root_prefix:"},{"line_number":122,"context_line":"        root_prefix \u003d \"/redfish/v1/\""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    redfish_system_id \u003d driver_info.get(\u0027redfish_system_id\u0027)"},{"line_number":125,"context_line":"    if redfish_system_id is not None:"}],"source_content_type":"text/x-python","patch_set":16,"id":"1fa4df85_44925ea0","line":122,"updated":"2020-03-02 11:27:13.000000000","message":"nit: we have the same default in sushy already... may be just omit this parameter to `Sushy()` to let the default kicking in?","commit_id":"b08029c6be85c957055f59b51a9db73c60be3cea"},{"author":{"_account_id":30842,"name":"Maël Kimmerlin","email":"mael.kimmerlin@est.tech","username":"maelk"},"change_message_id":"089ce546690b5f8b71ef92548e1a8d89bb62728b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    # If not specified, default to \u0027/redfish/v1/\u0027"},{"line_number":120,"context_line":"    root_prefix \u003d parsed.path"},{"line_number":121,"context_line":"    if not root_prefix:"},{"line_number":122,"context_line":"        root_prefix \u003d \"/redfish/v1/\""},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    redfish_system_id \u003d driver_info.get(\u0027redfish_system_id\u0027)"},{"line_number":125,"context_line":"    if redfish_system_id is not None:"}],"source_content_type":"text/x-python","patch_set":16,"id":"1fa4df85_db5aa528","line":122,"in_reply_to":"1fa4df85_44925ea0","updated":"2020-03-02 14:35:30.000000000","message":"I have modified it to not pass the root_prefix when undefined. Thank you","commit_id":"b08029c6be85c957055f59b51a9db73c60be3cea"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"c5309439b273f82c67151dcedb13b9771e7a6f78","unresolved":false,"context_lines":[{"line_number":165,"context_line":"              \u0027The value should be one of \"basic\", \"session\" or \"auto\".\u0027) %"},{"line_number":166,"context_line":"            {\u0027value\u0027: auth_type, \u0027node\u0027: node.uuid})"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    sushy_params \u003d {\u0027address\u0027: address,"},{"line_number":169,"context_line":"                    \u0027system_id\u0027: redfish_system_id,"},{"line_number":170,"context_line":"                    \u0027username\u0027: driver_info.get(\u0027redfish_username\u0027),"},{"line_number":171,"context_line":"                    \u0027password\u0027: driver_info.get(\u0027redfish_password\u0027),"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_2d6e1e95","line":168,"updated":"2020-03-02 16:41:04.000000000","message":"nit: I think PEP8 wants it this way:\n\n    sushy_params \u003d {\n        \u0027address\u0027: address,\n        \u0027system_id\u0027: redfish_system_id,\n        ...\n    }","commit_id":"76238f4b458cad8d81ba10efd06473bc66f36d89"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"c5309439b273f82c67151dcedb13b9771e7a6f78","unresolved":false,"context_lines":[{"line_number":211,"context_line":"                password\u003dself._driver_info[\u0027password\u0027]"},{"line_number":212,"context_line":"            )"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"            sushy_params \u003d {\u0027verify\u0027: self._driver_info[\u0027verify_ca\u0027],"},{"line_number":215,"context_line":"                            \u0027auth\u0027: authenticator}"},{"line_number":216,"context_line":"            if \u0027root_prefix\u0027 in self._driver_info:"},{"line_number":217,"context_line":"                sushy_params[\u0027root_prefix\u0027] \u003d self._driver_info[\u0027root_prefix\u0027]"}],"source_content_type":"text/x-python","patch_set":17,"id":"1fa4df85_4dfefaae","line":214,"updated":"2020-03-02 16:41:04.000000000","message":"nit: dict formatting","commit_id":"76238f4b458cad8d81ba10efd06473bc66f36d89"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4539b2678d6d851d3bf3a69b48b555fe68d6c608","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    # Obtain the Redfish root prefix from the address path"},{"line_number":119,"context_line":"    # If not specified, default to \u0027/redfish/v1/\u0027"},{"line_number":120,"context_line":"    root_prefix \u003d parsed.path"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    redfish_system_id \u003d driver_info.get(\u0027redfish_system_id\u0027)"},{"line_number":123,"context_line":"    if redfish_system_id is not None:"}],"source_content_type":"text/x-python","patch_set":18,"id":"1fa4df85_9cadf4ea","line":120,"updated":"2020-03-03 12:29:05.000000000","message":"If a user uses \"http://example.com/\", will this \"/\" be used as root_prefix? Do we want it?","commit_id":"3f3fc7dca0493da31187bc7f0532fa4ed5c5e279"},{"author":{"_account_id":30842,"name":"Maël Kimmerlin","email":"mael.kimmerlin@est.tech","username":"maelk"},"change_message_id":"59954f5b56db35827da1f3885883904c0c88a29f","unresolved":false,"context_lines":[{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    # Obtain the Redfish root prefix from the address path"},{"line_number":119,"context_line":"    # If not specified, default to \u0027/redfish/v1/\u0027"},{"line_number":120,"context_line":"    root_prefix \u003d parsed.path"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    redfish_system_id \u003d driver_info.get(\u0027redfish_system_id\u0027)"},{"line_number":123,"context_line":"    if redfish_system_id is not None:"}],"source_content_type":"text/x-python","patch_set":18,"id":"1fa4df85_4e333415","line":120,"in_reply_to":"1fa4df85_9cadf4ea","updated":"2020-03-04 07:41:09.000000000","message":"Yes, \"/\" will be used as a root_prefix. I think it is a valid case, and should work this way. It is equivalent to having a \"redfish_root_prefix\" parameter set to \"/\".","commit_id":"3f3fc7dca0493da31187bc7f0532fa4ed5c5e279"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4539b2678d6d851d3bf3a69b48b555fe68d6c608","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                    \u0027auth_type\u0027: auth_type,"},{"line_number":174,"context_line":"                    \u0027node_uuid\u0027: node.uuid}"},{"line_number":175,"context_line":"    if root_prefix:"},{"line_number":176,"context_line":"            sushy_params[\u0027root_prefix\u0027] \u003d root_prefix"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    return sushy_params"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1fa4df85_3cb64040","line":176,"updated":"2020-03-03 12:29:05.000000000","message":"nit: redundant indentation","commit_id":"3f3fc7dca0493da31187bc7f0532fa4ed5c5e279"}],"ironic/tests/unit/drivers/modules/redfish/test_utils.py":[{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"b8c4f4ef79b7f9f6fd7536e384e3af72fe84fbcb","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        self.parsed_driver_info \u003d {"},{"line_number":50,"context_line":"            \u0027address\u0027: \u0027https://example.com\u0027,"},{"line_number":51,"context_line":"            \u0027system_id\u0027: \u0027/redfish/v1/Systems/FAKESYSTEM\u0027,"},{"line_number":52,"context_line":"            \u0027root_prefix\u0027: \u0027redfish/v1/\u0027,"},{"line_number":53,"context_line":"            \u0027username\u0027: \u0027username\u0027,"},{"line_number":54,"context_line":"            \u0027password\u0027: \u0027password\u0027,"},{"line_number":55,"context_line":"            \u0027verify_ca\u0027: True,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_83630645","line":52,"updated":"2020-02-13 12:33:33.000000000","message":"shouldn\u0027t be /redfish/v1? (at least is what is says in the release note about the default value)","commit_id":"2a59d4c657deb8e5433b36bc57d9cc72626e37e8"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3f039a84fa2f3fb3b48718efdb65f6e8065739e7","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                                   redfish_utils.parse_driver_info, self.node)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def test_parse_driver_info_with_root_prefix(self):"},{"line_number":165,"context_line":"        self.node.driver_info[\u0027redfish_system_id\u0027] \u003d \u0027/test/redfish/v0.1-rc0/Systems/abc\u0027"},{"line_number":166,"context_line":"        self.parsed_driver_info[\u0027root_prefix\u0027] \u003d \u0027/test/redfish/v0.1-rc0/\u0027"},{"line_number":167,"context_line":"        self.parsed_driver_info[\u0027system_id\u0027] \u003d \u0027/test/redfish/v0.1-rc0/Systems/abc\u0027"},{"line_number":168,"context_line":"        response \u003d redfish_utils.parse_driver_info(self.node)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_0ee6134b","line":165,"updated":"2020-02-18 20:34:32.000000000","message":"Please wrap the string to be a multi-line string so the overall line length does not exceed 80 characters.","commit_id":"db51ee2e1f618fc828e412c757b22ef3c932101e"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3f039a84fa2f3fb3b48718efdb65f6e8065739e7","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    def test_parse_driver_info_with_root_prefix(self):"},{"line_number":165,"context_line":"        self.node.driver_info[\u0027redfish_system_id\u0027] \u003d \u0027/test/redfish/v0.1-rc0/Systems/abc\u0027"},{"line_number":166,"context_line":"        self.parsed_driver_info[\u0027root_prefix\u0027] \u003d \u0027/test/redfish/v0.1-rc0/\u0027"},{"line_number":167,"context_line":"        self.parsed_driver_info[\u0027system_id\u0027] \u003d \u0027/test/redfish/v0.1-rc0/Systems/abc\u0027"},{"line_number":168,"context_line":"        response \u003d redfish_utils.parse_driver_info(self.node)"},{"line_number":169,"context_line":"        self.assertEqual(self.parsed_driver_info, response)"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_aeea5f0a","line":167,"updated":"2020-02-18 20:34:32.000000000","message":"Please wrap the string to be a multi-line string so the overall line length does not exceed 80 characters.","commit_id":"db51ee2e1f618fc828e412c757b22ef3c932101e"}],"releasenotes/notes/redfish-add-root-prefix-03b5f31ec6bbd146.yaml":[{"author":{"_account_id":30797,"name":"kanwar saad bin liaqat","email":"kanwar.sbl@gmail.com","username":"ekanwli"},"change_message_id":"3f75e98975defc3b5f6876308ca67efcbb2a33ff","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":"    Add `redfish_root_prefix` parameter. This adds the `root_prefix` parameter "},{"line_number":5,"context_line":"    to the sushy context."},{"line_number":6,"context_line":"    This is needed if the Redfish API is not located in the default"},{"line_number":7,"context_line":"    /redfish/v1 endpoint."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa7e38b_85bc80d5","line":4,"updated":"2020-02-12 11:56:40.000000000","message":"whitespace","commit_id":"d62de735e7662d0afb5ed71da48bebd3349a4f57"}]}
