)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28464,"name":"Eric MacDonald","display_name":"Eric","email":"eric.macdonald@windriver.com","username":"rocksolidmtce"},"change_message_id":"144729672fe84e86c87f2bdabe8291d8dda847d8","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement USM software deploy start for upgrade"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a major/minor release update is to deployed, start deploy"},{"line_number":10,"context_line":"start script and execute the deploy start operations in background"},{"line_number":11,"context_line":"process. Once the background subprocess starts, return to user w/"},{"line_number":12,"context_line":"deploy started."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"1f93819d_2c97da91","line":9,"range":{"start_line":9,"start_character":37,"end_line":9,"end_character":39},"updated":"2023-11-29 18:05:33.000000000","message":"nit: *\"to be\"*","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"c1b00692f7e7d6c7b97f126b7e68ef0c4307e365","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement USM software deploy start for upgrade"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a major/minor release update is to deployed, start deploy"},{"line_number":10,"context_line":"start script and execute the deploy start operations in background"},{"line_number":11,"context_line":"process. Once the background subprocess starts, return to user w/"},{"line_number":12,"context_line":"deploy started."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"e4847220_a262d72e","line":9,"range":{"start_line":9,"start_character":37,"end_line":9,"end_character":39},"in_reply_to":"1f93819d_2c97da91","updated":"2023-11-30 15:52:23.000000000","message":"+1","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"7a49a9050cb29764076754c8efb5abb6088233d9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Implement USM software deploy start for upgrade"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When a major/minor release update is to deployed, start deploy"},{"line_number":10,"context_line":"start script and execute the deploy start operations in background"},{"line_number":11,"context_line":"process. Once the background subprocess starts, return to user w/"},{"line_number":12,"context_line":"deploy started."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"86415b3b_7d4fb98a","line":9,"range":{"start_line":9,"start_character":37,"end_line":9,"end_character":39},"in_reply_to":"e4847220_a262d72e","updated":"2023-11-30 20:34:44.000000000","message":"Done","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"9f6dfb969f84f506513809b7d3ee491e2b9c5e2c","unresolved":true,"context_lines":[{"line_number":14,"context_line":"Story: 2010676"},{"line_number":15,"context_line":"Task: 48958"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"TCs:"},{"line_number":18,"context_line":"    passed: complete deploy start on controller-0 on a DX system"},{"line_number":19,"context_line":"    passed: complete deploy start on controller-0 on a SX system"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"c9fbc94d_873e6945","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":3},"updated":"2023-11-29 18:35:25.000000000","message":"Have we have tested these changes with a patch? If yes, add to test plan","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"29ed6a56cdda6bb48c0b464c1d75a0580ec75f29","unresolved":true,"context_lines":[{"line_number":14,"context_line":"Story: 2010676"},{"line_number":15,"context_line":"Task: 48958"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"TCs:"},{"line_number":18,"context_line":"    passed: complete deploy start on controller-0 on a DX system"},{"line_number":19,"context_line":"    passed: complete deploy start on controller-0 on a SX system"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"e60b3a67_ece2c4b7","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":3},"in_reply_to":"7a487f64_7540118b","updated":"2023-11-30 15:48:19.000000000","message":"Since this method is common to both major and minor release software releases, please test with a patch too.","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"8e590f404ad10792196accc56fe23bb4e5c6756c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Story: 2010676"},{"line_number":15,"context_line":"Task: 48958"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"TCs:"},{"line_number":18,"context_line":"    passed: complete deploy start on controller-0 on a DX system"},{"line_number":19,"context_line":"    passed: complete deploy start on controller-0 on a SX system"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"7a487f64_7540118b","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":3},"in_reply_to":"c9fbc94d_873e6945","updated":"2023-11-29 20:01:48.000000000","message":"did not test a patch scenario. Did white box testing with the knowledge that the code change only impacts major release deploy. As https://review.opendev.org/c/starlingx/update/+/898852/16/software/software/software_controller.py#1964.","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"c7344e1e7fce4de9397ed7873e5766539362d44c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"Story: 2010676"},{"line_number":15,"context_line":"Task: 48958"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"TCs:"},{"line_number":18,"context_line":"    passed: complete deploy start on controller-0 on a DX system"},{"line_number":19,"context_line":"    passed: complete deploy start on controller-0 on a SX system"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"6339694f_57df79db","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":3},"in_reply_to":"e60b3a67_ece2c4b7","updated":"2023-11-30 20:34:09.000000000","message":"2 logic are clearly separated even tough sharing the same function,,,\nadded test coverage added anyway.","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"6aecc6b9e23d5d472d0a5a6956f131e9a93d61f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5911638a_6a82ffd4","updated":"2023-10-19 18:36:09.000000000","message":"to be test","commit_id":"340200b3542c0df56f3e3f059ebeb4f1a47dfe0c"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"c56e9e360ed57c0da39b06d3d1a7b7d00bc294ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"4a9d42fd_ccbbe670","updated":"2024-01-09 16:53:42.000000000","message":"recheck","commit_id":"38d6646a9ee1608634f274941e26a8710c18fb2c"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"a67fca29717be308a76857d7020fbf57ca256068","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"4ebf60d1_16f21e49","updated":"2024-01-10 20:11:04.000000000","message":"recheck","commit_id":"38d6646a9ee1608634f274941e26a8710c18fb2c"}],"software/scripts/software-deploy-start":[{"author":{"_account_id":33684,"name":"Luis Eduardo Bonatti","email":"LuizEduardo.Bonatti@windriver.com","username":"lbonatti"},"change_message_id":"f32a895330d401035a08c52b9990765c2ef22726","unresolved":true,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"$cmd_line || handle_error $? \"Failed to extract data for migration\""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"sudo chroot ${rootdir} /usr/bin/create_postgresql_database.sh ${port} || handle_error $? \"Failed to start 2nd instance of postgresql\""},{"line_number":101,"context_line":"sudo chroot ${rootdir} /usr/bin/software-migrate ${from_ver} ${to_ver} ${port} || handle_error $? \"Failed to migrate data\""}],"source_content_type":"application/octet-stream","patch_set":15,"id":"b69e0087_fd82a299","line":100,"range":{"start_line":100,"start_character":28,"end_line":100,"end_character":31},"updated":"2023-11-29 01:11:31.000000000","message":"it needs to be changed to sbin","commit_id":"1a613b71676d3a9efa3ca390288e2ce58b26086f"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"b2aaacc61c30b15249bbd523b1f56626557cf5ce","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"$cmd_line || handle_error $? \"Failed to extract data for migration\""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"sudo chroot ${rootdir} /usr/bin/create_postgresql_database.sh ${port} || handle_error $? \"Failed to start 2nd instance of postgresql\""},{"line_number":101,"context_line":"sudo chroot ${rootdir} /usr/bin/software-migrate ${from_ver} ${to_ver} ${port} || handle_error $? \"Failed to migrate data\""}],"source_content_type":"application/octet-stream","patch_set":15,"id":"d5dbabad_623c1d4a","line":100,"range":{"start_line":100,"start_character":28,"end_line":100,"end_character":31},"in_reply_to":"b69e0087_fd82a299","updated":"2023-11-29 16:35:02.000000000","message":"Done","commit_id":"1a613b71676d3a9efa3ca390288e2ce58b26086f"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"5b5470bf58209443b845c81f1c8135fdbfbe681c","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"$cmd_line || handle_error $? \"Failed to extract data for migration\""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"sudo chroot ${rootdir} /usr/bin/create_postgresql_database.sh ${port} || handle_error $? \"Failed to start 2nd instance of postgresql\""},{"line_number":101,"context_line":"sudo chroot ${rootdir} /usr/bin/software-migrate ${from_ver} ${to_ver} ${port} || handle_error $? \"Failed to migrate data\""}],"source_content_type":"application/octet-stream","patch_set":15,"id":"6ca60dea_15fb21e9","line":100,"range":{"start_line":100,"start_character":28,"end_line":100,"end_character":31},"in_reply_to":"d5dbabad_623c1d4a","updated":"2023-11-29 16:36:57.000000000","message":"\u003e Done\nactually I moved all changes in software-deploy-start script to https://review.opendev.org/c/starlingx/update/+/898850.","commit_id":"1a613b71676d3a9efa3ca390288e2ce58b26086f"}],"software/service-files/software.conf":[{"author":{"_account_id":28464,"name":"Eric MacDonald","display_name":"Eric","email":"eric.macdonald@windriver.com","username":"rocksolidmtce"},"change_message_id":"144729672fe84e86c87f2bdabe8291d8dda847d8","unresolved":true,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# alternate PostgreSQL server port for bringing up"},{"line_number":9,"context_line":"# db to run on to-release"},{"line_number":10,"context_line":"alt_postgresql_port \u003d 6666"}],"source_content_type":"text/plain","patch_set":16,"id":"86491640_f212d6e0","line":10,"range":{"start_line":10,"start_character":22,"end_line":10,"end_character":26},"updated":"2023-11-29 18:05:33.000000000","message":"Why was this number chosen ?","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"7a49a9050cb29764076754c8efb5abb6088233d9","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# alternate PostgreSQL server port for bringing up"},{"line_number":9,"context_line":"# db to run on to-release"},{"line_number":10,"context_line":"alt_postgresql_port \u003d 6666"}],"source_content_type":"text/plain","patch_set":16,"id":"874e6e25_33a9dba8","line":10,"range":{"start_line":10,"start_character":22,"end_line":10,"end_character":26},"in_reply_to":"86491640_f212d6e0","updated":"2023-11-30 20:34:44.000000000","message":"it is not taken.","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"}],"software/software/software_controller.py":[{"author":{"_account_id":33390,"name":"Heitor Matsui","display_name":"Heitor Matsui","email":"HeitorVieira.Matsui@windriver.com","username":"heitormatsui"},"change_message_id":"3aaaefcad0458d87ef56f2b0f330cf312a60949a","unresolved":true,"context_lines":[{"line_number":1800,"context_line":"                  \"cannot proceed with the precheck.\" % release_version"},{"line_number":1801,"context_line":"            LOG.error(msg)"},{"line_number":1802,"context_line":"            msg_error \u003d \"Fail to perform deploy precheck. \" \\"},{"line_number":1803,"context_line":"                        \"Uploaded release may have been danamaged.\" \\"},{"line_number":1804,"context_line":"                        \"Try delete and re-upload the release.\\n\""},{"line_number":1805,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"},{"line_number":1806,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"18378f34_9e27dc47","line":1803,"range":{"start_line":1803,"start_character":56,"end_line":1803,"end_character":65},"updated":"2023-11-08 13:49:13.000000000","message":"nit: damaged","commit_id":"e04cdd54b848a2ee074f7327a9737201a83a33a7"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"8eaf7d642a7529bfb7621089f8d0c02ebe2973fd","unresolved":false,"context_lines":[{"line_number":1800,"context_line":"                  \"cannot proceed with the precheck.\" % release_version"},{"line_number":1801,"context_line":"            LOG.error(msg)"},{"line_number":1802,"context_line":"            msg_error \u003d \"Fail to perform deploy precheck. \" \\"},{"line_number":1803,"context_line":"                        \"Uploaded release may have been danamaged.\" \\"},{"line_number":1804,"context_line":"                        \"Try delete and re-upload the release.\\n\""},{"line_number":1805,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"},{"line_number":1806,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"bb2e1824_1c465121","line":1803,"range":{"start_line":1803,"start_character":56,"end_line":1803,"end_character":65},"in_reply_to":"18378f34_9e27dc47","updated":"2023-11-14 20:58:28.000000000","message":"Done","commit_id":"e04cdd54b848a2ee074f7327a9737201a83a33a7"},{"author":{"_account_id":34895,"name":"Junfeng Li","display_name":"Junfeng (Shawn) Li","email":"junfeng.li@windriver.com","username":"junfeng-li"},"change_message_id":"1f7c995b0930605880549bf4e106805685818464","unresolved":true,"context_lines":[{"line_number":1877,"context_line":""},{"line_number":1878,"context_line":"    def _deploy_upgrade_start(self, to_release):"},{"line_number":1879,"context_line":"        LOG.info(\"start deploy upgrade to %s from %s\" % (to_release, SW_VERSION))"},{"line_number":1880,"context_line":"        cmd_path \u003d \"/usr/sbin/software_deploy_start\""},{"line_number":1881,"context_line":"        k8s_ver \u003d get_k8s_ver()"},{"line_number":1882,"context_line":"        postgresql_port \u003d \"6666\""},{"line_number":1883,"context_line":"        root_dir \u003d \"/sysroot/upgrade/sysroot\""},{"line_number":1884,"context_line":"        ostree_repo_dir \u003d \"/sysroot/upgrade/ostree_repo\""},{"line_number":1885,"context_line":"        feed \u003d \"/var/www/pages/feed/rel-%s/ostree_repo\" % to_release"},{"line_number":1886,"context_line":"        instbr \u003d \"starlingx\""},{"line_number":1887,"context_line":"        commit_id \u003d None"},{"line_number":1888,"context_line":""},{"line_number":1889,"context_line":"        LOG.info(\"k8s version %s\" % k8s_ver)"},{"line_number":1890,"context_line":"        # from_ver to_ver k8s_ver postgresql_port root_dir ostree_repo_dir feed instbr"}],"source_content_type":"text/x-python","patch_set":9,"id":"27de2c12_65d09c93","line":1887,"range":{"start_line":1880,"start_character":8,"end_line":1887,"end_character":24},"updated":"2023-11-07 21:01:42.000000000","message":"I think they should be in constans.py.","commit_id":"e04cdd54b848a2ee074f7327a9737201a83a33a7"},{"author":{"_account_id":33390,"name":"Heitor Matsui","display_name":"Heitor Matsui","email":"HeitorVieira.Matsui@windriver.com","username":"heitormatsui"},"change_message_id":"3aaaefcad0458d87ef56f2b0f330cf312a60949a","unresolved":true,"context_lines":[{"line_number":1877,"context_line":""},{"line_number":1878,"context_line":"    def _deploy_upgrade_start(self, to_release):"},{"line_number":1879,"context_line":"        LOG.info(\"start deploy upgrade to %s from %s\" % (to_release, SW_VERSION))"},{"line_number":1880,"context_line":"        cmd_path \u003d \"/usr/sbin/software_deploy_start\""},{"line_number":1881,"context_line":"        k8s_ver \u003d get_k8s_ver()"},{"line_number":1882,"context_line":"        postgresql_port \u003d \"6666\""},{"line_number":1883,"context_line":"        root_dir \u003d \"/sysroot/upgrade/sysroot\""},{"line_number":1884,"context_line":"        ostree_repo_dir \u003d \"/sysroot/upgrade/ostree_repo\""},{"line_number":1885,"context_line":"        feed \u003d \"/var/www/pages/feed/rel-%s/ostree_repo\" % to_release"},{"line_number":1886,"context_line":"        instbr \u003d \"starlingx\""},{"line_number":1887,"context_line":"        commit_id \u003d None"},{"line_number":1888,"context_line":""},{"line_number":1889,"context_line":"        LOG.info(\"k8s version %s\" % k8s_ver)"},{"line_number":1890,"context_line":"        # from_ver to_ver k8s_ver postgresql_port root_dir ostree_repo_dir feed instbr"}],"source_content_type":"text/x-python","patch_set":9,"id":"3d6af16e_c2376474","line":1887,"range":{"start_line":1880,"start_character":8,"end_line":1887,"end_character":24},"in_reply_to":"27de2c12_65d09c93","updated":"2023-11-08 13:49:13.000000000","message":"Agreed, or maybe be passed as *args/**kwargs this function.","commit_id":"e04cdd54b848a2ee074f7327a9737201a83a33a7"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"8eaf7d642a7529bfb7621089f8d0c02ebe2973fd","unresolved":false,"context_lines":[{"line_number":1877,"context_line":""},{"line_number":1878,"context_line":"    def _deploy_upgrade_start(self, to_release):"},{"line_number":1879,"context_line":"        LOG.info(\"start deploy upgrade to %s from %s\" % (to_release, SW_VERSION))"},{"line_number":1880,"context_line":"        cmd_path \u003d \"/usr/sbin/software_deploy_start\""},{"line_number":1881,"context_line":"        k8s_ver \u003d get_k8s_ver()"},{"line_number":1882,"context_line":"        postgresql_port \u003d \"6666\""},{"line_number":1883,"context_line":"        root_dir \u003d \"/sysroot/upgrade/sysroot\""},{"line_number":1884,"context_line":"        ostree_repo_dir \u003d \"/sysroot/upgrade/ostree_repo\""},{"line_number":1885,"context_line":"        feed \u003d \"/var/www/pages/feed/rel-%s/ostree_repo\" % to_release"},{"line_number":1886,"context_line":"        instbr \u003d \"starlingx\""},{"line_number":1887,"context_line":"        commit_id \u003d None"},{"line_number":1888,"context_line":""},{"line_number":1889,"context_line":"        LOG.info(\"k8s version %s\" % k8s_ver)"},{"line_number":1890,"context_line":"        # from_ver to_ver k8s_ver postgresql_port root_dir ostree_repo_dir feed instbr"}],"source_content_type":"text/x-python","patch_set":9,"id":"49f61cf4_e8a6e3ab","line":1887,"range":{"start_line":1880,"start_character":8,"end_line":1887,"end_character":24},"in_reply_to":"3d6af16e_c2376474","updated":"2023-11-14 20:58:28.000000000","message":"Thanks. I decided to root_dir, ostree_repo_dir and instbr to software_deploy_start script (they are really the apt-ostree and ostree only values)\nI make the port number to software.conf, as alt_postgresql_port, so it can be reconfigured if conflict. \nI keep the cmd_path here, as I don\u0027t believe it is going to be used elsewhere.\nI updated the feed to based a FEED_DIR from constants.py.","commit_id":"e04cdd54b848a2ee074f7327a9737201a83a33a7"},{"author":{"_account_id":33390,"name":"Heitor Matsui","display_name":"Heitor Matsui","email":"HeitorVieira.Matsui@windriver.com","username":"heitormatsui"},"change_message_id":"3aaaefcad0458d87ef56f2b0f330cf312a60949a","unresolved":true,"context_lines":[{"line_number":1910,"context_line":"            subprocess.Popen(\u0027 \u0027.join(upgrade_start_cmd), start_new_session\u003dTrue, shell\u003dTrue, env\u003denv)"},{"line_number":1911,"context_line":"            LOG.info(\"subprocess started\")"},{"line_number":1912,"context_line":"            return True"},{"line_number":1913,"context_line":"        except subprocess.CalledProcessError as e:"},{"line_number":1914,"context_line":"            LOG.error(\"Failed to start command: %s. Error %s\" % (\u0027 \u0027.join(upgrade_start_cmd), e))"},{"line_number":1915,"context_line":"            return False"},{"line_number":1916,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"4f57aee8_4f6e89c3","line":1913,"range":{"start_line":1913,"start_character":15,"end_line":1913,"end_character":50},"updated":"2023-11-08 13:49:13.000000000","message":"This exception apparently is raised only by check_output, check_call and run with check\u003dTrue: https://docs.python.org/3/library/subprocess.html#subprocess.CalledProcessError\n\nSince you\u0027re using Popen this exception won\u0027t be raised.","commit_id":"e04cdd54b848a2ee074f7327a9737201a83a33a7"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"8eaf7d642a7529bfb7621089f8d0c02ebe2973fd","unresolved":false,"context_lines":[{"line_number":1910,"context_line":"            subprocess.Popen(\u0027 \u0027.join(upgrade_start_cmd), start_new_session\u003dTrue, shell\u003dTrue, env\u003denv)"},{"line_number":1911,"context_line":"            LOG.info(\"subprocess started\")"},{"line_number":1912,"context_line":"            return True"},{"line_number":1913,"context_line":"        except subprocess.CalledProcessError as e:"},{"line_number":1914,"context_line":"            LOG.error(\"Failed to start command: %s. Error %s\" % (\u0027 \u0027.join(upgrade_start_cmd), e))"},{"line_number":1915,"context_line":"            return False"},{"line_number":1916,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"00996b1a_9ceee87c","line":1913,"range":{"start_line":1913,"start_character":15,"end_line":1913,"end_character":50},"in_reply_to":"4f57aee8_4f6e89c3","updated":"2023-11-14 20:58:28.000000000","message":"Done","commit_id":"e04cdd54b848a2ee074f7327a9737201a83a33a7"},{"author":{"_account_id":33684,"name":"Luis Eduardo Bonatti","email":"LuizEduardo.Bonatti@windriver.com","username":"lbonatti"},"change_message_id":"854ee5dc4f7a987f5217cb7543f6164dfdd60498","unresolved":true,"context_lines":[{"line_number":1886,"context_line":""},{"line_number":1887,"context_line":"    def _deploy_upgrade_start(self, to_release):"},{"line_number":1888,"context_line":"        LOG.info(\"start deploy upgrade to %s from %s\" % (to_release, SW_VERSION))"},{"line_number":1889,"context_line":"        cmd_path \u003d \"/usr/sbin/software_deploy_start\""},{"line_number":1890,"context_line":"        k8s_ver \u003d get_k8s_ver()"},{"line_number":1891,"context_line":"        postgresql_port \u003d str(cfg.alt_postgresql_port)"},{"line_number":1892,"context_line":"        feed \u003d os.path.join(constants.FEED_DIR,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5792141a_482b6073","line":1889,"updated":"2023-11-14 21:22:21.000000000","message":"The name needs to be changed to software-deploy-start as well","commit_id":"042f8e9ae57fb50aa5f2d5dbb4f53a51b48c00a4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"1a16eac40bc343d6817f3fba5811c21b8c7e109b","unresolved":false,"context_lines":[{"line_number":1886,"context_line":""},{"line_number":1887,"context_line":"    def _deploy_upgrade_start(self, to_release):"},{"line_number":1888,"context_line":"        LOG.info(\"start deploy upgrade to %s from %s\" % (to_release, SW_VERSION))"},{"line_number":1889,"context_line":"        cmd_path \u003d \"/usr/sbin/software_deploy_start\""},{"line_number":1890,"context_line":"        k8s_ver \u003d get_k8s_ver()"},{"line_number":1891,"context_line":"        postgresql_port \u003d str(cfg.alt_postgresql_port)"},{"line_number":1892,"context_line":"        feed \u003d os.path.join(constants.FEED_DIR,"}],"source_content_type":"text/x-python","patch_set":12,"id":"bb81082c_2a79b072","line":1889,"in_reply_to":"5792141a_482b6073","updated":"2023-11-15 03:03:44.000000000","message":"Done. thanks for catching it.","commit_id":"042f8e9ae57fb50aa5f2d5dbb4f53a51b48c00a4"},{"author":{"_account_id":33390,"name":"Heitor Matsui","display_name":"Heitor Matsui","email":"HeitorVieira.Matsui@windriver.com","username":"heitormatsui"},"change_message_id":"ccd2b44f920933cd8438eb8d7d827b4c1dcb9d28","unresolved":true,"context_lines":[{"line_number":1788,"context_line":"                        msg \u003d \"Failed to delete the restart script for %s\" % patch_id"},{"line_number":1789,"context_line":"                        LOG.exception(msg)"},{"line_number":1790,"context_line":""},{"line_number":1791,"context_line":"    def _do_deployprecheck(self, release_version: str, force: bool, region_name: str \u003d \"RegionOne\") -\u003e dict:"},{"line_number":1792,"context_line":"        \"\"\""},{"line_number":1793,"context_line":"        Verify if system is capable to upgrade to a specified deployment"},{"line_number":1794,"context_line":"        return: dict of info, warning and error messages"}],"source_content_type":"text/x-python","patch_set":13,"id":"dedefc11_cad562a0","line":1791,"range":{"start_line":1791,"start_character":8,"end_line":1791,"end_character":26},"updated":"2023-11-28 15:08:42.000000000","message":"nit: separate the words, i.e. _do_deploy_precheck","commit_id":"b251a96512d90f2bc335b13ee850fdd08131de16"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"ae1f528efdea585d81fbb38b868731b094a3acb0","unresolved":false,"context_lines":[{"line_number":1788,"context_line":"                        msg \u003d \"Failed to delete the restart script for %s\" % patch_id"},{"line_number":1789,"context_line":"                        LOG.exception(msg)"},{"line_number":1790,"context_line":""},{"line_number":1791,"context_line":"    def _do_deployprecheck(self, release_version: str, force: bool, region_name: str \u003d \"RegionOne\") -\u003e dict:"},{"line_number":1792,"context_line":"        \"\"\""},{"line_number":1793,"context_line":"        Verify if system is capable to upgrade to a specified deployment"},{"line_number":1794,"context_line":"        return: dict of info, warning and error messages"}],"source_content_type":"text/x-python","patch_set":13,"id":"6a9ffc93_f61f9048","line":1791,"range":{"start_line":1791,"start_character":8,"end_line":1791,"end_character":26},"in_reply_to":"dedefc11_cad562a0","updated":"2023-11-28 22:52:04.000000000","message":"Done","commit_id":"b251a96512d90f2bc335b13ee850fdd08131de16"},{"author":{"_account_id":34895,"name":"Junfeng Li","display_name":"Junfeng (Shawn) Li","email":"junfeng.li@windriver.com","username":"junfeng-li"},"change_message_id":"5d9263b4777e85ac5662a6e1be4391272f050573","unresolved":true,"context_lines":[{"line_number":1881,"context_line":""},{"line_number":1882,"context_line":"        # Check if software release directory location exists"},{"line_number":1883,"context_line":"        release_version \u003d utils.get_major_release_version(release[\"sw_version\"])"},{"line_number":1884,"context_line":"        region_name \u003d kwargs[\"region_name\"]"},{"line_number":1885,"context_line":"        return self._do_deployprecheck(release_version, force, region_name)"},{"line_number":1886,"context_line":""},{"line_number":1887,"context_line":"    def _deploy_upgrade_start(self, to_release):"}],"source_content_type":"text/x-python","patch_set":13,"id":"e29b1378_a0531b3d","line":1884,"range":{"start_line":1884,"start_character":8,"end_line":1884,"end_character":43},"updated":"2023-11-16 19:59:16.000000000","message":"Is it harmful if a different region name is provided in here? Such that in config file keystone section the region name is RegionOne, but RegionTwo is provided here.","commit_id":"b251a96512d90f2bc335b13ee850fdd08131de16"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"29e520baeb627f4f63f31fc3af7b787857b4d1fe","unresolved":false,"context_lines":[{"line_number":1881,"context_line":""},{"line_number":1882,"context_line":"        # Check if software release directory location exists"},{"line_number":1883,"context_line":"        release_version \u003d utils.get_major_release_version(release[\"sw_version\"])"},{"line_number":1884,"context_line":"        region_name \u003d kwargs[\"region_name\"]"},{"line_number":1885,"context_line":"        return self._do_deployprecheck(release_version, force, region_name)"},{"line_number":1886,"context_line":""},{"line_number":1887,"context_line":"    def _deploy_upgrade_start(self, to_release):"}],"source_content_type":"text/x-python","patch_set":13,"id":"bf2e02fe_3f11610c","line":1884,"range":{"start_line":1884,"start_character":8,"end_line":1884,"end_character":43},"in_reply_to":"e29b1378_a0531b3d","updated":"2023-11-16 20:35:02.000000000","message":"The region name is for DC central cloud to verify the readiness of a subcloud to perform a deploy. In that particular case, credential of the subcloud should be as well provided.\nThis DC feature is not fully implemented yet, as it is not easy to verify. A follow up task will get it done.\nThis code is from https://review.opendev.org/c/starlingx/update/+/899751. The changes here are to take the actual precheck code to a share internal function to be invoked by both precheck api and deploy start api","commit_id":"b251a96512d90f2bc335b13ee850fdd08131de16"},{"author":{"_account_id":33390,"name":"Heitor Matsui","display_name":"Heitor Matsui","email":"HeitorVieira.Matsui@windriver.com","username":"heitormatsui"},"change_message_id":"20f7a0cfee8a9a1c394249e3673cd83fafb7607a","unresolved":true,"context_lines":[{"line_number":1961,"context_line":"                return ret"},{"line_number":1962,"context_line":""},{"line_number":1963,"context_line":"            collect_current_load_for_hosts()"},{"line_number":1964,"context_line":"            if self._deploy_upgrade_start(self.release_data.metadata[deployment][\"sw_version\"]):"},{"line_number":1965,"context_line":"                msg_info \u003d \"Deploy %s started\" % deployment"},{"line_number":1966,"context_line":"            else:"},{"line_number":1967,"context_line":"                msg_error \u003d \"Deploy %s failed to start\" % deployment"}],"source_content_type":"text/x-python","patch_set":14,"id":"4948f1ab_a32841eb","line":1964,"range":{"start_line":1964,"start_character":42,"end_line":1964,"end_character":94},"updated":"2023-11-28 15:44:32.000000000","message":"You have to use utils.get_major_release_version and pass to the _deploy_upgrade_start, since version now has the format MM.mm.pp, so it would use values like 24.03.0 here, and on _deploy_upgrade_start it will try to find a feed under constants.FEED_DIR/rel-24.03.0, which will fail as we only use major release for feed directory, i.e. rel-24.03 in this case","commit_id":"d9b600089e5f9f9295a33fa77356e74ee017c43c"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"ae1f528efdea585d81fbb38b868731b094a3acb0","unresolved":false,"context_lines":[{"line_number":1961,"context_line":"                return ret"},{"line_number":1962,"context_line":""},{"line_number":1963,"context_line":"            collect_current_load_for_hosts()"},{"line_number":1964,"context_line":"            if self._deploy_upgrade_start(self.release_data.metadata[deployment][\"sw_version\"]):"},{"line_number":1965,"context_line":"                msg_info \u003d \"Deploy %s started\" % deployment"},{"line_number":1966,"context_line":"            else:"},{"line_number":1967,"context_line":"                msg_error \u003d \"Deploy %s failed to start\" % deployment"}],"source_content_type":"text/x-python","patch_set":14,"id":"a2ae25a9_420eb1b6","line":1964,"range":{"start_line":1964,"start_character":42,"end_line":1964,"end_character":94},"in_reply_to":"4948f1ab_a32841eb","updated":"2023-11-28 22:52:04.000000000","message":"In the other user story (up coming), the deploy-precheck script will be moved to /opt/software/rel-\u003cver\u003e/scripts/, where \u003cver\u003e will be the full major.minor.patch ver. I will make the change for now to make it work as what we have now.","commit_id":"d9b600089e5f9f9295a33fa77356e74ee017c43c"},{"author":{"_account_id":33390,"name":"Heitor Matsui","display_name":"Heitor Matsui","email":"HeitorVieira.Matsui@windriver.com","username":"heitormatsui"},"change_message_id":"ec84db7c0458e3525e61630de75a26b9d537da97","unresolved":true,"context_lines":[{"line_number":1960,"context_line":"                ret[\"error\"] +\u003d \"Please fix above issues then retry the deploy.\\n\""},{"line_number":1961,"context_line":"                return ret"},{"line_number":1962,"context_line":""},{"line_number":1963,"context_line":"            collect_current_load_for_hosts()"},{"line_number":1964,"context_line":"            if self._deploy_upgrade_start(self.release_data.metadata[deployment][\"sw_version\"]):"},{"line_number":1965,"context_line":"                msg_info \u003d \"Deploy %s started\" % deployment"},{"line_number":1966,"context_line":"            else:"},{"line_number":1967,"context_line":"                msg_error \u003d \"Deploy %s failed to start\" % deployment"},{"line_number":1968,"context_line":""},{"line_number":1969,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"},{"line_number":1970,"context_line":"        # Identify if this is apply or remove operation"}],"source_content_type":"text/x-python","patch_set":14,"id":"3142fd94_50e0b6b4","line":1967,"range":{"start_line":1963,"start_character":12,"end_line":1967,"end_character":68},"updated":"2023-11-28 15:15:09.000000000","message":"After starting the deployment successfully you have to move the metadata to constants.DEPLOYING_START_DIR","commit_id":"d9b600089e5f9f9295a33fa77356e74ee017c43c"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"ae1f528efdea585d81fbb38b868731b094a3acb0","unresolved":false,"context_lines":[{"line_number":1960,"context_line":"                ret[\"error\"] +\u003d \"Please fix above issues then retry the deploy.\\n\""},{"line_number":1961,"context_line":"                return ret"},{"line_number":1962,"context_line":""},{"line_number":1963,"context_line":"            collect_current_load_for_hosts()"},{"line_number":1964,"context_line":"            if self._deploy_upgrade_start(self.release_data.metadata[deployment][\"sw_version\"]):"},{"line_number":1965,"context_line":"                msg_info \u003d \"Deploy %s started\" % deployment"},{"line_number":1966,"context_line":"            else:"},{"line_number":1967,"context_line":"                msg_error \u003d \"Deploy %s failed to start\" % deployment"},{"line_number":1968,"context_line":""},{"line_number":1969,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"},{"line_number":1970,"context_line":"        # Identify if this is apply or remove operation"}],"source_content_type":"text/x-python","patch_set":14,"id":"2086f36b_2c6c8632","line":1967,"range":{"start_line":1963,"start_character":12,"end_line":1967,"end_character":68},"in_reply_to":"3142fd94_50e0b6b4","updated":"2023-11-28 22:52:04.000000000","message":"I have a separated task working on the deploy state. https://review.opendev.org/c/starlingx/update/+/901866. I will update the change there accordingly. \nWe probably need to look at the way moving the metadata files around to record the current deploy state. Now there are 2 types of state, a deploy state (available, deploying, deployed, unavailable) and a commit state (committed, not-committed or blank).","commit_id":"d9b600089e5f9f9295a33fa77356e74ee017c43c"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"9f6dfb969f84f506513809b7d3ee491e2b9c5e2c","unresolved":true,"context_lines":[{"line_number":1891,"context_line":"            msg \u003d \"Software release version corresponding to the specified release \" \\"},{"line_number":1892,"context_line":"                  \"%s does not exist. \" % deployment"},{"line_number":1893,"context_line":"            LOG.error(msg)"},{"line_number":1894,"context_line":"            msg_error +\u003d \"Software release version corresponding to the specified \" \\"},{"line_number":1895,"context_line":"                         \"release %s does not exist. \" \\"},{"line_number":1896,"context_line":"                         \"Try delete and re-upload the software for \" \\"},{"line_number":1897,"context_line":"                         \"recovery.\" % deployment"},{"line_number":1898,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"}],"source_content_type":"text/x-python","patch_set":16,"id":"79b02429_ce94108d","line":1895,"range":{"start_line":1894,"start_character":25,"end_line":1895,"end_character":54},"updated":"2023-11-29 18:35:25.000000000","message":"This is the same as \u0027msg\u0027 variable above","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"8e590f404ad10792196accc56fe23bb4e5c6756c","unresolved":false,"context_lines":[{"line_number":1891,"context_line":"            msg \u003d \"Software release version corresponding to the specified release \" \\"},{"line_number":1892,"context_line":"                  \"%s does not exist. \" % deployment"},{"line_number":1893,"context_line":"            LOG.error(msg)"},{"line_number":1894,"context_line":"            msg_error +\u003d \"Software release version corresponding to the specified \" \\"},{"line_number":1895,"context_line":"                         \"release %s does not exist. \" \\"},{"line_number":1896,"context_line":"                         \"Try delete and re-upload the software for \" \\"},{"line_number":1897,"context_line":"                         \"recovery.\" % deployment"},{"line_number":1898,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"}],"source_content_type":"text/x-python","patch_set":16,"id":"ef5124b3_c5191e86","line":1895,"range":{"start_line":1894,"start_character":25,"end_line":1895,"end_character":54},"in_reply_to":"79b02429_ce94108d","updated":"2023-11-29 20:01:48.000000000","message":"This is not exactly the same. user instruction is provided in this msg_error.","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"9f6dfb969f84f506513809b7d3ee491e2b9c5e2c","unresolved":true,"context_lines":[{"line_number":1893,"context_line":"            LOG.error(msg)"},{"line_number":1894,"context_line":"            msg_error +\u003d \"Software release version corresponding to the specified \" \\"},{"line_number":1895,"context_line":"                         \"release %s does not exist. \" \\"},{"line_number":1896,"context_line":"                         \"Try delete and re-upload the software for \" \\"},{"line_number":1897,"context_line":"                         \"recovery.\" % deployment"},{"line_number":1898,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"},{"line_number":1899,"context_line":""},{"line_number":1900,"context_line":"        # Check if software release directory location exists"}],"source_content_type":"text/x-python","patch_set":16,"id":"6dca520f_7f6df307","line":1897,"range":{"start_line":1896,"start_character":26,"end_line":1897,"end_character":35},"updated":"2023-11-29 18:35:25.000000000","message":"nit: Rephrase the error message \"Try deleting and re-uploading the software release.\"","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"8e590f404ad10792196accc56fe23bb4e5c6756c","unresolved":false,"context_lines":[{"line_number":1893,"context_line":"            LOG.error(msg)"},{"line_number":1894,"context_line":"            msg_error +\u003d \"Software release version corresponding to the specified \" \\"},{"line_number":1895,"context_line":"                         \"release %s does not exist. \" \\"},{"line_number":1896,"context_line":"                         \"Try delete and re-upload the software for \" \\"},{"line_number":1897,"context_line":"                         \"recovery.\" % deployment"},{"line_number":1898,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"},{"line_number":1899,"context_line":""},{"line_number":1900,"context_line":"        # Check if software release directory location exists"}],"source_content_type":"text/x-python","patch_set":16,"id":"aa2654b5_b8e016ca","line":1897,"range":{"start_line":1896,"start_character":26,"end_line":1897,"end_character":35},"in_reply_to":"6dca520f_7f6df307","updated":"2023-11-29 20:01:48.000000000","message":"Done","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"9f6dfb969f84f506513809b7d3ee491e2b9c5e2c","unresolved":true,"context_lines":[{"line_number":1904,"context_line":""},{"line_number":1905,"context_line":"    def _deploy_upgrade_start(self, to_release):"},{"line_number":1906,"context_line":"        LOG.info(\"start deploy upgrade to %s from %s\" % (to_release, SW_VERSION))"},{"line_number":1907,"context_line":"        cmd_path \u003d \"/usr/sbin/software-deploy-start\""},{"line_number":1908,"context_line":"        k8s_ver \u003d get_k8s_ver()"},{"line_number":1909,"context_line":"        postgresql_port \u003d str(cfg.alt_postgresql_port)"},{"line_number":1910,"context_line":"        feed \u003d os.path.join(constants.FEED_DIR,"}],"source_content_type":"text/x-python","patch_set":16,"id":"149eb182_474454aa","line":1907,"range":{"start_line":1907,"start_character":8,"end_line":1907,"end_character":52},"updated":"2023-11-29 18:35:25.000000000","message":"Add to a constants file","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"8e590f404ad10792196accc56fe23bb4e5c6756c","unresolved":false,"context_lines":[{"line_number":1904,"context_line":""},{"line_number":1905,"context_line":"    def _deploy_upgrade_start(self, to_release):"},{"line_number":1906,"context_line":"        LOG.info(\"start deploy upgrade to %s from %s\" % (to_release, SW_VERSION))"},{"line_number":1907,"context_line":"        cmd_path \u003d \"/usr/sbin/software-deploy-start\""},{"line_number":1908,"context_line":"        k8s_ver \u003d get_k8s_ver()"},{"line_number":1909,"context_line":"        postgresql_port \u003d str(cfg.alt_postgresql_port)"},{"line_number":1910,"context_line":"        feed \u003d os.path.join(constants.FEED_DIR,"}],"source_content_type":"text/x-python","patch_set":16,"id":"691f4685_a911e4aa","line":1907,"range":{"start_line":1907,"start_character":8,"end_line":1907,"end_character":52},"in_reply_to":"149eb182_474454aa","updated":"2023-11-29 20:01:48.000000000","message":"the software-deploy-start is ONLY used here and it is not predicted to be used elsewhere. don\u0027t see the need to extend its scope to global.","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"9f6dfb969f84f506513809b7d3ee491e2b9c5e2c","unresolved":true,"context_lines":[{"line_number":1905,"context_line":"    def _deploy_upgrade_start(self, to_release):"},{"line_number":1906,"context_line":"        LOG.info(\"start deploy upgrade to %s from %s\" % (to_release, SW_VERSION))"},{"line_number":1907,"context_line":"        cmd_path \u003d \"/usr/sbin/software-deploy-start\""},{"line_number":1908,"context_line":"        k8s_ver \u003d get_k8s_ver()"},{"line_number":1909,"context_line":"        postgresql_port \u003d str(cfg.alt_postgresql_port)"},{"line_number":1910,"context_line":"        feed \u003d os.path.join(constants.FEED_DIR,"},{"line_number":1911,"context_line":"                            \"rel-%s/ostree_repo\" % to_release)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5c3fd6b9_87a8fa56","line":1908,"range":{"start_line":1908,"start_character":18,"end_line":1908,"end_character":29},"updated":"2023-11-29 18:35:25.000000000","message":"This function raises an exception that is not handled anywhere","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"8e590f404ad10792196accc56fe23bb4e5c6756c","unresolved":false,"context_lines":[{"line_number":1905,"context_line":"    def _deploy_upgrade_start(self, to_release):"},{"line_number":1906,"context_line":"        LOG.info(\"start deploy upgrade to %s from %s\" % (to_release, SW_VERSION))"},{"line_number":1907,"context_line":"        cmd_path \u003d \"/usr/sbin/software-deploy-start\""},{"line_number":1908,"context_line":"        k8s_ver \u003d get_k8s_ver()"},{"line_number":1909,"context_line":"        postgresql_port \u003d str(cfg.alt_postgresql_port)"},{"line_number":1910,"context_line":"        feed \u003d os.path.join(constants.FEED_DIR,"},{"line_number":1911,"context_line":"                            \"rel-%s/ostree_repo\" % to_release)"}],"source_content_type":"text/x-python","patch_set":16,"id":"3cdc3389_d355fec2","line":1908,"range":{"start_line":1908,"start_character":18,"end_line":1908,"end_character":29},"in_reply_to":"5c3fd6b9_87a8fa56","updated":"2023-11-29 20:01:48.000000000","message":"The function is not able to handle the exception. It is not the best practice to catch each exception in the layer that cannot handle it. Will propose a global exception handler to handle unhandled-exceptions, likely in the root controller, to properly present the result to the user/API caller.","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"9f6dfb969f84f506513809b7d3ee491e2b9c5e2c","unresolved":true,"context_lines":[{"line_number":1947,"context_line":"        msg_warning \u003d \"\""},{"line_number":1948,"context_line":"        msg_error \u003d \"\""},{"line_number":1949,"context_line":""},{"line_number":1950,"context_line":"        # TODO(bqian) to create a separate function to check a release is uploaded and all materials exist"},{"line_number":1951,"context_line":"        # raise proper exception if not"},{"line_number":1952,"context_line":"        # We need to verify that the software release exists"},{"line_number":1953,"context_line":"        release \u003d self.release_data.metadata.get(deployment, None)"}],"source_content_type":"text/x-python","patch_set":16,"id":"53bf1f10_9fddd944","line":1950,"range":{"start_line":1950,"start_character":8,"end_line":1950,"end_character":106},"updated":"2023-11-29 18:35:25.000000000","message":"nit: line too long","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"8e590f404ad10792196accc56fe23bb4e5c6756c","unresolved":false,"context_lines":[{"line_number":1947,"context_line":"        msg_warning \u003d \"\""},{"line_number":1948,"context_line":"        msg_error \u003d \"\""},{"line_number":1949,"context_line":""},{"line_number":1950,"context_line":"        # TODO(bqian) to create a separate function to check a release is uploaded and all materials exist"},{"line_number":1951,"context_line":"        # raise proper exception if not"},{"line_number":1952,"context_line":"        # We need to verify that the software release exists"},{"line_number":1953,"context_line":"        release \u003d self.release_data.metadata.get(deployment, None)"}],"source_content_type":"text/x-python","patch_set":16,"id":"e2f5dd33_3af3ae29","line":1950,"range":{"start_line":1950,"start_character":8,"end_line":1950,"end_character":106},"in_reply_to":"53bf1f10_9fddd944","updated":"2023-11-29 20:01:48.000000000","message":"Done","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"9f6dfb969f84f506513809b7d3ee491e2b9c5e2c","unresolved":true,"context_lines":[{"line_number":1955,"context_line":"            msg \u003d \"Software release version corresponding to the specified release \" \\"},{"line_number":1956,"context_line":"                  \"%s does not exist. \" % deployment"},{"line_number":1957,"context_line":"            LOG.error(msg)"},{"line_number":1958,"context_line":"            msg_error +\u003d \"Software release version corresponding to the specified \" \\"},{"line_number":1959,"context_line":"                         \"release %s does not exist. \" \\"},{"line_number":1960,"context_line":"                         \"Try delete and re-upload the software for \" \\"},{"line_number":1961,"context_line":"                         \"recovery.\" % deployment"},{"line_number":1962,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"}],"source_content_type":"text/x-python","patch_set":16,"id":"03f25d3c_bfbe34c2","line":1959,"range":{"start_line":1958,"start_character":25,"end_line":1959,"end_character":54},"updated":"2023-11-29 18:35:25.000000000","message":"Same as \u0027msg\u0027 variable above and can be reused\nmsg_error +\u003d msg + \"\\n\"","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"8e590f404ad10792196accc56fe23bb4e5c6756c","unresolved":false,"context_lines":[{"line_number":1955,"context_line":"            msg \u003d \"Software release version corresponding to the specified release \" \\"},{"line_number":1956,"context_line":"                  \"%s does not exist. \" % deployment"},{"line_number":1957,"context_line":"            LOG.error(msg)"},{"line_number":1958,"context_line":"            msg_error +\u003d \"Software release version corresponding to the specified \" \\"},{"line_number":1959,"context_line":"                         \"release %s does not exist. \" \\"},{"line_number":1960,"context_line":"                         \"Try delete and re-upload the software for \" \\"},{"line_number":1961,"context_line":"                         \"recovery.\" % deployment"},{"line_number":1962,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"}],"source_content_type":"text/x-python","patch_set":16,"id":"b8173301_c31e1abe","line":1959,"range":{"start_line":1958,"start_character":25,"end_line":1959,"end_character":54},"in_reply_to":"03f25d3c_bfbe34c2","updated":"2023-11-29 20:01:48.000000000","message":"they don\u0027t have to be the same. the bottom one is user visible content. should not couple a logging message with a user message b/c they are initially the same. developer can feel free to modify the logging but not the user message as the latter involves other part of the product.","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"9f6dfb969f84f506513809b7d3ee491e2b9c5e2c","unresolved":true,"context_lines":[{"line_number":1973,"context_line":""},{"line_number":1974,"context_line":"            collect_current_load_for_hosts()"},{"line_number":1975,"context_line":"            if self._deploy_upgrade_start(self.release_data.metadata[deployment][\"sw_version\"]):"},{"line_number":1976,"context_line":"                msg_info \u003d \"Deploy %s started\" % deployment"},{"line_number":1977,"context_line":"            else:"},{"line_number":1978,"context_line":"                msg_error \u003d \"Deploy %s failed to start\" % deployment"},{"line_number":1979,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"791edeb0_3745a206","line":1976,"range":{"start_line":1976,"start_character":28,"end_line":1976,"end_character":45},"updated":"2023-11-29 18:35:25.000000000","message":"nit:\nDeployment started for %s","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"8e590f404ad10792196accc56fe23bb4e5c6756c","unresolved":false,"context_lines":[{"line_number":1973,"context_line":""},{"line_number":1974,"context_line":"            collect_current_load_for_hosts()"},{"line_number":1975,"context_line":"            if self._deploy_upgrade_start(self.release_data.metadata[deployment][\"sw_version\"]):"},{"line_number":1976,"context_line":"                msg_info \u003d \"Deploy %s started\" % deployment"},{"line_number":1977,"context_line":"            else:"},{"line_number":1978,"context_line":"                msg_error \u003d \"Deploy %s failed to start\" % deployment"},{"line_number":1979,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"a3f949ea_d42cd376","line":1976,"range":{"start_line":1976,"start_character":28,"end_line":1976,"end_character":45},"in_reply_to":"791edeb0_3745a206","updated":"2023-11-29 20:01:48.000000000","message":"changed to: Deployment for %s started","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"29ed6a56cdda6bb48c0b464c1d75a0580ec75f29","unresolved":false,"context_lines":[{"line_number":1973,"context_line":""},{"line_number":1974,"context_line":"            collect_current_load_for_hosts()"},{"line_number":1975,"context_line":"            if self._deploy_upgrade_start(self.release_data.metadata[deployment][\"sw_version\"]):"},{"line_number":1976,"context_line":"                msg_info \u003d \"Deploy %s started\" % deployment"},{"line_number":1977,"context_line":"            else:"},{"line_number":1978,"context_line":"                msg_error \u003d \"Deploy %s failed to start\" % deployment"},{"line_number":1979,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9b3eebff_656944db","line":1976,"range":{"start_line":1976,"start_character":28,"end_line":1976,"end_character":45},"in_reply_to":"a3f949ea_d42cd376","updated":"2023-11-30 15:48:19.000000000","message":"Not grammatically correct. Would still prefer the original recommendation.","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"9f6dfb969f84f506513809b7d3ee491e2b9c5e2c","unresolved":true,"context_lines":[{"line_number":1975,"context_line":"            if self._deploy_upgrade_start(self.release_data.metadata[deployment][\"sw_version\"]):"},{"line_number":1976,"context_line":"                msg_info \u003d \"Deploy %s started\" % deployment"},{"line_number":1977,"context_line":"            else:"},{"line_number":1978,"context_line":"                msg_error \u003d \"Deploy %s failed to start\" % deployment"},{"line_number":1979,"context_line":""},{"line_number":1980,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"},{"line_number":1981,"context_line":"        # Identify if this is apply or remove operation"}],"source_content_type":"text/x-python","patch_set":16,"id":"92b4f079_93471b81","line":1978,"range":{"start_line":1978,"start_character":29,"end_line":1978,"end_character":54},"updated":"2023-11-29 18:35:25.000000000","message":"nit: Failed to start deployment for %s","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"8e590f404ad10792196accc56fe23bb4e5c6756c","unresolved":false,"context_lines":[{"line_number":1975,"context_line":"            if self._deploy_upgrade_start(self.release_data.metadata[deployment][\"sw_version\"]):"},{"line_number":1976,"context_line":"                msg_info \u003d \"Deploy %s started\" % deployment"},{"line_number":1977,"context_line":"            else:"},{"line_number":1978,"context_line":"                msg_error \u003d \"Deploy %s failed to start\" % deployment"},{"line_number":1979,"context_line":""},{"line_number":1980,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"},{"line_number":1981,"context_line":"        # Identify if this is apply or remove operation"}],"source_content_type":"text/x-python","patch_set":16,"id":"ce1b7fbe_668dba99","line":1978,"range":{"start_line":1978,"start_character":29,"end_line":1978,"end_character":54},"in_reply_to":"92b4f079_93471b81","updated":"2023-11-29 20:01:48.000000000","message":"changed to: Deployment for %s failed to start","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"29ed6a56cdda6bb48c0b464c1d75a0580ec75f29","unresolved":false,"context_lines":[{"line_number":1975,"context_line":"            if self._deploy_upgrade_start(self.release_data.metadata[deployment][\"sw_version\"]):"},{"line_number":1976,"context_line":"                msg_info \u003d \"Deploy %s started\" % deployment"},{"line_number":1977,"context_line":"            else:"},{"line_number":1978,"context_line":"                msg_error \u003d \"Deploy %s failed to start\" % deployment"},{"line_number":1979,"context_line":""},{"line_number":1980,"context_line":"            return dict(info\u003dmsg_info, warning\u003dmsg_warning, error\u003dmsg_error)"},{"line_number":1981,"context_line":"        # Identify if this is apply or remove operation"}],"source_content_type":"text/x-python","patch_set":16,"id":"86ec4a0e_4c483227","line":1978,"range":{"start_line":1978,"start_character":29,"end_line":1978,"end_character":54},"in_reply_to":"ce1b7fbe_668dba99","updated":"2023-11-30 15:48:19.000000000","message":"Not grammatically correct. Would still prefer the original recommendation.","commit_id":"568e3de83604b75c95ac354dd888a627c294d0c4"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"1e6261b581e058a8064b3232b716a803201e7767","unresolved":true,"context_lines":[{"line_number":1914,"context_line":"        LOG.info(\"k8s version %s\" % k8s_ver)"},{"line_number":1915,"context_line":"        upgrade_start_cmd \u003d [cmd_path, SW_VERSION, to_release, k8s_ver, postgresql_port,"},{"line_number":1916,"context_line":"                             feed]"},{"line_number":1917,"context_line":"        if commit_id is not None:"},{"line_number":1918,"context_line":"            upgrade_start_cmd.append(commit_id)"},{"line_number":1919,"context_line":"        # pass in keystone auth through environment variables"},{"line_number":1920,"context_line":"        # OS_AUTH_URL, OS_USERNAME, OS_PASSWORD, OS_PROJECT_NAME, OS_USER_DOMAIN_NAME,"}],"source_content_type":"text/x-python","patch_set":17,"id":"a121c083_66220ee2","line":1917,"updated":"2023-11-29 20:06:47.000000000","message":"I see alot of the keystone authentication, is this possible to use a common function here?","commit_id":"dc18a4904fcb027dd331b8659c9d2d11ef34508c"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"53a258aa5755bfbabd0413fe56c58fa35145414a","unresolved":false,"context_lines":[{"line_number":1914,"context_line":"        LOG.info(\"k8s version %s\" % k8s_ver)"},{"line_number":1915,"context_line":"        upgrade_start_cmd \u003d [cmd_path, SW_VERSION, to_release, k8s_ver, postgresql_port,"},{"line_number":1916,"context_line":"                             feed]"},{"line_number":1917,"context_line":"        if commit_id is not None:"},{"line_number":1918,"context_line":"            upgrade_start_cmd.append(commit_id)"},{"line_number":1919,"context_line":"        # pass in keystone auth through environment variables"},{"line_number":1920,"context_line":"        # OS_AUTH_URL, OS_USERNAME, OS_PASSWORD, OS_PROJECT_NAME, OS_USER_DOMAIN_NAME,"}],"source_content_type":"text/x-python","patch_set":17,"id":"945128a2_78c607be","line":1917,"in_reply_to":"a121c083_66220ee2","updated":"2023-11-29 20:50:45.000000000","message":"this is retrieving keystone config from software.conf file and set to corresponding environment variables. I do not see how this is a common code. if it becomes common in the future, we may create a shared function","commit_id":"dc18a4904fcb027dd331b8659c9d2d11ef34508c"},{"author":{"_account_id":33390,"name":"Heitor Matsui","display_name":"Heitor Matsui","email":"HeitorVieira.Matsui@windriver.com","username":"heitormatsui"},"change_message_id":"791312299493e115af1b87ba87a2d8d3c107be51","unresolved":true,"context_lines":[{"line_number":1972,"context_line":"                return ret"},{"line_number":1973,"context_line":""},{"line_number":1974,"context_line":"            collect_current_load_for_hosts()"},{"line_number":1975,"context_line":"            if self._deploy_upgrade_start(self.release_data.metadata[deployment][\"sw_version\"]):"},{"line_number":1976,"context_line":"                msg_info \u003d \"Deployment for %s started\" % deployment"},{"line_number":1977,"context_line":"            else:"},{"line_number":1978,"context_line":"                msg_error \u003d \"Deployment for %s failed to start\" % deployment"}],"source_content_type":"text/x-python","patch_set":19,"id":"8c6e27a0_dcf419d7","line":1975,"range":{"start_line":1975,"start_character":42,"end_line":1975,"end_character":94},"updated":"2023-12-04 18:55:16.000000000","message":"Why not use release[\"sw_version\"] here? Also bear in mind that \"sw_version\" is migrating to MM.mm.pp format, so this might as well have impact on your change.","commit_id":"0ef567cf171b5a9113ecb9a8420f7f74723240aa"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"fce57b574e476c11b13c10f9d6c96dae53a6c732","unresolved":false,"context_lines":[{"line_number":1972,"context_line":"                return ret"},{"line_number":1973,"context_line":""},{"line_number":1974,"context_line":"            collect_current_load_for_hosts()"},{"line_number":1975,"context_line":"            if self._deploy_upgrade_start(self.release_data.metadata[deployment][\"sw_version\"]):"},{"line_number":1976,"context_line":"                msg_info \u003d \"Deployment for %s started\" % deployment"},{"line_number":1977,"context_line":"            else:"},{"line_number":1978,"context_line":"                msg_error \u003d \"Deployment for %s failed to start\" % deployment"}],"source_content_type":"text/x-python","patch_set":19,"id":"f2261256_d57dd8e1","line":1975,"range":{"start_line":1975,"start_character":42,"end_line":1975,"end_character":94},"in_reply_to":"8c6e27a0_dcf419d7","updated":"2023-12-04 20:48:01.000000000","message":"thanks. in my latest code, the SW_VERSION is still MM.mm.\nmaking changes to use release[\"sw_version\"].","commit_id":"0ef567cf171b5a9113ecb9a8420f7f74723240aa"},{"author":{"_account_id":33390,"name":"Heitor Matsui","display_name":"Heitor Matsui","email":"HeitorVieira.Matsui@windriver.com","username":"heitormatsui"},"change_message_id":"fd12b4824cdc7352d2aff654c4315d61419fb4ce","unresolved":true,"context_lines":[{"line_number":1979,"context_line":""},{"line_number":1980,"context_line":"        try:"},{"line_number":1981,"context_line":"            LOG.info(\"starting subprocess %s\" % \u0027 \u0027.join(upgrade_start_cmd))"},{"line_number":1982,"context_line":"            subprocess.Popen(\u0027 \u0027.join(upgrade_start_cmd), start_new_session\u003dTrue, shell\u003dTrue, env\u003denv)"},{"line_number":1983,"context_line":"            LOG.info(\"subprocess started\")"},{"line_number":1984,"context_line":"            return True"},{"line_number":1985,"context_line":"        except subprocess.SubprocessError as e:"}],"source_content_type":"text/x-python","patch_set":24,"id":"dd6fcb35_7be860fa","line":1982,"range":{"start_line":1982,"start_character":58,"end_line":1982,"end_character":80},"updated":"2023-12-20 15:00:57.000000000","message":"Since this command is run asynchronously, we should have the deploy state updated to the next step (constants.DEPLOY_STATES.DATA_MIGRATION_COMPLETE does not exist, might need to add it as well), so that USM framework knows that it is ready for the next step, probably \"software deploy host \u003ceach-host\u003e\".","commit_id":"4f5ec521ebba09cef17b3c646ce3db28c7bab877"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"5eac05252ef994540934bbcc267b0ef782bc3a87","unresolved":false,"context_lines":[{"line_number":1979,"context_line":""},{"line_number":1980,"context_line":"        try:"},{"line_number":1981,"context_line":"            LOG.info(\"starting subprocess %s\" % \u0027 \u0027.join(upgrade_start_cmd))"},{"line_number":1982,"context_line":"            subprocess.Popen(\u0027 \u0027.join(upgrade_start_cmd), start_new_session\u003dTrue, shell\u003dTrue, env\u003denv)"},{"line_number":1983,"context_line":"            LOG.info(\"subprocess started\")"},{"line_number":1984,"context_line":"            return True"},{"line_number":1985,"context_line":"        except subprocess.SubprocessError as e:"}],"source_content_type":"text/x-python","patch_set":24,"id":"aec2ab0a_e45c2800","line":1982,"range":{"start_line":1982,"start_character":58,"end_line":1982,"end_character":80},"in_reply_to":"dd6fcb35_7be860fa","updated":"2023-12-20 15:13:35.000000000","message":"there is a separated task to update the deploy state after the data migration completed/failed.","commit_id":"4f5ec521ebba09cef17b3c646ce3db28c7bab877"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"9c226db9825932a6ee0a1ab1f8b4342e5dae43e0","unresolved":true,"context_lines":[{"line_number":1955,"context_line":"        LOG.info(\"start deploy upgrade to %s from %s\" % (to_release, SW_VERSION))"},{"line_number":1956,"context_line":"        cmd_path \u003d \"/usr/sbin/software-deploy/software-deploy-start\""},{"line_number":1957,"context_line":"        major_to_release \u003d utils.get_major_release_version(to_release)"},{"line_number":1958,"context_line":"        k8s_ver \u003d get_k8s_ver()"},{"line_number":1959,"context_line":"        postgresql_port \u003d str(cfg.alt_postgresql_port)"},{"line_number":1960,"context_line":"        feed \u003d os.path.join(constants.FEED_DIR,"},{"line_number":1961,"context_line":"                            \"rel-%s/ostree_repo\" % major_to_release)"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f47c5f4_07ffefe5","line":1958,"updated":"2024-01-02 21:42:49.000000000","message":"This function raises an exception that is not handled properly. As per author\u0027s previous comment, there was a proposal to add a global exception handler. I suggest three options for that:\n1) Handle the exception here\n2) Implement the exception handler in a different commit and get it merged before merging this commit\n3) Implement the exception handler as a part of this commit","commit_id":"38d6646a9ee1608634f274941e26a8710c18fb2c"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"0000c70fb840923be1fe2924ae09a6dedf7b1f08","unresolved":false,"context_lines":[{"line_number":1955,"context_line":"        LOG.info(\"start deploy upgrade to %s from %s\" % (to_release, SW_VERSION))"},{"line_number":1956,"context_line":"        cmd_path \u003d \"/usr/sbin/software-deploy/software-deploy-start\""},{"line_number":1957,"context_line":"        major_to_release \u003d utils.get_major_release_version(to_release)"},{"line_number":1958,"context_line":"        k8s_ver \u003d get_k8s_ver()"},{"line_number":1959,"context_line":"        postgresql_port \u003d str(cfg.alt_postgresql_port)"},{"line_number":1960,"context_line":"        feed \u003d os.path.join(constants.FEED_DIR,"},{"line_number":1961,"context_line":"                            \"rel-%s/ostree_repo\" % major_to_release)"}],"source_content_type":"text/x-python","patch_set":27,"id":"d4dc2dfc_d4325149","line":1958,"in_reply_to":"5f47c5f4_07ffefe5","updated":"2024-01-02 22:06:47.000000000","message":"It will not be handled here. This is an exception that terminate the request and respond to the user with summary. Please take a look at the pattern of sysinv-api. e.g search for \"raise ClientSideError\"","commit_id":"38d6646a9ee1608634f274941e26a8710c18fb2c"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"cc84e7d39cc67a47cc09e8662a5215d462ac4f92","unresolved":false,"context_lines":[{"line_number":1955,"context_line":"        LOG.info(\"start deploy upgrade to %s from %s\" % (to_release, SW_VERSION))"},{"line_number":1956,"context_line":"        cmd_path \u003d \"/usr/sbin/software-deploy/software-deploy-start\""},{"line_number":1957,"context_line":"        major_to_release \u003d utils.get_major_release_version(to_release)"},{"line_number":1958,"context_line":"        k8s_ver \u003d get_k8s_ver()"},{"line_number":1959,"context_line":"        postgresql_port \u003d str(cfg.alt_postgresql_port)"},{"line_number":1960,"context_line":"        feed \u003d os.path.join(constants.FEED_DIR,"},{"line_number":1961,"context_line":"                            \"rel-%s/ostree_repo\" % major_to_release)"}],"source_content_type":"text/x-python","patch_set":27,"id":"83a9bb8f_2c850435","line":1958,"in_reply_to":"d4dc2dfc_d4325149","updated":"2024-01-04 20:04:20.000000000","message":"@jessica.castelino@windriver.com, the overall exception handling could be rewritten but in a separated task. This change will be kept unchanged.","commit_id":"38d6646a9ee1608634f274941e26a8710c18fb2c"}],"software/software/utils.py":[{"author":{"_account_id":34895,"name":"Junfeng Li","display_name":"Junfeng (Shawn) Li","email":"junfeng.li@windriver.com","username":"junfeng-li"},"change_message_id":"1f7c995b0930605880549bf4e106805685818464","unresolved":false,"context_lines":[{"line_number":327,"context_line":"    from_ver \u003d version.Version(from_release)"},{"line_number":328,"context_line":"    to_ver \u003d version.Version(to_release)"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    if from_ver.major \u003d\u003d to_ver.major and from_ver.minor \u003d\u003d to_ver.minor:"},{"line_number":331,"context_line":"        return False"},{"line_number":332,"context_line":"    else:"},{"line_number":333,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":9,"id":"00ca7eb0_3026c496","line":333,"range":{"start_line":330,"start_character":4,"end_line":333,"end_character":19},"updated":"2023-11-07 21:01:42.000000000","message":"it can be simplified to\nreturn from_ver.major \u003d\u003d to_ver.major and from_ver.minor \u003d\u003d to_ver.minor","commit_id":"e04cdd54b848a2ee074f7327a9737201a83a33a7"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"1e6261b581e058a8064b3232b716a803201e7767","unresolved":true,"context_lines":[{"line_number":303,"context_line":""},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"def get_endpoints_token(config\u003dNone, service_type\u003d\"platform\"):"},{"line_number":306,"context_line":"    try:"},{"line_number":307,"context_line":"        if not config:"},{"line_number":308,"context_line":"            keystone_conf \u003d CONF.get(\u0027keystone_authtoken\u0027)"},{"line_number":309,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"b59ba5f5_2f34c823","line":306,"updated":"2023-11-29 20:06:47.000000000","message":"Comment of what this method does.","commit_id":"dc18a4904fcb027dd331b8659c9d2d11ef34508c"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"53a258aa5755bfbabd0413fe56c58fa35145414a","unresolved":false,"context_lines":[{"line_number":303,"context_line":""},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"def get_endpoints_token(config\u003dNone, service_type\u003d\"platform\"):"},{"line_number":306,"context_line":"    try:"},{"line_number":307,"context_line":"        if not config:"},{"line_number":308,"context_line":"            keystone_conf \u003d CONF.get(\u0027keystone_authtoken\u0027)"},{"line_number":309,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"79de15b2_9b59a569","line":306,"in_reply_to":"b59ba5f5_2f34c823","updated":"2023-11-29 20:50:45.000000000","message":"I hope the name of the function tells the story.","commit_id":"dc18a4904fcb027dd331b8659c9d2d11ef34508c"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"1e6261b581e058a8064b3232b716a803201e7767","unresolved":true,"context_lines":[{"line_number":327,"context_line":"        return None, None"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"def is_upgrade_deploy(from_release, to_release):"},{"line_number":331,"context_line":"    from_ver \u003d version.Version(from_release)"},{"line_number":332,"context_line":"    to_ver \u003d version.Version(to_release)"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"684ac896_79ea422d","line":330,"updated":"2023-11-29 20:06:47.000000000","message":"Comment of what this method does.","commit_id":"dc18a4904fcb027dd331b8659c9d2d11ef34508c"},{"author":{"_account_id":31484,"name":"Jessica Castelino","email":"jessica.castelino@windriver.com","username":"jcasteli"},"change_message_id":"29ed6a56cdda6bb48c0b464c1d75a0580ec75f29","unresolved":true,"context_lines":[{"line_number":327,"context_line":"        return None, None"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"def is_upgrade_deploy(from_release, to_release):"},{"line_number":331,"context_line":"    from_ver \u003d version.Version(from_release)"},{"line_number":332,"context_line":"    to_ver \u003d version.Version(to_release)"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"652ed0fc_f020713e","line":330,"in_reply_to":"0c7c856f_34bc0037","updated":"2023-11-30 15:48:19.000000000","message":"Please add docstring for newly added methods.","commit_id":"dc18a4904fcb027dd331b8659c9d2d11ef34508c"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"c7344e1e7fce4de9397ed7873e5766539362d44c","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        return None, None"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"def is_upgrade_deploy(from_release, to_release):"},{"line_number":331,"context_line":"    from_ver \u003d version.Version(from_release)"},{"line_number":332,"context_line":"    to_ver \u003d version.Version(to_release)"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"e521d004_00cf5394","line":330,"in_reply_to":"652ed0fc_f020713e","updated":"2023-11-30 20:34:09.000000000","message":"This is not mandatory. IMO good code should be clear to read by itself, verbose comments adds no value but double the maintenance effort.","commit_id":"dc18a4904fcb027dd331b8659c9d2d11ef34508c"},{"author":{"_account_id":28466,"name":"Bin Qian","email":"bin.qian@windriver.com","username":"bqian"},"change_message_id":"53a258aa5755bfbabd0413fe56c58fa35145414a","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        return None, None"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"def is_upgrade_deploy(from_release, to_release):"},{"line_number":331,"context_line":"    from_ver \u003d version.Version(from_release)"},{"line_number":332,"context_line":"    to_ver \u003d version.Version(to_release)"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"0c7c856f_34bc0037","line":330,"in_reply_to":"684ac896_79ea422d","updated":"2023-11-29 20:50:45.000000000","message":"I hope the name of the function tells the story.","commit_id":"dc18a4904fcb027dd331b8659c9d2d11ef34508c"}]}
