)]}'
{"os_brick/initiator/connector.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"78062fd7568f793f65ea9aaf4bda1d0df1a7f3fc","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    connector_list +\u003d ["},{"line_number":54,"context_line":"        \u0027os_brick.initiator.connectors.iscsi.ISCSIConnector\u0027,"},{"line_number":55,"context_line":"        \u0027os_brick.initiator.connectors.fibre_channel.FibreChannelConnector\u0027,"},{"line_number":56,"context_line":"    ]"},{"line_number":57,"context_line":"else:"},{"line_number":58,"context_line":"    connector_list \u003d ["},{"line_number":59,"context_line":"        \u0027os_brick.initiator.connectors.base.BaseLinuxConnector\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_c8a6b310","line":56,"updated":"2019-11-07 15:46:43.000000000","message":"We should use a windows_connector_list and a unix_connector_list\nand make the for loop on line 235 use the correct list depending on platform.\n\nNot sure why windows would need to import the iscsi.ISCSIConnector and fibre_channel_.FibreChannelConnector as they are in the class heirarchy for the windows connectors listed on lines 44-47.\n\nI prefer much more explicit lists.","commit_id":"ad15da0bb5b89620477208150a405fbd1ba5c7be"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"2d54bcf7929b4b80640b20dbfc43a39018d53b5c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    connector_list +\u003d ["},{"line_number":54,"context_line":"        \u0027os_brick.initiator.connectors.iscsi.ISCSIConnector\u0027,"},{"line_number":55,"context_line":"        \u0027os_brick.initiator.connectors.fibre_channel.FibreChannelConnector\u0027,"},{"line_number":56,"context_line":"    ]"},{"line_number":57,"context_line":"else:"},{"line_number":58,"context_line":"    connector_list \u003d ["},{"line_number":59,"context_line":"        \u0027os_brick.initiator.connectors.base.BaseLinuxConnector\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_455ce14b","line":56,"in_reply_to":"3fa7e38b_c8a6b310","updated":"2019-11-08 08:33:28.000000000","message":"The issue is that we\u0027ll need to add platform checks whenever iterating over the connector list, which isn\u0027t very convenient. Here are a few places:\n* https://github.com/openstack/os-brick/blob/f6761989e8dcd66d39448e79a61a7b068a03ef7a/tools/generate_connector_list.py#L58\n* https://github.com/openstack/os-brick/blob/f6761989e8dcd66d39448e79a61a7b068a03ef7a/os_brick/initiator/connector.py#L221\n* https://github.com/openstack/os-brick/blob/f6761989e8dcd66d39448e79a61a7b068a03ef7a/os_brick/initiator/connector.py#L183\n\nAbout the iSCSI/FC connectors, we had to import them because Cinder is trying to access those specific classes and unfortunately we have to remain backward compatible: https://github.com/openstack/cinder/blob/330f1ae453eeb76f9036fb3f73e22f3258d9a8b7/cinder/volume/flows/manager/create_volume.py#L63-L67","commit_id":"ad15da0bb5b89620477208150a405fbd1ba5c7be"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"281c95213cdc16b63538fc271ebc22bc2d8dcb8c","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"# Create aliases to the old names until 2.0.0"},{"line_number":194,"context_line":"# TODO(smcginnis) Remove this lookup once unit test code is updated to"},{"line_number":195,"context_line":"# point to the correct location"},{"line_number":196,"context_line":"def _set_aliases():"},{"line_number":197,"context_line":"    conn_list \u003d _get_connector_list()"},{"line_number":198,"context_line":"    # TODO(lpetrut): Cinder is explicitly trying to use those two"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_75de006b","line":195,"range":{"start_line":194,"start_character":0,"end_line":195,"end_character":31},"updated":"2019-11-18 15:54:43.000000000","message":"This seems to not be the plan now?","commit_id":"9e8657dd6ef781d7e6027625fc2f05442256c6ac"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"c969de3cdbcdd7452489342691fe6c2e10562475","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"# Create aliases to the old names until 2.0.0"},{"line_number":194,"context_line":"# TODO(smcginnis) Remove this lookup once unit test code is updated to"},{"line_number":195,"context_line":"# point to the correct location"},{"line_number":196,"context_line":"def _set_aliases():"},{"line_number":197,"context_line":"    conn_list \u003d _get_connector_list()"},{"line_number":198,"context_line":"    # TODO(lpetrut): Cinder is explicitly trying to use those two"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fa7e38b_f5397b3e","line":195,"range":{"start_line":194,"start_character":0,"end_line":195,"end_character":31},"in_reply_to":"3fa7e38b_75de006b","updated":"2019-11-19 19:59:20.000000000","message":"I think it still is, with a few extra steps.","commit_id":"9e8657dd6ef781d7e6027625fc2f05442256c6ac"}],"os_brick/privileged/scaleio.py":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"ed122a6eb9030357c3398743765d3053f3bb8d9f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \"\"\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    with open_scini_device() as fd:"},{"line_number":58,"context_line":"        out \u003d ioctl(fd, op_code, struct.pack(\u0027QQQ\u0027, 0, 0, 0))"},{"line_number":59,"context_line":"        # The first 8 bytes contain a return code that is not used"},{"line_number":60,"context_line":"        # so they can be discarded."},{"line_number":61,"context_line":"        out_to_hex \u003d hexlify(out[8:]).decode()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_4e84800b","line":58,"updated":"2019-10-29 17:48:24.000000000","message":"If the scaleio module is imported don\u0027t we risk to pass there, or to call `get_guid` function?","commit_id":"1a064b8ed23f65a22c42cc23e01d02d8e8ebb2a1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"31abfab5b7eb7c50c8b0dcac52a80d58131b2d7d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \"\"\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    with open_scini_device() as fd:"},{"line_number":58,"context_line":"        out \u003d ioctl(fd, op_code, struct.pack(\u0027QQQ\u0027, 0, 0, 0))"},{"line_number":59,"context_line":"        # The first 8 bytes contain a return code that is not used"},{"line_number":60,"context_line":"        # so they can be discarded."},{"line_number":61,"context_line":"        out_to_hex \u003d hexlify(out[8:]).decode()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_eecf6c54","line":58,"in_reply_to":"3fa7e38b_4e84800b","updated":"2019-10-29 17:51:55.000000000","message":"Anyway if you do that you need to handle the case where you are on windows here too. \n\nMaybe by returning None or I other things or throw a specific exception that can be handled in this case...","commit_id":"1a064b8ed23f65a22c42cc23e01d02d8e8ebb2a1"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"f004d3470af17f1b1c19f317fb0dc8628c847ba7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    \"\"\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    with open_scini_device() as fd:"},{"line_number":58,"context_line":"        out \u003d ioctl(fd, op_code, struct.pack(\u0027QQQ\u0027, 0, 0, 0))"},{"line_number":59,"context_line":"        # The first 8 bytes contain a return code that is not used"},{"line_number":60,"context_line":"        # so they can be discarded."},{"line_number":61,"context_line":"        out_to_hex \u003d hexlify(out[8:]).decode()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_49355a44","line":58,"in_reply_to":"3fa7e38b_eecf6c54","updated":"2019-10-29 18:44:56.000000000","message":"Those functions aren\u0027t going to be called.","commit_id":"1a064b8ed23f65a22c42cc23e01d02d8e8ebb2a1"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"ed122a6eb9030357c3398743765d3053f3bb8d9f","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    \"\"\""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    with open_scini_device() as fd:"},{"line_number":74,"context_line":"        ioctl(fd, op_code, struct.pack(\u0027Q\u0027, 0))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_ae72d448","line":74,"updated":"2019-10-29 17:48:24.000000000","message":"Same things there...","commit_id":"1a064b8ed23f65a22c42cc23e01d02d8e8ebb2a1"}]}
