)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":35166,"name":"Romulo Jose Lyra Leite","email":"romulo.leite@windriver.com","username":"rlyra"},"change_message_id":"87a57654b0bd23943033f8ac4950de34e8bfac02","unresolved":true,"context_lines":[{"line_number":18,"context_line":"PASS - Validate False return when NetApp backend is not available"},{"line_number":19,"context_line":"PASS - Validate False if wrong namespace is used"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I1f3cce6ff21b3babd26cbf18648962da1b5eaab8"},{"line_number":22,"context_line":"Signed-off-by: Johnny Chia \u003cjohnny.chialung@windriver.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3e7db3be_982ef638","line":21,"updated":"2024-11-13 20:45:33.000000000","message":"Its missing launchpad task","commit_id":"82b6fb5d173aa0f7dac8d1ff4901647d6ad281d5"},{"author":{"_account_id":37226,"name":"Johnny Chia","display_name":"Johnny Chia","email":"johnny.chialung@windriver.com","username":"jchialun"},"change_message_id":"600917b77174d99778b942d2509e1c53bf55132d","unresolved":false,"context_lines":[{"line_number":18,"context_line":"PASS - Validate False return when NetApp backend is not available"},{"line_number":19,"context_line":"PASS - Validate False if wrong namespace is used"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I1f3cce6ff21b3babd26cbf18648962da1b5eaab8"},{"line_number":22,"context_line":"Signed-off-by: Johnny Chia \u003cjohnny.chialung@windriver.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"03873d69_2295521a","line":21,"in_reply_to":"3e7db3be_982ef638","updated":"2024-11-13 21:33:49.000000000","message":"Done","commit_id":"82b6fb5d173aa0f7dac8d1ff4901647d6ad281d5"},{"author":{"_account_id":37173,"name":"Alex Fernandes Figueirêdo","display_name":"Alex Figueiredo","email":"alex.fernandesfigueiredo@windriver.com","username":"afernand"},"change_message_id":"2403a30d47ce5e8ae16d25cd43f65cbd9eb6b8ee","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Create a function to validate if NetApp is available"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"STX-O needs to support NetApp storage backend. A new function should be created to validate"},{"line_number":10,"context_line":"if there is support for the NetApp storage system. Whenever it is necessary for Cinder,"},{"line_number":11,"context_line":"Glance or Nova to check for NetApp storage backend support, this function will be used."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This commit creates a new function that returns True if NetApp backend is available and"},{"line_number":14,"context_line":"False if it is not."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Test Plan:"},{"line_number":17,"context_line":"PASS - Validate True return when NetApp backend is available"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"a218b012_c24c24ac","line":14,"range":{"start_line":9,"start_character":0,"end_line":14,"end_character":19},"updated":"2024-11-20 18:12:48.000000000","message":"[nit] Lines should be wrapped at 72 characters [1]\n\n[1] https://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"cf01ffcdff2f36e7e444aa98c7d4bc2f4178a628"},{"author":{"_account_id":37226,"name":"Johnny Chia","display_name":"Johnny Chia","email":"johnny.chialung@windriver.com","username":"jchialun"},"change_message_id":"41e87feb1840efbf9ddf745147951c0ac9f04e40","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Create a function to validate if NetApp is available"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"STX-O needs to support NetApp storage backend. A new function should be created to validate"},{"line_number":10,"context_line":"if there is support for the NetApp storage system. Whenever it is necessary for Cinder,"},{"line_number":11,"context_line":"Glance or Nova to check for NetApp storage backend support, this function will be used."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This commit creates a new function that returns True if NetApp backend is available and"},{"line_number":14,"context_line":"False if it is not."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Test Plan:"},{"line_number":17,"context_line":"PASS - Validate True return when NetApp backend is available"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"57df2735_9585e743","line":14,"range":{"start_line":9,"start_character":0,"end_line":14,"end_character":19},"in_reply_to":"a218b012_c24c24ac","updated":"2024-11-25 14:56:38.000000000","message":"Done","commit_id":"cf01ffcdff2f36e7e444aa98c7d4bc2f4178a628"},{"author":{"_account_id":35166,"name":"Romulo Jose Lyra Leite","email":"romulo.leite@windriver.com","username":"rlyra"},"change_message_id":"72fe7071490514f1e643981d81b94681c2a08ba1","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This commit creates a new function that returns True if NetApp backend is available and"},{"line_number":14,"context_line":"False if it is not."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Test Plan:"},{"line_number":17,"context_line":"PASS - Validate True return when NetApp backend is available"},{"line_number":18,"context_line":"PASS - Validate False return when NetApp backend is not available"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"a8f087d5_405f763f","line":15,"updated":"2024-11-20 17:57:05.000000000","message":"Its missing the storyboard story \u0026 task","commit_id":"cf01ffcdff2f36e7e444aa98c7d4bc2f4178a628"},{"author":{"_account_id":37226,"name":"Johnny Chia","display_name":"Johnny Chia","email":"johnny.chialung@windriver.com","username":"jchialun"},"change_message_id":"41e87feb1840efbf9ddf745147951c0ac9f04e40","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This commit creates a new function that returns True if NetApp backend is available and"},{"line_number":14,"context_line":"False if it is not."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Test Plan:"},{"line_number":17,"context_line":"PASS - Validate True return when NetApp backend is available"},{"line_number":18,"context_line":"PASS - Validate False return when NetApp backend is not available"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a75165e_26081aaa","line":15,"in_reply_to":"0c981ab4_cb296007","updated":"2024-11-25 14:56:38.000000000","message":"Sorry I did created the task but it seems the when I did git review I overwrote it. Solved","commit_id":"cf01ffcdff2f36e7e444aa98c7d4bc2f4178a628"},{"author":{"_account_id":33594,"name":"Thales Elero Cervi","display_name":"Thales Cervi","email":"thaleselero.cervi@windriver.com","username":"tcervi"},"change_message_id":"b198578a0a36f8470b168bfe156632ee417f0407","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This commit creates a new function that returns True if NetApp backend is available and"},{"line_number":14,"context_line":"False if it is not."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Test Plan:"},{"line_number":17,"context_line":"PASS - Validate True return when NetApp backend is available"},{"line_number":18,"context_line":"PASS - Validate False return when NetApp backend is not available"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"0c981ab4_cb296007","line":15,"in_reply_to":"a8f087d5_405f763f","updated":"2024-11-25 14:03:52.000000000","message":"I will be creating one for this today. Thanks, Romulo","commit_id":"cf01ffcdff2f36e7e444aa98c7d4bc2f4178a628"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"60a0c2ffa7806061c18b637724c300a1750c6b90","unresolved":true,"context_lines":[{"line_number":14,"context_line":"This commit creates a new function that returns True if NetApp backend"},{"line_number":15,"context_line":"is available and False if it is not."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Test Plan:"},{"line_number":18,"context_line":"PASS - Validate True return when NetApp backend is available"},{"line_number":19,"context_line":"PASS - Validate False return when NetApp backend is not available"},{"line_number":20,"context_line":"PASS - Validate False if wrong namespace is used"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"29d80ecd_b09214e9","line":17,"updated":"2024-11-27 14:19:25.000000000","message":"Did this test plan verify if this works in an application upload / apply?","commit_id":"a43793f86eafe1c0f55b719caff2f993de1cf5b0"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"29508a39375a948ec909f0da85482ae349ef644b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This commit creates a new function that returns True if NetApp backend"},{"line_number":15,"context_line":"is available and False if it is not."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Test Plan:"},{"line_number":18,"context_line":"PASS - Validate True return when NetApp backend is available"},{"line_number":19,"context_line":"PASS - Validate False return when NetApp backend is not available"},{"line_number":20,"context_line":"PASS - Validate False if wrong namespace is used"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"f1dcd512_97e0ee19","line":17,"in_reply_to":"29d80ecd_b09214e9","updated":"2024-12-02 18:37:37.000000000","message":"Done","commit_id":"a43793f86eafe1c0f55b719caff2f993de1cf5b0"},{"author":{"_account_id":33594,"name":"Thales Elero Cervi","display_name":"Thales Cervi","email":"thaleselero.cervi@windriver.com","username":"tcervi"},"change_message_id":"fb6b0ad19703a433319cc1782b0ed02e16abf1fc","unresolved":false,"context_lines":[{"line_number":19,"context_line":"PASS - Validate False return when NetApp backend is not available"},{"line_number":20,"context_line":"PASS - Validate False if wrong namespace is used"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Story: 2011281"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I1f3cce6ff21b3babd26cbf18648962da1b5eaab8"},{"line_number":25,"context_line":"Signed-off-by: Johnny Chia \u003cjohnny.chialung@windriver.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"386bb7b9_bb952f26","line":22,"updated":"2024-11-27 01:36:03.000000000","message":"Thanks for creating the storyboard, Johnny.","commit_id":"a43793f86eafe1c0f55b719caff2f993de1cf5b0"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"611a5759726cfd1cf129520833200376c89b0601","unresolved":true,"context_lines":[{"line_number":20,"context_line":"PASS - Validate False if wrong namespace is used"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Story: 2011281"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I1f3cce6ff21b3babd26cbf18648962da1b5eaab8"},{"line_number":25,"context_line":"Signed-off-by: Johnny Chia \u003cjohnny.chialung@windriver.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"1b3ecff9_637c7052","line":23,"updated":"2024-11-27 12:24:01.000000000","message":"Please add the task related to this change as well","commit_id":"a43793f86eafe1c0f55b719caff2f993de1cf5b0"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"29508a39375a948ec909f0da85482ae349ef644b","unresolved":false,"context_lines":[{"line_number":20,"context_line":"PASS - Validate False if wrong namespace is used"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Story: 2011281"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I1f3cce6ff21b3babd26cbf18648962da1b5eaab8"},{"line_number":25,"context_line":"Signed-off-by: Johnny Chia \u003cjohnny.chialung@windriver.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"586494ff_c732615b","line":23,"in_reply_to":"1b3ecff9_637c7052","updated":"2024-12-02 18:37:37.000000000","message":"Done","commit_id":"a43793f86eafe1c0f55b719caff2f993de1cf5b0"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"756adb2f994c3bdd4f7efa692706ffe40efe4bd5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"7d0aedfa_2cf70fbb","updated":"2024-11-14 14:08:24.000000000","message":"Thanks for the change, Johnny! I just have some comments that would make development easier later on.","commit_id":"9751b04d7037f2bec5d03efca6296dd81de58cd8"},{"author":{"_account_id":37229,"name":"Murillo Arantes","display_name":"Murillo Arantes","email":"murillo.arantes@windriver.com","username":"marantes"},"change_message_id":"482ec3fb76ab0a87950724ac96e1e64f8d244507","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e45037d3_7f694f4d","updated":"2024-11-14 14:47:27.000000000","message":"Thanks for the good work Johnny! I just have a comment regarding error/exception handling","commit_id":"9751b04d7037f2bec5d03efca6296dd81de58cd8"},{"author":{"_account_id":33594,"name":"Thales Elero Cervi","display_name":"Thales Cervi","email":"thaleselero.cervi@windriver.com","username":"tcervi"},"change_message_id":"fb6b0ad19703a433319cc1782b0ed02e16abf1fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"2b85030b_f62dc875","updated":"2024-11-27 01:36:03.000000000","message":"Waiting on the generic exception handling before bumping my CR+2","commit_id":"a43793f86eafe1c0f55b719caff2f993de1cf5b0"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"8feb7ce50c5defae8236f929502525cca1d41188","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"a6c8cc0c_0152d85c","updated":"2024-12-02 14:54:33.000000000","message":"I cannot put this as WIP, but the `check_netapp_backends` is still not working as expected. Will leave a -1 while I fix it","commit_id":"71cfd8d29f7aedfc30bc4f1652a8f45185100ead"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"29508a39375a948ec909f0da85482ae349ef644b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"a465b8b7_e92d00a4","updated":"2024-12-02 18:37:37.000000000","message":"This is ready for review","commit_id":"1ac50947440ca43aa9229edff47be9f24562ca64"},{"author":{"_account_id":37078,"name":"Daniel Marques Caires","display_name":"Daniel Caires","email":"DanielMarques.Caires@windriver.com","username":"dcaires"},"change_message_id":"224b47375b833b05a64460cf98f083dcd7e91e84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"3bdee238_b56dac5b","updated":"2024-12-03 12:57:44.000000000","message":"LGTM!","commit_id":"9d2686a1be825c131402ac0b1977edf839ee7270"},{"author":{"_account_id":37173,"name":"Alex Fernandes Figueirêdo","display_name":"Alex Figueiredo","email":"alex.fernandesfigueiredo@windriver.com","username":"afernand"},"change_message_id":"50a1dd4379205aff027614ad922c4ea9696ce665","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"e0e0dc2f_f904377d","updated":"2024-12-03 13:33:19.000000000","message":"@lucas.deataidesbarreto@windriver.com could you please review the definition of configs/constants used by the new function?","commit_id":"0a3a6b65b32ccf0e6b8bdfd8fcb11484246cbac6"},{"author":{"_account_id":37229,"name":"Murillo Arantes","display_name":"Murillo Arantes","email":"murillo.arantes@windriver.com","username":"marantes"},"change_message_id":"313be6c762e3978d821443c9a6a626d8c02a40c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"c1a67c11_1871d59e","updated":"2024-12-03 13:33:50.000000000","message":"Thanks Lucas, great job","commit_id":"0a3a6b65b32ccf0e6b8bdfd8fcb11484246cbac6"},{"author":{"_account_id":37078,"name":"Daniel Marques Caires","display_name":"Daniel Caires","email":"DanielMarques.Caires@windriver.com","username":"dcaires"},"change_message_id":"b5c88f90bf538b9d93b3eda6a8c6df25f87819a5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"aef8c364_3a43902c","updated":"2024-12-03 17:55:42.000000000","message":"LGTM!","commit_id":"6650a115851e2279dea26de731552ba14b657c8a"},{"author":{"_account_id":37173,"name":"Alex Fernandes Figueirêdo","display_name":"Alex Figueiredo","email":"alex.fernandesfigueiredo@windriver.com","username":"afernand"},"change_message_id":"424cbaf04bc81e8cba2cce62e985ffe3d0c3a9cf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"44b5b7f8_0b6de412","updated":"2024-12-03 17:34:27.000000000","message":"Thanks for","commit_id":"6650a115851e2279dea26de731552ba14b657c8a"}],"python3-k8sapp-openstack/k8sapp_openstack/k8sapp_openstack/utils.py":[{"author":{"_account_id":35166,"name":"Romulo Jose Lyra Leite","email":"romulo.leite@windriver.com","username":"rlyra"},"change_message_id":"87a57654b0bd23943033f8ac4950de34e8bfac02","unresolved":true,"context_lines":[{"line_number":463,"context_line":"        return f.read()"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"def is_netapp_available (namespace: str) -\u003e bool:"},{"line_number":467,"context_line":"    \"\"\"Returns true or false if NetApp backend is available"},{"line_number":468,"context_line":"    Args:"},{"line_number":469,"context_line":"        namespace (str): namespace name."}],"source_content_type":"text/x-python","patch_set":2,"id":"820e400e_075b09b3","line":466,"updated":"2024-11-13 20:45:33.000000000","message":"Function is not called anywhere, is there a related task planned for this?","commit_id":"82b6fb5d173aa0f7dac8d1ff4901647d6ad281d5"},{"author":{"_account_id":37226,"name":"Johnny Chia","display_name":"Johnny Chia","email":"johnny.chialung@windriver.com","username":"jchialun"},"change_message_id":"898195a9aae10ad22ec5e213fc3b795e6195c8cf","unresolved":false,"context_lines":[{"line_number":463,"context_line":"        return f.read()"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"def is_netapp_available (namespace: str) -\u003e bool:"},{"line_number":467,"context_line":"    \"\"\"Returns true or false if NetApp backend is available"},{"line_number":468,"context_line":"    Args:"},{"line_number":469,"context_line":"        namespace (str): namespace name."}],"source_content_type":"text/x-python","patch_set":2,"id":"e63214d9_d1681c4d","line":466,"in_reply_to":"820e400e_075b09b3","updated":"2024-11-13 20:54:07.000000000","message":"Yes they are related tasks for this for cinder, glance or any other service that may use NetApp Backend","commit_id":"82b6fb5d173aa0f7dac8d1ff4901647d6ad281d5"},{"author":{"_account_id":35166,"name":"Romulo Jose Lyra Leite","email":"romulo.leite@windriver.com","username":"rlyra"},"change_message_id":"87a57654b0bd23943033f8ac4950de34e8bfac02","unresolved":true,"context_lines":[{"line_number":468,"context_line":"    Args:"},{"line_number":469,"context_line":"        namespace (str): namespace name."},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"    Returns: "},{"line_number":472,"context_line":"        bool: True if Netapp backend is available or False if it is not"},{"line_number":473,"context_line":"    \"\"\""},{"line_number":474,"context_line":"    result \u003d subprocess.run("}],"source_content_type":"text/x-python","patch_set":2,"id":"9174761b_1aedefdc","line":471,"updated":"2024-11-13 20:45:33.000000000","message":"(nit) whitespace","commit_id":"82b6fb5d173aa0f7dac8d1ff4901647d6ad281d5"},{"author":{"_account_id":37226,"name":"Johnny Chia","display_name":"Johnny Chia","email":"johnny.chialung@windriver.com","username":"jchialun"},"change_message_id":"898195a9aae10ad22ec5e213fc3b795e6195c8cf","unresolved":false,"context_lines":[{"line_number":468,"context_line":"    Args:"},{"line_number":469,"context_line":"        namespace (str): namespace name."},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"    Returns: "},{"line_number":472,"context_line":"        bool: True if Netapp backend is available or False if it is not"},{"line_number":473,"context_line":"    \"\"\""},{"line_number":474,"context_line":"    result \u003d subprocess.run("}],"source_content_type":"text/x-python","patch_set":2,"id":"f45987e0_9824be10","line":471,"in_reply_to":"9174761b_1aedefdc","updated":"2024-11-13 20:54:07.000000000","message":"Done","commit_id":"82b6fb5d173aa0f7dac8d1ff4901647d6ad281d5"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"756adb2f994c3bdd4f7efa692706ffe40efe4bd5","unresolved":true,"context_lines":[{"line_number":463,"context_line":"        return f.read()"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"def is_netapp_available(namespace: str) -\u003e bool:"},{"line_number":467,"context_line":"    \"\"\"Returns true or false if NetApp backend is available"},{"line_number":468,"context_line":"    Args:"},{"line_number":469,"context_line":"        namespace (str): namespace name."}],"source_content_type":"text/x-python","patch_set":5,"id":"2ad8aa5b_d3c77e39","line":466,"updated":"2024-11-14 14:08:24.000000000","message":"Can we have a default value for this namespace? I\u0027m not an specialist on NetApp so I don\u0027t know what would be the default namespace","commit_id":"9751b04d7037f2bec5d03efca6296dd81de58cd8"},{"author":{"_account_id":37226,"name":"Johnny Chia","display_name":"Johnny Chia","email":"johnny.chialung@windriver.com","username":"jchialun"},"change_message_id":"a173e6244ce248ea8ddfad1729ba0fc35d3cfc56","unresolved":false,"context_lines":[{"line_number":463,"context_line":"        return f.read()"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"def is_netapp_available(namespace: str) -\u003e bool:"},{"line_number":467,"context_line":"    \"\"\"Returns true or false if NetApp backend is available"},{"line_number":468,"context_line":"    Args:"},{"line_number":469,"context_line":"        namespace (str): namespace name."}],"source_content_type":"text/x-python","patch_set":5,"id":"669fc466_ea9b9943","line":466,"in_reply_to":"2ad8aa5b_d3c77e39","updated":"2024-11-17 20:45:43.000000000","message":"Added a default namespace in constants that can be overridden.","commit_id":"9751b04d7037f2bec5d03efca6296dd81de58cd8"},{"author":{"_account_id":37229,"name":"Murillo Arantes","display_name":"Murillo Arantes","email":"murillo.arantes@windriver.com","username":"marantes"},"change_message_id":"482ec3fb76ab0a87950724ac96e1e64f8d244507","unresolved":true,"context_lines":[{"line_number":471,"context_line":"    Returns:"},{"line_number":472,"context_line":"        bool: True if Netapp backend is available or False if it is not"},{"line_number":473,"context_line":"    \"\"\""},{"line_number":474,"context_line":"    result \u003d subprocess.run("},{"line_number":475,"context_line":"        [\"tridentctl\", \"get\", \"backend\", \"-n\", namespace],"},{"line_number":476,"context_line":"        capture_output\u003dTrue,"},{"line_number":477,"context_line":"        text\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1541bf5b_bc2b8517","line":474,"updated":"2024-11-14 14:47:27.000000000","message":"What happens if we don\u0027t have tridentctl installed when running this command? Do we need to worry about exception handling? Another thing we could check/log is the result returncode","commit_id":"9751b04d7037f2bec5d03efca6296dd81de58cd8"},{"author":{"_account_id":37226,"name":"Johnny Chia","display_name":"Johnny Chia","email":"johnny.chialung@windriver.com","username":"jchialun"},"change_message_id":"a173e6244ce248ea8ddfad1729ba0fc35d3cfc56","unresolved":false,"context_lines":[{"line_number":471,"context_line":"    Returns:"},{"line_number":472,"context_line":"        bool: True if Netapp backend is available or False if it is not"},{"line_number":473,"context_line":"    \"\"\""},{"line_number":474,"context_line":"    result \u003d subprocess.run("},{"line_number":475,"context_line":"        [\"tridentctl\", \"get\", \"backend\", \"-n\", namespace],"},{"line_number":476,"context_line":"        capture_output\u003dTrue,"},{"line_number":477,"context_line":"        text\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9beaeb8b_c01bf53a","line":474,"in_reply_to":"1541bf5b_bc2b8517","updated":"2024-11-17 20:45:43.000000000","message":"Added a general execption to the subprocess.run","commit_id":"9751b04d7037f2bec5d03efca6296dd81de58cd8"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"756adb2f994c3bdd4f7efa692706ffe40efe4bd5","unresolved":true,"context_lines":[{"line_number":479,"context_line":"    if result.stderr !\u003d \"\":"},{"line_number":480,"context_line":"        LOG.warning(f\"`{result.stderr}` Error running the tridentctl command.\")"},{"line_number":481,"context_line":"        return False"},{"line_number":482,"context_line":"    if re.search(\u0027ontap-nas\u0027, result.stdout) is not None:"},{"line_number":483,"context_line":"        return True"},{"line_number":484,"context_line":"    LOG.debug(f\"`{result.stdout}` ontap-nas driver not found.\")"},{"line_number":485,"context_line":"    return False"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aed4652_59258742","line":482,"updated":"2024-11-14 14:08:24.000000000","message":"Do this differenciate between NetApp with NFS backend or iSCSI backend? Could we have another function that checks this?","commit_id":"9751b04d7037f2bec5d03efca6296dd81de58cd8"},{"author":{"_account_id":37226,"name":"Johnny Chia","display_name":"Johnny Chia","email":"johnny.chialung@windriver.com","username":"jchialun"},"change_message_id":"a173e6244ce248ea8ddfad1729ba0fc35d3cfc56","unresolved":false,"context_lines":[{"line_number":479,"context_line":"    if result.stderr !\u003d \"\":"},{"line_number":480,"context_line":"        LOG.warning(f\"`{result.stderr}` Error running the tridentctl command.\")"},{"line_number":481,"context_line":"        return False"},{"line_number":482,"context_line":"    if re.search(\u0027ontap-nas\u0027, result.stdout) is not None:"},{"line_number":483,"context_line":"        return True"},{"line_number":484,"context_line":"    LOG.debug(f\"`{result.stdout}` ontap-nas driver not found.\")"},{"line_number":485,"context_line":"    return False"}],"source_content_type":"text/x-python","patch_set":5,"id":"ed5cc4c4_550643c0","line":482,"in_reply_to":"7aed4652_59258742","updated":"2024-11-17 20:45:43.000000000","message":"No it does not, it only checks if either of those are available.","commit_id":"9751b04d7037f2bec5d03efca6296dd81de58cd8"},{"author":{"_account_id":37229,"name":"Murillo Arantes","display_name":"Murillo Arantes","email":"murillo.arantes@windriver.com","username":"marantes"},"change_message_id":"56c5c5ef1b4f0c61b5658e266c0694abd39204aa","unresolved":true,"context_lines":[{"line_number":493,"context_line":"        )"},{"line_number":494,"context_line":"    except subprocess.TimeoutExpired as exc:"},{"line_number":495,"context_line":"        LOG.error(f\"Process timed out.\\n{exc}\")"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    if result.stderr !\u003d \"\":"},{"line_number":498,"context_line":"        LOG.warning(f\"`{result.stderr}` Error running tridentctl command\")"},{"line_number":499,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"f54f1b2e_16e7e4b1","line":496,"updated":"2024-11-20 20:17:59.000000000","message":"Shouldn\u0027t a generic exception handler also be included in case the command throws an exception that is different from the specific ones that you have already added? I believe this command can also fail due to issues such as permission problems, malformed commands, or OS issues.","commit_id":"cf01ffcdff2f36e7e444aa98c7d4bc2f4178a628"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"29508a39375a948ec909f0da85482ae349ef644b","unresolved":false,"context_lines":[{"line_number":493,"context_line":"        )"},{"line_number":494,"context_line":"    except subprocess.TimeoutExpired as exc:"},{"line_number":495,"context_line":"        LOG.error(f\"Process timed out.\\n{exc}\")"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    if result.stderr !\u003d \"\":"},{"line_number":498,"context_line":"        LOG.warning(f\"`{result.stderr}` Error running tridentctl command\")"},{"line_number":499,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"17c61ccb_315fcd76","line":496,"in_reply_to":"cb343ac3_172bde32","updated":"2024-12-02 18:37:37.000000000","message":"Done","commit_id":"cf01ffcdff2f36e7e444aa98c7d4bc2f4178a628"},{"author":{"_account_id":37226,"name":"Johnny Chia","display_name":"Johnny Chia","email":"johnny.chialung@windriver.com","username":"jchialun"},"change_message_id":"41e87feb1840efbf9ddf745147951c0ac9f04e40","unresolved":true,"context_lines":[{"line_number":493,"context_line":"        )"},{"line_number":494,"context_line":"    except subprocess.TimeoutExpired as exc:"},{"line_number":495,"context_line":"        LOG.error(f\"Process timed out.\\n{exc}\")"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    if result.stderr !\u003d \"\":"},{"line_number":498,"context_line":"        LOG.warning(f\"`{result.stderr}` Error running tridentctl command\")"},{"line_number":499,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"fdc14bad_643b8441","line":496,"in_reply_to":"f54f1b2e_16e7e4b1","updated":"2024-11-25 14:56:38.000000000","message":"I don\u0027t think adding a general exception is a good practice. We can discuss.","commit_id":"cf01ffcdff2f36e7e444aa98c7d4bc2f4178a628"},{"author":{"_account_id":33594,"name":"Thales Elero Cervi","display_name":"Thales Cervi","email":"thaleselero.cervi@windriver.com","username":"tcervi"},"change_message_id":"fb6b0ad19703a433319cc1782b0ed02e16abf1fc","unresolved":true,"context_lines":[{"line_number":493,"context_line":"        )"},{"line_number":494,"context_line":"    except subprocess.TimeoutExpired as exc:"},{"line_number":495,"context_line":"        LOG.error(f\"Process timed out.\\n{exc}\")"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    if result.stderr !\u003d \"\":"},{"line_number":498,"context_line":"        LOG.warning(f\"`{result.stderr}` Error running tridentctl command\")"},{"line_number":499,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":10,"id":"cb343ac3_172bde32","line":496,"in_reply_to":"fdc14bad_643b8441","updated":"2024-11-27 01:36:03.000000000","message":"Hi Johnny,\n\nI like your approach here of explicitly handling all the expected exceptions. \nWould like to add a final and generic exception handler though, to cover unpredictable scenarios, including subprocess library changes that might be integrated whenever the library is updated.\n\nIn the end, this function is not meant to break any plugin/sysinv code execution, only to return True when trident is returning as expected and false when trident is not available, returning something unexpected OR when something wrong/exceptions happen.","commit_id":"cf01ffcdff2f36e7e444aa98c7d4bc2f4178a628"},{"author":{"_account_id":37229,"name":"Murillo Arantes","display_name":"Murillo Arantes","email":"murillo.arantes@windriver.com","username":"marantes"},"change_message_id":"56c5c5ef1b4f0c61b5658e266c0694abd39204aa","unresolved":true,"context_lines":[{"line_number":494,"context_line":"    except subprocess.TimeoutExpired as exc:"},{"line_number":495,"context_line":"        LOG.error(f\"Process timed out.\\n{exc}\")"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    if result.stderr !\u003d \"\":"},{"line_number":498,"context_line":"        LOG.warning(f\"`{result.stderr}` Error running tridentctl command\")"},{"line_number":499,"context_line":"        return False"},{"line_number":500,"context_line":"    if re.search(r\"ontap-(nas|san)\", result.stdout) is not None:"}],"source_content_type":"text/x-python","patch_set":10,"id":"edf86941_165b4aa3","line":497,"updated":"2024-11-20 20:17:59.000000000","message":"The result.returncode could also be validated/logged to provide more information in case of errors","commit_id":"cf01ffcdff2f36e7e444aa98c7d4bc2f4178a628"},{"author":{"_account_id":37226,"name":"Johnny Chia","display_name":"Johnny Chia","email":"johnny.chialung@windriver.com","username":"jchialun"},"change_message_id":"41e87feb1840efbf9ddf745147951c0ac9f04e40","unresolved":false,"context_lines":[{"line_number":494,"context_line":"    except subprocess.TimeoutExpired as exc:"},{"line_number":495,"context_line":"        LOG.error(f\"Process timed out.\\n{exc}\")"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    if result.stderr !\u003d \"\":"},{"line_number":498,"context_line":"        LOG.warning(f\"`{result.stderr}` Error running tridentctl command\")"},{"line_number":499,"context_line":"        return False"},{"line_number":500,"context_line":"    if re.search(r\"ontap-(nas|san)\", result.stdout) is not None:"}],"source_content_type":"text/x-python","patch_set":10,"id":"0468f64e_b4f59715","line":497,"in_reply_to":"edf86941_165b4aa3","updated":"2024-11-25 14:56:38.000000000","message":"When add the check flag to the subproccess command, it checks non-zero return code. So all \"errors\" are raised as exceptions. It is not possible to have a non-zero return code at this point.","commit_id":"cf01ffcdff2f36e7e444aa98c7d4bc2f4178a628"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"57b52adc2d0ab6d929371971f47632da8091d425","unresolved":true,"context_lines":[{"line_number":473,"context_line":"        bool: True if Netapp backend is available or False if it is not"},{"line_number":474,"context_line":"    \"\"\""},{"line_number":475,"context_line":"    namespace \u003d _get_value_from_application("},{"line_number":476,"context_line":"        default_value\u003dconstants.OPENSTACK_NETAPP_NAMESPACE,"},{"line_number":477,"context_line":"        chart_name\u003dapp_constants.HELM_CHART_CLIENTS,"},{"line_number":478,"context_line":"        override_name\u003d\"netAppNamespace\")"},{"line_number":479,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":13,"id":"3c362062_d05e02cc","line":476,"updated":"2024-11-26 19:23:44.000000000","message":"This should be app_constants","commit_id":"7bcd34ab3b16bfaca558b7b415f64f586f83a998"},{"author":{"_account_id":37226,"name":"Johnny Chia","display_name":"Johnny Chia","email":"johnny.chialung@windriver.com","username":"jchialun"},"change_message_id":"b785ea5aceea8efc4563a554eb28d2301613d6f4","unresolved":false,"context_lines":[{"line_number":473,"context_line":"        bool: True if Netapp backend is available or False if it is not"},{"line_number":474,"context_line":"    \"\"\""},{"line_number":475,"context_line":"    namespace \u003d _get_value_from_application("},{"line_number":476,"context_line":"        default_value\u003dconstants.OPENSTACK_NETAPP_NAMESPACE,"},{"line_number":477,"context_line":"        chart_name\u003dapp_constants.HELM_CHART_CLIENTS,"},{"line_number":478,"context_line":"        override_name\u003d\"netAppNamespace\")"},{"line_number":479,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":13,"id":"6c1352d3_4587d941","line":476,"in_reply_to":"3c362062_d05e02cc","updated":"2024-11-27 00:08:06.000000000","message":"Done","commit_id":"7bcd34ab3b16bfaca558b7b415f64f586f83a998"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"b537da1c1a9e06689d2895c8d9e5af0a069050c3","unresolved":true,"context_lines":[{"line_number":475,"context_line":"    namespace \u003d _get_value_from_application("},{"line_number":476,"context_line":"        default_value\u003dconstants.OPENSTACK_NETAPP_NAMESPACE,"},{"line_number":477,"context_line":"        chart_name\u003dapp_constants.HELM_CHART_CLIENTS,"},{"line_number":478,"context_line":"        override_name\u003d\"netAppNamespace\")"},{"line_number":479,"context_line":"    try:"},{"line_number":480,"context_line":"        command \u003d [\"tridentctl\", \"get\", \"backend\", \"-n\", namespace]"},{"line_number":481,"context_line":"        result \u003d subprocess.run("}],"source_content_type":"text/x-python","patch_set":13,"id":"25f757bb_57fde345","line":478,"updated":"2024-11-26 17:26:07.000000000","message":"This variable does not exist in the Clients chart, add it to avoid errors.","commit_id":"7bcd34ab3b16bfaca558b7b415f64f586f83a998"},{"author":{"_account_id":37226,"name":"Johnny Chia","display_name":"Johnny Chia","email":"johnny.chialung@windriver.com","username":"jchialun"},"change_message_id":"b785ea5aceea8efc4563a554eb28d2301613d6f4","unresolved":false,"context_lines":[{"line_number":475,"context_line":"    namespace \u003d _get_value_from_application("},{"line_number":476,"context_line":"        default_value\u003dconstants.OPENSTACK_NETAPP_NAMESPACE,"},{"line_number":477,"context_line":"        chart_name\u003dapp_constants.HELM_CHART_CLIENTS,"},{"line_number":478,"context_line":"        override_name\u003d\"netAppNamespace\")"},{"line_number":479,"context_line":"    try:"},{"line_number":480,"context_line":"        command \u003d [\"tridentctl\", \"get\", \"backend\", \"-n\", namespace]"},{"line_number":481,"context_line":"        result \u003d subprocess.run("}],"source_content_type":"text/x-python","patch_set":13,"id":"02dece98_8c258da3","line":478,"in_reply_to":"25f757bb_57fde345","updated":"2024-11-27 00:08:06.000000000","message":"Done","commit_id":"7bcd34ab3b16bfaca558b7b415f64f586f83a998"},{"author":{"_account_id":37173,"name":"Alex Fernandes Figueirêdo","display_name":"Alex Figueiredo","email":"alex.fernandesfigueiredo@windriver.com","username":"afernand"},"change_message_id":"50a1dd4379205aff027614ad922c4ea9696ce665","unresolved":true,"context_lines":[{"line_number":480,"context_line":"        chart_name\u003dapp_constants.HELM_CHART_CLIENTS,"},{"line_number":481,"context_line":"        override_name\u003d\"netAppNamespace\")"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"    kube_config \u003d \"/etc/kubernetes/admin.conf\""},{"line_number":484,"context_line":"    label \u003d \"controller.csi.trident.netapp.io\""},{"line_number":485,"context_line":"    container_name \u003d \"trident-main\""},{"line_number":486,"context_line":"    backends_map \u003d {\"nfs\": False, \"iscsi\": False}"}],"source_content_type":"text/x-python","patch_set":19,"id":"031394fa_d88b7d77","line":483,"updated":"2024-12-03 13:33:19.000000000","message":"This constant is already defined at \"kubernetes.KUBERNETES_ADMIN_CONF\". Could you reuse it?","commit_id":"0a3a6b65b32ccf0e6b8bdfd8fcb11484246cbac6"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"5dbf106b66fc0cf24063e8c47da4e703f6f18c64","unresolved":false,"context_lines":[{"line_number":480,"context_line":"        chart_name\u003dapp_constants.HELM_CHART_CLIENTS,"},{"line_number":481,"context_line":"        override_name\u003d\"netAppNamespace\")"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"    kube_config \u003d \"/etc/kubernetes/admin.conf\""},{"line_number":484,"context_line":"    label \u003d \"controller.csi.trident.netapp.io\""},{"line_number":485,"context_line":"    container_name \u003d \"trident-main\""},{"line_number":486,"context_line":"    backends_map \u003d {\"nfs\": False, \"iscsi\": False}"}],"source_content_type":"text/x-python","patch_set":19,"id":"5d601794_62069747","line":483,"in_reply_to":"031394fa_d88b7d77","updated":"2024-12-03 14:07:56.000000000","message":"Done","commit_id":"0a3a6b65b32ccf0e6b8bdfd8fcb11484246cbac6"},{"author":{"_account_id":37173,"name":"Alex Fernandes Figueirêdo","display_name":"Alex Figueiredo","email":"alex.fernandesfigueiredo@windriver.com","username":"afernand"},"change_message_id":"50a1dd4379205aff027614ad922c4ea9696ce665","unresolved":true,"context_lines":[{"line_number":481,"context_line":"        override_name\u003d\"netAppNamespace\")"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"    kube_config \u003d \"/etc/kubernetes/admin.conf\""},{"line_number":484,"context_line":"    label \u003d \"controller.csi.trident.netapp.io\""},{"line_number":485,"context_line":"    container_name \u003d \"trident-main\""},{"line_number":486,"context_line":"    backends_map \u003d {\"nfs\": False, \"iscsi\": False}"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":19,"id":"2ed78d06_207145dc","line":485,"range":{"start_line":484,"start_character":0,"end_line":485,"end_character":35},"updated":"2024-12-03 13:33:19.000000000","message":"I think it should be defined as constants in \"constants.py\", e.g.:\n\n\\# NetApp definitions\nNET_APP_CONTROLLER_LABEL\u003d\"controller.csi.trident.netapp.io\"\nTRIDENT_CONTAINER_NAME \u003d \"trident-main\"","commit_id":"0a3a6b65b32ccf0e6b8bdfd8fcb11484246cbac6"},{"author":{"_account_id":34455,"name":"Lucas de Ataides Barreto","display_name":"Lucas de Ataides","email":"lucas.deataidesbarreto@windriver.com","username":"lucasdeataides"},"change_message_id":"5dbf106b66fc0cf24063e8c47da4e703f6f18c64","unresolved":false,"context_lines":[{"line_number":481,"context_line":"        override_name\u003d\"netAppNamespace\")"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"    kube_config \u003d \"/etc/kubernetes/admin.conf\""},{"line_number":484,"context_line":"    label \u003d \"controller.csi.trident.netapp.io\""},{"line_number":485,"context_line":"    container_name \u003d \"trident-main\""},{"line_number":486,"context_line":"    backends_map \u003d {\"nfs\": False, \"iscsi\": False}"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":19,"id":"a18c1a52_752c6ea1","line":485,"range":{"start_line":484,"start_character":0,"end_line":485,"end_character":35},"in_reply_to":"2ed78d06_207145dc","updated":"2024-12-03 14:07:56.000000000","message":"Done","commit_id":"0a3a6b65b32ccf0e6b8bdfd8fcb11484246cbac6"}]}
