)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"8f3850cfc46056c09def9e9cd4ca4bd53229f2f5","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch adds a new configuration option that will take a list"},{"line_number":14,"context_line":"of possible cipher suite versions that can be used when the error"},{"line_number":15,"context_line":"occours and the node doesn\u0027t have the `ipmi_cipher_suite` set."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Story: 2008739"},{"line_number":18,"context_line":"Task: 42093"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"37d4e83f_b24ad31c","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":7},"updated":"2021-03-25 02:40:38.000000000","message":"nit, occurs","commit_id":"7003641f55e32250bf2744745f8ab2e56933f68f"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"7e61e58ecca1b853144de867c3c067e3d113f1f8","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch adds a new configuration option that will take a list"},{"line_number":14,"context_line":"of possible cipher suite versions that can be used when the error"},{"line_number":15,"context_line":"occours and the node doesn\u0027t have the `ipmi_cipher_suite` set."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Story: 2008739"},{"line_number":18,"context_line":"Task: 42093"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"0c73640c_ba398cef","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":7},"in_reply_to":"37d4e83f_b24ad31c","updated":"2021-03-25 19:24:02.000000000","message":"Done","commit_id":"7003641f55e32250bf2744745f8ab2e56933f68f"}],"doc/source/admin/drivers/ipmitool.rst":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"6d65b54aa5cbce591fbefe4a63639cb4ab9382fa","unresolved":true,"context_lines":[{"line_number":193,"context_line":"In scenarios where the operator can\u0027t specify the `ipmi_cipher_suite` for"},{"line_number":194,"context_line":"each node, the configuration `[ipmi]/cipher_suite_versions` can be set to"},{"line_number":195,"context_line":"a list of cipher suites that will be used, Ironic will try to find a value that"},{"line_number":196,"context_line":"can be used from the list of values provided.::"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"  [ipmi]"},{"line_number":199,"context_line":"  cipher_suite_versions \u003d [\u00270\u0027,\u00271\u0027,\u00272\u0027,\u00273\u0027,\u00276\u0027,\u00277\u0027,\u00278\u0027,\u002711\u0027,\u002712\u0027]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"af5aab44_3a39ee08","line":196,"updated":"2021-03-29 03:28:34.000000000","message":"This should say that the suites are attempted from last to first","commit_id":"6fe2d5355a5ebb452eb9ed058d5082bf788ab25a"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a43bc40494d5d3172bf2930c3cccc8146e136307","unresolved":false,"context_lines":[{"line_number":193,"context_line":"In scenarios where the operator can\u0027t specify the `ipmi_cipher_suite` for"},{"line_number":194,"context_line":"each node, the configuration `[ipmi]/cipher_suite_versions` can be set to"},{"line_number":195,"context_line":"a list of cipher suites that will be used, Ironic will try to find a value that"},{"line_number":196,"context_line":"can be used from the list of values provided.::"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"  [ipmi]"},{"line_number":199,"context_line":"  cipher_suite_versions \u003d [\u00270\u0027,\u00271\u0027,\u00272\u0027,\u00273\u0027,\u00276\u0027,\u00277\u0027,\u00278\u0027,\u002711\u0027,\u002712\u0027]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"db0fa31e_6e89079e","line":196,"in_reply_to":"af5aab44_3a39ee08","updated":"2021-03-29 03:43:06.000000000","message":"Done","commit_id":"6fe2d5355a5ebb452eb9ed058d5082bf788ab25a"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"6d65b54aa5cbce591fbefe4a63639cb4ab9382fa","unresolved":true,"context_lines":[{"line_number":196,"context_line":"can be used from the list of values provided.::"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"  [ipmi]"},{"line_number":199,"context_line":"  cipher_suite_versions \u003d [\u00270\u0027,\u00271\u0027,\u00272\u0027,\u00273\u0027,\u00276\u0027,\u00277\u0027,\u00278\u0027,\u002711\u0027,\u002712\u0027]"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"To find the suitable values for this configuration, you can check the field"},{"line_number":202,"context_line":"`RMCP+ Cipher Suites` after running an `ipmitool` command, e.g::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"8ed007ca_0f261f3d","line":199,"updated":"2021-03-29 03:28:34.000000000","message":"Since \u00270\u0027 bypasses authentication, maybe we should not include it in the example. Also the last two in the list should be \u00273\u0027, \u002717\u0027 to make sure the recommended defaults are tried, see\n\nhttps://www.ibm.com/support/knowledgecenter/POWER9/p9eih/p9eih_ipmi_bestpractices.htm","commit_id":"6fe2d5355a5ebb452eb9ed058d5082bf788ab25a"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a43bc40494d5d3172bf2930c3cccc8146e136307","unresolved":true,"context_lines":[{"line_number":196,"context_line":"can be used from the list of values provided.::"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"  [ipmi]"},{"line_number":199,"context_line":"  cipher_suite_versions \u003d [\u00270\u0027,\u00271\u0027,\u00272\u0027,\u00273\u0027,\u00276\u0027,\u00277\u0027,\u00278\u0027,\u002711\u0027,\u002712\u0027]"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"To find the suitable values for this configuration, you can check the field"},{"line_number":202,"context_line":"`RMCP+ Cipher Suites` after running an `ipmitool` command, e.g::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"0b46eb17_4565a6de","line":199,"in_reply_to":"8ed007ca_0f261f3d","updated":"2021-03-29 03:43:06.000000000","message":"Sure I will remove 0, since 17 is not supported in some cases I will not mention (see the example on how they can retrieve a list of values for this configuration (this was in a supermicro machine where we found the problem)","commit_id":"6fe2d5355a5ebb452eb9ed058d5082bf788ab25a"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"e1fc405289ec6b1bcfc1407858cf922d178e9acc","unresolved":true,"context_lines":[{"line_number":191,"context_line":"    baremetal node set \u003cUUID or name\u003e --driver-info ipmi_cipher_suite\u003d3"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"In scenarios where the operator can\u0027t specify the `ipmi_cipher_suite` for"},{"line_number":194,"context_line":"each node, the configuration `[ipmi]/cipher_suite_versions` can be set to"},{"line_number":195,"context_line":"a list of cipher suites that will be used, Ironic will attempt to find a value"},{"line_number":196,"context_line":"that can be used from the list provided (from last to first).::"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f25cf5e_9cd67ca7","line":194,"range":{"start_line":194,"start_character":28,"end_line":194,"end_character":29},"updated":"2021-03-29 07:31:36.000000000","message":"nit: parameter","commit_id":"b029fb377001cfe5d727ead1d2a26535c720b381"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"662cf36aad91562bc5dee5d353570c4130563811","unresolved":false,"context_lines":[{"line_number":191,"context_line":"    baremetal node set \u003cUUID or name\u003e --driver-info ipmi_cipher_suite\u003d3"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"In scenarios where the operator can\u0027t specify the `ipmi_cipher_suite` for"},{"line_number":194,"context_line":"each node, the configuration `[ipmi]/cipher_suite_versions` can be set to"},{"line_number":195,"context_line":"a list of cipher suites that will be used, Ironic will attempt to find a value"},{"line_number":196,"context_line":"that can be used from the list provided (from last to first).::"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"67cb7531_4589ccde","line":194,"range":{"start_line":194,"start_character":28,"end_line":194,"end_character":29},"in_reply_to":"5f25cf5e_9cd67ca7","updated":"2021-03-30 00:19:48.000000000","message":"Done","commit_id":"b029fb377001cfe5d727ead1d2a26535c720b381"}],"ironic/conf/ipmi.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"714c7700678c83fa95966d098519ffe78f369471","unresolved":true,"context_lines":[{"line_number":77,"context_line":"                default\u003d[],"},{"line_number":78,"context_line":"                help\u003d_(\u0027List of possible cipher suites versions that can \u0027"},{"line_number":79,"context_line":"                       \u0027be supported by the hardware in case the field \u0027"},{"line_number":80,"context_line":"                       \u0027`cipher_suite` is not set for the node.\u0027)),"},{"line_number":81,"context_line":"]"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"8dd65fde_5e74d2d0","line":80,"range":{"start_line":80,"start_character":24,"end_line":80,"end_character":38},"updated":"2021-03-23 14:19:57.000000000","message":"How would a user be able to verify it?\n\nWould it just make more sense to explicitly say \"The BMC doesn\u0027t respond with supported ciphers?\"","commit_id":"374ab5183c97b58c99847734d590dc5b5fa98737"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"792cbb8e21357d6c3127d5f2bd3aa85f9b79f4e1","unresolved":true,"context_lines":[{"line_number":77,"context_line":"                default\u003d[],"},{"line_number":78,"context_line":"                help\u003d_(\u0027List of possible cipher suites versions that can \u0027"},{"line_number":79,"context_line":"                       \u0027be supported by the hardware in case the field \u0027"},{"line_number":80,"context_line":"                       \u0027`cipher_suite` is not set for the node.\u0027)),"},{"line_number":81,"context_line":"]"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"896feae0_6da02de9","line":80,"range":{"start_line":80,"start_character":24,"end_line":80,"end_character":38},"in_reply_to":"11e19f92_133b323a","updated":"2021-03-23 14:45:08.000000000","message":"So that information, on how to determine what is available needs to be in the docs.","commit_id":"374ab5183c97b58c99847734d590dc5b5fa98737"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a1eedc0eb398afb1888ef891fd4065fc295dea5b","unresolved":true,"context_lines":[{"line_number":77,"context_line":"                default\u003d[],"},{"line_number":78,"context_line":"                help\u003d_(\u0027List of possible cipher suites versions that can \u0027"},{"line_number":79,"context_line":"                       \u0027be supported by the hardware in case the field \u0027"},{"line_number":80,"context_line":"                       \u0027`cipher_suite` is not set for the node.\u0027)),"},{"line_number":81,"context_line":"]"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"acdb485e_9bcdfdf6","line":80,"range":{"start_line":80,"start_character":24,"end_line":80,"end_character":38},"in_reply_to":"896feae0_6da02de9","updated":"2021-03-23 14:47:19.000000000","message":"Sure I will add it!","commit_id":"374ab5183c97b58c99847734d590dc5b5fa98737"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f9c18986c6b85762d7fba06a695157ec355a4bf1","unresolved":true,"context_lines":[{"line_number":77,"context_line":"                default\u003d[],"},{"line_number":78,"context_line":"                help\u003d_(\u0027List of possible cipher suites versions that can \u0027"},{"line_number":79,"context_line":"                       \u0027be supported by the hardware in case the field \u0027"},{"line_number":80,"context_line":"                       \u0027`cipher_suite` is not set for the node.\u0027)),"},{"line_number":81,"context_line":"]"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"11e19f92_133b323a","line":80,"range":{"start_line":80,"start_character":24,"end_line":80,"end_character":38},"in_reply_to":"8dd65fde_5e74d2d0","updated":"2021-03-23 14:30:54.000000000","message":"The user would need to look at the information at `RMCP+ Cipher Suites` when running an ipmitool command (e.g: ipmitool -I lanplus -H $HOST -U $USER -v -R 12 -N 5  lan print), in the best scenario they can have one value that would work for all nodes.\n\nWe can verify if the `cipher_suite` is set on the node by looking if driver_info[\u0027cipher_suite\u0027] is None. \n\nIt makes sense to say that this will be only used if the BMC doesn\u0027t respond with supported ciphers and the `cipher_suite` is not set.","commit_id":"374ab5183c97b58c99847734d590dc5b5fa98737"}],"ironic/drivers/modules/ipmitool.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"a9bf7637054d05a80410a77f26856c54435573e0","unresolved":true,"context_lines":[{"line_number":577,"context_line":"    args \u003d _get_ipmitool_args(driver_info)"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"    change_cs \u003d (CONF.ipmi.cipher_suite_versions !\u003d []"},{"line_number":580,"context_line":"                 and driver_info[\u0027cipher_suite\u0027] is None)"},{"line_number":581,"context_line":"    actual_cs \u003d None"},{"line_number":582,"context_line":"    cs_problem \u003d False"},{"line_number":583,"context_line":"    keep_cs \u003d False"}],"source_content_type":"text/x-python","patch_set":2,"id":"91453058_ba769c5c","line":580,"range":{"start_line":580,"start_character":20,"end_line":580,"end_character":56},"updated":"2021-03-23 14:23:26.000000000","message":"would  you want to .get(\u0027cipher_suite\u0027) to avoid a possible key error?","commit_id":"374ab5183c97b58c99847734d590dc5b5fa98737"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f9c18986c6b85762d7fba06a695157ec355a4bf1","unresolved":true,"context_lines":[{"line_number":577,"context_line":"    args \u003d _get_ipmitool_args(driver_info)"},{"line_number":578,"context_line":""},{"line_number":579,"context_line":"    change_cs \u003d (CONF.ipmi.cipher_suite_versions !\u003d []"},{"line_number":580,"context_line":"                 and driver_info[\u0027cipher_suite\u0027] is None)"},{"line_number":581,"context_line":"    actual_cs \u003d None"},{"line_number":582,"context_line":"    cs_problem \u003d False"},{"line_number":583,"context_line":"    keep_cs \u003d False"}],"source_content_type":"text/x-python","patch_set":2,"id":"c1a6b7c5_5e480c63","line":580,"range":{"start_line":580,"start_character":20,"end_line":580,"end_character":56},"in_reply_to":"91453058_ba769c5c","updated":"2021-03-23 14:30:54.000000000","message":"I did some tests around, cipher_suite will exist and be set to None, I will change to .get() \u003d)","commit_id":"374ab5183c97b58c99847734d590dc5b5fa98737"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"8f3850cfc46056c09def9e9cd4ca4bd53229f2f5","unresolved":true,"context_lines":[{"line_number":530,"context_line":"    \"\"\""},{"line_number":531,"context_line":"    available_cs_versions \u003d CONF.ipmi.cipher_suite_versions"},{"line_number":532,"context_line":"    if actual_ciper_suite is None:"},{"line_number":533,"context_line":"        return available_cs_versions[-1]"},{"line_number":534,"context_line":"    else:"},{"line_number":535,"context_line":"        try:"},{"line_number":536,"context_line":"            cs_index \u003d available_cs_versions.index(actual_ciper_suite)"}],"source_content_type":"text/x-python","patch_set":3,"id":"0d921a88_181b6693","line":533,"updated":"2021-03-25 02:40:38.000000000","message":"I can see choose_cipher_suite won\u0027t be called when CONF.ipmi.cipher_suite_versions \u003d\u003d [], but can this function handle that case anyway, and have a unit test to prove it?","commit_id":"7003641f55e32250bf2744745f8ab2e56933f68f"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"7e61e58ecca1b853144de867c3c067e3d113f1f8","unresolved":true,"context_lines":[{"line_number":530,"context_line":"    \"\"\""},{"line_number":531,"context_line":"    available_cs_versions \u003d CONF.ipmi.cipher_suite_versions"},{"line_number":532,"context_line":"    if actual_ciper_suite is None:"},{"line_number":533,"context_line":"        return available_cs_versions[-1]"},{"line_number":534,"context_line":"    else:"},{"line_number":535,"context_line":"        try:"},{"line_number":536,"context_line":"            cs_index \u003d available_cs_versions.index(actual_ciper_suite)"}],"source_content_type":"text/x-python","patch_set":3,"id":"e9a04a42_6c08d053","line":533,"in_reply_to":"0d921a88_181b6693","updated":"2021-03-25 19:24:02.000000000","message":"The function would have problems with empty list, maybe return None in case the list is empty? Of course this shouldn\u0027t happen (since this will only be called when the list is non-empty.","commit_id":"7003641f55e32250bf2744745f8ab2e56933f68f"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"2b9d95ca885927bb853220b54a1d6d1c1f1763bc","unresolved":true,"context_lines":[{"line_number":530,"context_line":"        configuration."},{"line_number":531,"context_line":"    \"\"\""},{"line_number":532,"context_line":"    available_cs_versions \u003d CONF.ipmi.cipher_suite_versions"},{"line_number":533,"context_line":"    if available_cs_versions \u003d\u003d []:"},{"line_number":534,"context_line":"        return None"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    if actual_ciper_suite is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"169a2989_360c3f03","line":533,"updated":"2021-03-25 22:42:14.000000000","message":"The following would be better:\n\n     if not available_cs_versions:","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"1909ff4da5d77f8be6078d3572c95cc3152056a1","unresolved":false,"context_lines":[{"line_number":530,"context_line":"        configuration."},{"line_number":531,"context_line":"    \"\"\""},{"line_number":532,"context_line":"    available_cs_versions \u003d CONF.ipmi.cipher_suite_versions"},{"line_number":533,"context_line":"    if available_cs_versions \u003d\u003d []:"},{"line_number":534,"context_line":"        return None"},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"    if actual_ciper_suite is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"dfa87c23_8886219c","line":533,"in_reply_to":"169a2989_360c3f03","updated":"2021-03-26 00:43:11.000000000","message":"Done","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"2b9d95ca885927bb853220b54a1d6d1c1f1763bc","unresolved":true,"context_lines":[{"line_number":542,"context_line":"            return available_cs_versions[-1]"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"        new_index \u003d cs_index - 1 if cs_index \u003e 0 else 0"},{"line_number":545,"context_line":"        return available_cs_versions[new_index]"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"def check_cipher_suite_errors(cmd_stderr):"}],"source_content_type":"text/x-python","patch_set":4,"id":"36cd4dfe_ff99b7c0","line":545,"updated":"2021-03-25 22:42:14.000000000","message":"This could just be:\n\n  return available_cs_versions[max(cs_index - 1, 0)]\n\nBut it raises the question of what happens when the first element in the list is reached, it just keeps retrying and failing every time with the first element?\n\nMaybe we need a new NoValidCipherException with an informative message that includes the value of available_cs_versions. It could be raised on #534 too even though that will never be hit","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"1909ff4da5d77f8be6078d3572c95cc3152056a1","unresolved":true,"context_lines":[{"line_number":542,"context_line":"            return available_cs_versions[-1]"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"        new_index \u003d cs_index - 1 if cs_index \u003e 0 else 0"},{"line_number":545,"context_line":"        return available_cs_versions[new_index]"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"def check_cipher_suite_errors(cmd_stderr):"}],"source_content_type":"text/x-python","patch_set":4,"id":"dd792b70_83de003f","line":545,"in_reply_to":"36cd4dfe_ff99b7c0","updated":"2021-03-26 00:43:11.000000000","message":"We will keep using the first element \u003d), yeah it will keep retrying and using the first element (in case of a list with 1 element or with only a few options with values that doesn\u0027t work and raises the exception), since the operator will choose the values they should choose values that will work I would say,\n\nI\u0027ve changed the return \u003d)","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"b73fb65cec37c62e3c4d04a7e0ea98aaeb042858","unresolved":false,"context_lines":[{"line_number":542,"context_line":"            return available_cs_versions[-1]"},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"        new_index \u003d cs_index - 1 if cs_index \u003e 0 else 0"},{"line_number":545,"context_line":"        return available_cs_versions[new_index]"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"def check_cipher_suite_errors(cmd_stderr):"}],"source_content_type":"text/x-python","patch_set":4,"id":"0ebda355_9889a0ae","line":545,"in_reply_to":"dd792b70_83de003f","updated":"2021-03-26 03:04:26.000000000","message":"Done","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"2b9d95ca885927bb853220b54a1d6d1c1f1763bc","unresolved":true,"context_lines":[{"line_number":615,"context_line":"        if (cs_problem and change_cs) or (keep_cs and not cs_problem"},{"line_number":616,"context_line":"                                          and not change_cs):"},{"line_number":617,"context_line":"            cmd_args.append(\u0027-C\u0027)"},{"line_number":618,"context_line":"            cmd_args.append(actual_cs)"},{"line_number":619,"context_line":"        # \u0027ipmitool\u0027 command will prompt password if there is no \u0027-f\u0027"},{"line_number":620,"context_line":"        # option, we set it to \u0027\\0\u0027 to write a password file to support"},{"line_number":621,"context_line":"        # empty password"}],"source_content_type":"text/x-python","patch_set":4,"id":"370e3921_5d7914d6","line":618,"updated":"2021-03-25 22:42:14.000000000","message":"How about this as an alternative for this function\n\n- remove the actual_cs variable, always get it from driver_info.get(\u0027cipher_suite\u0027)\n- #580 before the call to _get_ipmitool_args try to ensure driver_info.get(\u0027cipher_suite\u0027) isn\u0027t empty by populating it with choose_cipher_suite()\n- in the check_cipher_suite_errors block below, find the existing -C argument and change it for the next attempt (otherwise append a new one). This is probably complex enough for a new function\n- maybe with this approach cs_problem and keep_cs won\u0027t be needed either, I find all the logic combinations a bit confusing to keep track of","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"648076a79df29aff2cc29243fd7edef429ba1f5f","unresolved":true,"context_lines":[{"line_number":615,"context_line":"        if (cs_problem and change_cs) or (keep_cs and not cs_problem"},{"line_number":616,"context_line":"                                          and not change_cs):"},{"line_number":617,"context_line":"            cmd_args.append(\u0027-C\u0027)"},{"line_number":618,"context_line":"            cmd_args.append(actual_cs)"},{"line_number":619,"context_line":"        # \u0027ipmitool\u0027 command will prompt password if there is no \u0027-f\u0027"},{"line_number":620,"context_line":"        # option, we set it to \u0027\\0\u0027 to write a password file to support"},{"line_number":621,"context_line":"        # empty password"}],"source_content_type":"text/x-python","patch_set":4,"id":"d7ad6868_a60acaf7","line":618,"in_reply_to":"370e3921_5d7914d6","updated":"2021-03-26 01:34:15.000000000","message":"This doesn\u0027t need to be actioned, maybe some other reviewers can add their thoughts","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"b73fb65cec37c62e3c4d04a7e0ea98aaeb042858","unresolved":false,"context_lines":[{"line_number":615,"context_line":"        if (cs_problem and change_cs) or (keep_cs and not cs_problem"},{"line_number":616,"context_line":"                                          and not change_cs):"},{"line_number":617,"context_line":"            cmd_args.append(\u0027-C\u0027)"},{"line_number":618,"context_line":"            cmd_args.append(actual_cs)"},{"line_number":619,"context_line":"        # \u0027ipmitool\u0027 command will prompt password if there is no \u0027-f\u0027"},{"line_number":620,"context_line":"        # option, we set it to \u0027\\0\u0027 to write a password file to support"},{"line_number":621,"context_line":"        # empty password"}],"source_content_type":"text/x-python","patch_set":4,"id":"f872d8a8_15b81c94","line":618,"in_reply_to":"d7ad6868_a60acaf7","updated":"2021-03-26 03:04:26.000000000","message":"I\u0027ve removed this using the idea you gave to check the -C arg and update the CS value for the next execution.","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"2b9d95ca885927bb853220b54a1d6d1c1f1763bc","unresolved":true,"context_lines":[{"line_number":624,"context_line":"            cmd_args.append(pw_file)"},{"line_number":625,"context_line":"            cmd_args.extend(command.split(\" \"))"},{"line_number":626,"context_line":"            try:"},{"line_number":627,"context_line":"                out, err \u003d utils.execute(*cmd_args, **extra_args)"},{"line_number":628,"context_line":"                return out, err"},{"line_number":629,"context_line":"            except processutils.ProcessExecutionError as e:"},{"line_number":630,"context_line":"                if change_cs and check_cipher_suite_errors(e.stderr):"}],"source_content_type":"text/x-python","patch_set":4,"id":"c495de3f_5c2b3607","line":627,"updated":"2021-03-25 22:42:14.000000000","message":"If the cipher suite changed and command succeeded, shouldn\u0027t we persist the suite code back to node.driver_info[\u0027ipmi_cipher_suite\u0027]? That way we won\u0027t need to do this suite negotiation for every call to ipmitool","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"b73fb65cec37c62e3c4d04a7e0ea98aaeb042858","unresolved":false,"context_lines":[{"line_number":624,"context_line":"            cmd_args.append(pw_file)"},{"line_number":625,"context_line":"            cmd_args.extend(command.split(\" \"))"},{"line_number":626,"context_line":"            try:"},{"line_number":627,"context_line":"                out, err \u003d utils.execute(*cmd_args, **extra_args)"},{"line_number":628,"context_line":"                return out, err"},{"line_number":629,"context_line":"            except processutils.ProcessExecutionError as e:"},{"line_number":630,"context_line":"                if change_cs and check_cipher_suite_errors(e.stderr):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5d16759e_b230b1cb","line":627,"in_reply_to":"278995f4_6ac5693a","updated":"2021-03-26 03:04:26.000000000","message":"Sure \u003d)","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"648076a79df29aff2cc29243fd7edef429ba1f5f","unresolved":true,"context_lines":[{"line_number":624,"context_line":"            cmd_args.append(pw_file)"},{"line_number":625,"context_line":"            cmd_args.extend(command.split(\" \"))"},{"line_number":626,"context_line":"            try:"},{"line_number":627,"context_line":"                out, err \u003d utils.execute(*cmd_args, **extra_args)"},{"line_number":628,"context_line":"                return out, err"},{"line_number":629,"context_line":"            except processutils.ProcessExecutionError as e:"},{"line_number":630,"context_line":"                if change_cs and check_cipher_suite_errors(e.stderr):"}],"source_content_type":"text/x-python","patch_set":4,"id":"278995f4_6ac5693a","line":627,"in_reply_to":"2cd842f4_f2ae8f11","updated":"2021-03-26 01:34:15.000000000","message":"Maybe a second change in the series can add a node argument to _exec_ipmitool and implement persisting ipmi_cipher_suite","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"1909ff4da5d77f8be6078d3572c95cc3152056a1","unresolved":true,"context_lines":[{"line_number":624,"context_line":"            cmd_args.append(pw_file)"},{"line_number":625,"context_line":"            cmd_args.extend(command.split(\" \"))"},{"line_number":626,"context_line":"            try:"},{"line_number":627,"context_line":"                out, err \u003d utils.execute(*cmd_args, **extra_args)"},{"line_number":628,"context_line":"                return out, err"},{"line_number":629,"context_line":"            except processutils.ProcessExecutionError as e:"},{"line_number":630,"context_line":"                if change_cs and check_cipher_suite_errors(e.stderr):"}],"source_content_type":"text/x-python","patch_set":4,"id":"2cd842f4_f2ae8f11","line":627,"in_reply_to":"c495de3f_5c2b3607","updated":"2021-03-26 00:43:11.000000000","message":"since we don\u0027t have access to node to do node.save() I don\u0027t think we can 😕","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"6d65b54aa5cbce591fbefe4a63639cb4ab9382fa","unresolved":true,"context_lines":[{"line_number":581,"context_line":"            args.append(\u0027-C\u0027)"},{"line_number":582,"context_line":"            args.append(actual_cs)"},{"line_number":583,"context_line":"        cs_problem \u003d True"},{"line_number":584,"context_line":"    else:"},{"line_number":585,"context_line":"        actual_cs \u003d choose_cipher_suite(actual_cs)"},{"line_number":586,"context_line":"        if \u0027-C\u0027 in args:"},{"line_number":587,"context_line":"            cs_index \u003d args.index(\u0027-C\u0027) + 1"}],"source_content_type":"text/x-python","patch_set":5,"id":"d007ee67_e1890e1e","line":584,"updated":"2021-03-29 03:28:34.000000000","message":"It looks like everything above this isn\u0027t needed, #585-#591 does it all because actual_cs is None on the first run","commit_id":"6fe2d5355a5ebb452eb9ed058d5082bf788ab25a"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a43bc40494d5d3172bf2930c3cccc8146e136307","unresolved":false,"context_lines":[{"line_number":581,"context_line":"            args.append(\u0027-C\u0027)"},{"line_number":582,"context_line":"            args.append(actual_cs)"},{"line_number":583,"context_line":"        cs_problem \u003d True"},{"line_number":584,"context_line":"    else:"},{"line_number":585,"context_line":"        actual_cs \u003d choose_cipher_suite(actual_cs)"},{"line_number":586,"context_line":"        if \u0027-C\u0027 in args:"},{"line_number":587,"context_line":"            cs_index \u003d args.index(\u0027-C\u0027) + 1"}],"source_content_type":"text/x-python","patch_set":5,"id":"791f95ac_d7aec111","line":584,"in_reply_to":"d007ee67_e1890e1e","updated":"2021-03-29 03:43:06.000000000","message":"Done","commit_id":"6fe2d5355a5ebb452eb9ed058d5082bf788ab25a"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"6d65b54aa5cbce591fbefe4a63639cb4ab9382fa","unresolved":true,"context_lines":[{"line_number":590,"context_line":"            args.append(\u0027-C\u0027)"},{"line_number":591,"context_line":"            args.append(actual_cs)"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"    return (cs_problem, actual_cs, args)"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"def _exec_ipmitool(driver_info, command, check_exit_code\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"25dc351b_8d8e4478","line":593,"range":{"start_line":593,"start_character":12,"end_line":593,"end_character":22},"updated":"2021-03-29 03:28:34.000000000","message":"This can always be True","commit_id":"6fe2d5355a5ebb452eb9ed058d5082bf788ab25a"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"a43bc40494d5d3172bf2930c3cccc8146e136307","unresolved":true,"context_lines":[{"line_number":590,"context_line":"            args.append(\u0027-C\u0027)"},{"line_number":591,"context_line":"            args.append(actual_cs)"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"    return (cs_problem, actual_cs, args)"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"def _exec_ipmitool(driver_info, command, check_exit_code\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dabbb6ab_a90ec1b4","line":593,"range":{"start_line":593,"start_character":12,"end_line":593,"end_character":22},"in_reply_to":"25dc351b_8d8e4478","updated":"2021-03-29 03:43:06.000000000","message":"So I should just return True here ? ( to be sure I understood)","commit_id":"6fe2d5355a5ebb452eb9ed058d5082bf788ab25a"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"7339afcf315f4d065d23cd408d080159d28fbfc1","unresolved":false,"context_lines":[{"line_number":590,"context_line":"            args.append(\u0027-C\u0027)"},{"line_number":591,"context_line":"            args.append(actual_cs)"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"    return (cs_problem, actual_cs, args)"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"def _exec_ipmitool(driver_info, command, check_exit_code\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7da21e9b_fb068970","line":593,"range":{"start_line":593,"start_character":12,"end_line":593,"end_character":22},"in_reply_to":"dabbb6ab_a90ec1b4","updated":"2021-03-29 03:50:29.000000000","message":"nvm, I can just remove since it will be True","commit_id":"6fe2d5355a5ebb452eb9ed058d5082bf788ab25a"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"e1fc405289ec6b1bcfc1407858cf922d178e9acc","unresolved":true,"context_lines":[{"line_number":515,"context_line":"    ]"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"def choose_cipher_suite(actual_ciper_suite):"},{"line_number":519,"context_line":"    \"\"\"Gives the possible next avaible cipher suite version."},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"    Based on CONF.ipmi.cipher_suite_versions and the last cipher suite version"}],"source_content_type":"text/x-python","patch_set":6,"id":"bed0f67b_b22e47df","line":518,"range":{"start_line":518,"start_character":24,"end_line":518,"end_character":42},"updated":"2021-03-29 07:31:36.000000000","message":"nit: actual_cipher_suite","commit_id":"b029fb377001cfe5d727ead1d2a26535c720b381"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"662cf36aad91562bc5dee5d353570c4130563811","unresolved":false,"context_lines":[{"line_number":515,"context_line":"    ]"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"def choose_cipher_suite(actual_ciper_suite):"},{"line_number":519,"context_line":"    \"\"\"Gives the possible next avaible cipher suite version."},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"    Based on CONF.ipmi.cipher_suite_versions and the last cipher suite version"}],"source_content_type":"text/x-python","patch_set":6,"id":"cc6e5a02_1e924369","line":518,"range":{"start_line":518,"start_character":24,"end_line":518,"end_character":42},"in_reply_to":"bed0f67b_b22e47df","updated":"2021-03-30 00:19:48.000000000","message":"Done","commit_id":"b029fb377001cfe5d727ead1d2a26535c720b381"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"41b31c89a099665a6ac3db6af34b393b517ec68d","unresolved":true,"context_lines":[{"line_number":581,"context_line":"        args.append(\u0027-C\u0027)"},{"line_number":582,"context_line":"        args.append(actual_cs)"},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"    return (actual_cs, args)"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"def _exec_ipmitool(driver_info, command, check_exit_code\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bb1a7cf9_39ed23af","line":584,"updated":"2021-03-29 03:56:55.000000000","message":"nit, args don\u0027t strictly need to be returned, they\u0027re modified in-place","commit_id":"b029fb377001cfe5d727ead1d2a26535c720b381"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"662cf36aad91562bc5dee5d353570c4130563811","unresolved":false,"context_lines":[{"line_number":581,"context_line":"        args.append(\u0027-C\u0027)"},{"line_number":582,"context_line":"        args.append(actual_cs)"},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"    return (actual_cs, args)"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"def _exec_ipmitool(driver_info, command, check_exit_code\u003dNone,"}],"source_content_type":"text/x-python","patch_set":6,"id":"8d145640_aa6b50c8","line":584,"in_reply_to":"bb1a7cf9_39ed23af","updated":"2021-03-30 00:19:48.000000000","message":"Yeah \u003d) updating","commit_id":"b029fb377001cfe5d727ead1d2a26535c720b381"}],"ironic/tests/unit/drivers/modules/test_ipmitool.py":[{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"8f3850cfc46056c09def9e9cd4ca4bd53229f2f5","unresolved":true,"context_lines":[{"line_number":1751,"context_line":"        self.assertEqual(3, mock_check_cs.call_count)"},{"line_number":1752,"context_line":"        mock_choose_cs.assert_has_calls([mock.call(None), mock.call(\u002717\u0027)])"},{"line_number":1753,"context_line":"        self.assertEqual(2, mock_choose_cs.call_count)"},{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":"    @mock.patch.object(ipmi, \u0027_is_option_supported\u0027, autospec\u003dTrue)"},{"line_number":1756,"context_line":"    @mock.patch.object(ipmi, \u0027_make_password_file\u0027, _make_password_file_stub)"},{"line_number":1757,"context_line":"    @mock.patch.object(utils, \u0027execute\u0027, autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"2bb6fc43_a0e0a0f2","line":1754,"updated":"2021-03-25 02:40:38.000000000","message":"These are all _exec_ipmitool unit tests, can there be some tests for the functions choose_cipher_suite and check_cipher_suite_errors?","commit_id":"7003641f55e32250bf2744745f8ab2e56933f68f"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"7e61e58ecca1b853144de867c3c067e3d113f1f8","unresolved":true,"context_lines":[{"line_number":1751,"context_line":"        self.assertEqual(3, mock_check_cs.call_count)"},{"line_number":1752,"context_line":"        mock_choose_cs.assert_has_calls([mock.call(None), mock.call(\u002717\u0027)])"},{"line_number":1753,"context_line":"        self.assertEqual(2, mock_choose_cs.call_count)"},{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":"    @mock.patch.object(ipmi, \u0027_is_option_supported\u0027, autospec\u003dTrue)"},{"line_number":1756,"context_line":"    @mock.patch.object(ipmi, \u0027_make_password_file\u0027, _make_password_file_stub)"},{"line_number":1757,"context_line":"    @mock.patch.object(utils, \u0027execute\u0027, autospec\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ee55609_8a4a6e20","line":1754,"in_reply_to":"2bb6fc43_a0e0a0f2","updated":"2021-03-25 19:24:02.000000000","message":"Sure I will add specific tests","commit_id":"7003641f55e32250bf2744745f8ab2e56933f68f"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"2b9d95ca885927bb853220b54a1d6d1c1f1763bc","unresolved":true,"context_lines":[{"line_number":1606,"context_line":"    @mock.patch.object(ipmi, \u0027_is_option_supported\u0027, autospec\u003dTrue)"},{"line_number":1607,"context_line":"    @mock.patch.object(ipmi, \u0027_make_password_file\u0027, _make_password_file_stub)"},{"line_number":1608,"context_line":"    @mock.patch.object(ipmi, \u0027check_cipher_suite_errors\u0027, autospec\u003dTrue)"},{"line_number":1609,"context_line":"    @mock.patch.object(ipmi, \u0027choose_cipher_suite\u0027, autospec\u003dTrue)"},{"line_number":1610,"context_line":"    @mock.patch.object(utils, \u0027execute\u0027, autospec\u003dTrue)"},{"line_number":1611,"context_line":"    def test__exec_ipmitool_try_different_cipher_suite("},{"line_number":1612,"context_line":"            self, mock_exec, mock_choose_cs, mock_check_cs, mock_support):"}],"source_content_type":"text/x-python","patch_set":4,"id":"74b24878_67ea559e","line":1609,"updated":"2021-03-25 22:42:14.000000000","message":"Does choose_cipher_suite really need to be mocked in these tests? It should be enough to set CONF.ipmi.cipher_suite_versions which you are.","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"34bb20268c243d9299c36980430dd5ce690629fb","unresolved":false,"context_lines":[{"line_number":1606,"context_line":"    @mock.patch.object(ipmi, \u0027_is_option_supported\u0027, autospec\u003dTrue)"},{"line_number":1607,"context_line":"    @mock.patch.object(ipmi, \u0027_make_password_file\u0027, _make_password_file_stub)"},{"line_number":1608,"context_line":"    @mock.patch.object(ipmi, \u0027check_cipher_suite_errors\u0027, autospec\u003dTrue)"},{"line_number":1609,"context_line":"    @mock.patch.object(ipmi, \u0027choose_cipher_suite\u0027, autospec\u003dTrue)"},{"line_number":1610,"context_line":"    @mock.patch.object(utils, \u0027execute\u0027, autospec\u003dTrue)"},{"line_number":1611,"context_line":"    def test__exec_ipmitool_try_different_cipher_suite("},{"line_number":1612,"context_line":"            self, mock_exec, mock_choose_cs, mock_check_cs, mock_support):"}],"source_content_type":"text/x-python","patch_set":4,"id":"62910ab1_94c97494","line":1609,"in_reply_to":"74b24878_67ea559e","updated":"2021-03-26 00:53:43.000000000","message":"yeah you are right ✔","commit_id":"6221e512a7b4510b45d1d2fcce0f68031f7cec27"}]}
