)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"53e9958bd4c23d37c3ab8e7dfa596ff885f1beab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b013edb3_ed454144","updated":"2022-03-07 11:16:57.000000000","message":"I really prefer a clean refactor rather than a refactor with extras - it\u0027s harder to see it\u0027s refactoring correctly.","commit_id":"99c9f8c14a191c34f1557213774a037761a64742"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"dd67d1c46f44652c2a7dd50ff35006dc937c656e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1e6403d3_f8a70ab7","updated":"2022-03-01 11:56:59.000000000","message":"LGTM","commit_id":"99c9f8c14a191c34f1557213774a037761a64742"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"5eaca8660ea7b92eb69a60bc3fc0c5c4cf0978b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"12875f78_a72c74e4","updated":"2022-03-14 21:14:42.000000000","message":"Overally, this is a change in the right direction. One small issue I spotted needs fixing and we can merge.","commit_id":"29dcb719dd827d77fb79db0c078086701b63f438"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e14dd786bc72decb39ea867066a882ed1345c794","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f31bf5f8_0d86e64d","updated":"2022-03-14 21:17:10.000000000","message":"final comment - in the future it may make most sense to move unbuildable images out of python code","commit_id":"29dcb719dd827d77fb79db0c078086701b63f438"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"d95f7639121b71bd32f43a0047a2a56077dfc344","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e8207538_f6abedff","updated":"2022-06-15 07:26:26.000000000","message":"needs rebase","commit_id":"29dcb719dd827d77fb79db0c078086701b63f438"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"fd9e728d439df9a7805a10997d1cc9fb17581719","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"acf3b587_42bb8f48","updated":"2022-03-14 21:16:29.000000000","message":"the merge conflict is due to https://review.opendev.org/c/openstack/kolla/+/812678","commit_id":"29dcb719dd827d77fb79db0c078086701b63f438"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"b1f75492f541748e00c0e032d7654903abc2b710","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a95c6f55_0d92bd57","in_reply_to":"e8207538_f6abedff","updated":"2022-06-15 08:54:02.000000000","message":"Done","commit_id":"29dcb719dd827d77fb79db0c078086701b63f438"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"f79413cdbae74d53435e16de9c615b580ddb9d8e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e1bb2d5e_77a99f97","updated":"2022-06-15 08:53:41.000000000","message":"This is kind of patches which should be rebased more often during review process.\n\nI hope to catch all changes which happen since last rebase.","commit_id":"e0af8472acecd4bf53c0acf9730ebd0c281fff2b"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"867b79a2_d0d03e3b","updated":"2022-06-20 07:48:04.000000000","message":"Feel free to edit this patch.","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"4591c81b_19d3d085","updated":"2022-06-18 08:23:11.000000000","message":"Sorry for coming late to the party with such a bunch of change requests. I can also perform those changes myself if there is no objection to them.","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"a88e92c9cfd9273b9b58ecc7318b69519a315db7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3c9ded18_6a7ebe92","in_reply_to":"4591c81b_19d3d085","updated":"2022-08-23 07:27:04.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"043fc82826eb158079ec845073558b5e6dbe545e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"660f12df_147a32ba","in_reply_to":"867b79a2_d0d03e3b","updated":"2022-10-06 16:32:16.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"612e79126f6a2e1f92b54f3baa41294bdf35316f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"7995f086_47a55ca9","updated":"2022-06-22 05:04:29.000000000","message":"Guess I\u0027ll address the remaining comments myself","commit_id":"1c44cc2091ae7743fd57d9d611e674dcd0200cfa"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"7a070ef30687c030c607d89fee42fb1a5eb907b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"7a332940_7352cda7","in_reply_to":"7995f086_47a55ca9","updated":"2022-06-22 11:04:38.000000000","message":"OK.","commit_id":"1c44cc2091ae7743fd57d9d611e674dcd0200cfa"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9afd57837f4f8b103317d1c2ace3e91c3a1db038","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"ea959d7e_759bc0df","updated":"2022-09-23 15:37:42.000000000","message":"I like the patchset. Needs to drop one word in graphviz section and docker version check has to go as it is not there anymore.\n\nNext time for such big change I will request split into \"1st patch moves code between files, 2nd changes code\" to make it easier to review.\n\nLeft some resolved comments for other reviewers to make it easier to find where that code went.","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"23abc9554bb524eb2dd1855205e3be4a3be2f224","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"d6ad046a_5f1ba9b3","updated":"2022-09-26 11:02:24.000000000","message":"recheck","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"d537a38407b3b73ff2e3e17753f69bf01dd64030","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"c615554a_de24ea9d","in_reply_to":"d6ad046a_5f1ba9b3","updated":"2022-09-26 11:14:27.000000000","message":"This patch requires another rebase. This time it will be simpler as small changes were merged in meantime.","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"1f9d192547ae6dff9b8ac0ba8c53c5bc48364e72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3f977b70_a1b2a8ed","updated":"2022-09-27 12:50:55.000000000","message":"let\u0027s see what zuul says","commit_id":"95d42eb03ba9adf7e7c839a06e94ce9f08ff13e2"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"0ceb35c3b433f7947138880858129980dd1a5c71","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"78f923fb_699cff5e","updated":"2022-09-28 09:04:48.000000000","message":"Failure in centos build shouldn\u0027t be connected to this change, as this same build is failing in merged change in current master.\nhttps://review.opendev.org/c/openstack/kolla/+/856970","commit_id":"4a99e80d2d52dcc443632276767b71646adb9682"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"1bc15e01eb52e2528c784735ca92442658853fb9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"f5a110c2_01ccc050","updated":"2022-10-05 14:29:22.000000000","message":"As there is a problem with getting people to review this patch I volunteered to redo it into more reviewable version:\n\n- cut into pieces\n  - move code\n  - do changes\n\nBut that will be next cycle then ;(","commit_id":"4fc4b767971a9848569938fb5485188d93d7b2c3"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"cdfe7be07c1646eb9d4f6a1e0268ced16e921ea1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"d7637640_0ac935c5","in_reply_to":"9b4b52ec_3971bfdf","updated":"2022-10-05 14:57:47.000000000","message":"Few reasons:\n\n- each moved class needs to be checked was it moved including latest changes\n- you move and do changes in same patch\n\n10 months passed, 16 revisions, not merged yet while being \u0027just refactor\u0027 tells that something is wrong with this patch.","commit_id":"4fc4b767971a9848569938fb5485188d93d7b2c3"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"2eb6a2741bdf1b2ec9b89649aa006353635db544","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"26831485_aad8f219","in_reply_to":"abbb7cb6_32e8c8cf","updated":"2022-10-06 09:57:44.000000000","message":"Due to the sheer size of the patch, the fact it was evolving along the way, and it being that \"just a bit more\" above pure refactoring - it made it hard for core reviewers to find a suitable time window to properly review the patch. hrw is being nice now and working on a more digestible set of patches achieving the same as we want to have a change in this direction, just not this way.","commit_id":"4fc4b767971a9848569938fb5485188d93d7b2c3"},{"author":{"_account_id":29636,"name":"Oliver Horecny","email":"oliver.horecny@tietoevry.com","username":"o.horecny2"},"change_message_id":"a3c0b9643f9a6ac89bb8d695715203cd148a35e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"abbb7cb6_32e8c8cf","in_reply_to":"d7637640_0ac935c5","updated":"2022-10-06 08:04:22.000000000","message":"Yes, you are right that 10 months passed, but mostly it was just waiting for review. When some review was done comments were incorporated immediately and then it was just waiting again.","commit_id":"4fc4b767971a9848569938fb5485188d93d7b2c3"},{"author":{"_account_id":29636,"name":"Oliver Horecny","email":"oliver.horecny@tietoevry.com","username":"o.horecny2"},"change_message_id":"a206c54e5109cf4332bae250edd04566546f796c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"9b4b52ec_3971bfdf","in_reply_to":"f5a110c2_01ccc050","updated":"2022-10-05 14:41:17.000000000","message":"But why? It is just refactor and the total majority of code is just copy-pasted to different place. What was done on top of that is just some renaming was done and few lines of code was added.","commit_id":"4fc4b767971a9848569938fb5485188d93d7b2c3"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"dcae6f25fb86423a4677695a9210128b9632ea60","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"6751e9f2_70a99817","updated":"2022-10-06 10:22:38.000000000","message":"Now this is split into 5 patches. Each of them does one thing and then final one adds Engine Adapter thing.","commit_id":"9a3a1b90e7287c6da5049cc3783fe5e6a61f8e34"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"35a957848063cfd835936f22fd2fe9b54ad11598","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"5795cc4d_6a58e108","updated":"2022-10-06 13:06:54.000000000","message":"Konstantin: can you address comments about EngineAdapter related changes?","commit_id":"e2ee4c3ff4ed8caf207395b16114775e6211a960"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"211556274f640f970d4412283db5670ff1383d31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"3bfbccdb_45c0d253","updated":"2022-10-06 13:06:42.000000000","message":"restoring my -1","commit_id":"e2ee4c3ff4ed8caf207395b16114775e6211a960"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e5478757a422b35f6b250a626ee1ff432a2a9a19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"5bc7ced3_61ea8add","updated":"2022-10-06 16:31:57.000000000","message":"restoring my -1","commit_id":"9465ae7985956f0d8335b73b090fc59d498f4700"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"afe7fd94d9c503b5d0df76f3e1c9a662cfe65eed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"2d5e2b6f_1d4c1a10","updated":"2022-10-11 09:16:39.000000000","message":"maybe this make zuul happier","commit_id":"f4e58f1e9b8a8cb0cd5c6fb64d8a7ba472472a98"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"b921f57792193f725dcd390b9881534394194b30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"0be86b6a_6bf2dca9","updated":"2022-10-11 09:40:10.000000000","message":"pep8 fixes","commit_id":"b0857b5d6e60db05dc26348e5ebfca517b24ae0f"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"b49245805d0a5f172d0bc13bd6d7a10726d123fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"22229833_8c56f4f1","updated":"2023-02-27 09:40:16.000000000","message":"Let\u0027s Get This Merged","commit_id":"a2854da1b3e12987f7fa7590fca3bb74ac19c53e"}],"kolla/common/config.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":200,"context_line":"                     \u0027 dependency in Graphviz dot format\u0027)),"},{"line_number":201,"context_line":"    cfg.StrOpt(\u0027format\u0027, short\u003d\u0027f\u0027, default\u003d\u0027json\u0027,"},{"line_number":202,"context_line":"               choices\u003d[\u0027json\u0027, \u0027none\u0027],"},{"line_number":203,"context_line":"               help\u003d\u0027Format to write the final results in.\u0027),"},{"line_number":204,"context_line":"    cfg.StrOpt(\u0027tarballs-base\u0027, default\u003dTARBALLS_BASE,"},{"line_number":205,"context_line":"               help\u003d\u0027Base url to OpenStack tarballs\u0027),"},{"line_number":206,"context_line":"    # NOTE(hrw): deprecate argument in Zed, remove in A-cycle"}],"source_content_type":"text/x-python","patch_set":6,"id":"d0d443e2_a0ce2b1b","line":203,"updated":"2022-06-18 08:23:11.000000000","message":"Nit: We don\u0027t have a \".\" at the end of most help messages, can we keep that consistent?","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"612e79126f6a2e1f92b54f3baa41294bdf35316f","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                     \u0027 dependency in Graphviz dot format\u0027)),"},{"line_number":201,"context_line":"    cfg.StrOpt(\u0027format\u0027, short\u003d\u0027f\u0027, default\u003d\u0027json\u0027,"},{"line_number":202,"context_line":"               choices\u003d[\u0027json\u0027, \u0027none\u0027],"},{"line_number":203,"context_line":"               help\u003d\u0027Format to write the final results in.\u0027),"},{"line_number":204,"context_line":"    cfg.StrOpt(\u0027tarballs-base\u0027, default\u003dTARBALLS_BASE,"},{"line_number":205,"context_line":"               help\u003d\u0027Base url to OpenStack tarballs\u0027),"},{"line_number":206,"context_line":"    # NOTE(hrw): deprecate argument in Zed, remove in A-cycle"}],"source_content_type":"text/x-python","patch_set":6,"id":"20b4d0bd_4de8b6a4","line":203,"in_reply_to":"8fb996a7_ceb83bdf","updated":"2022-06-22 05:04:29.000000000","message":"Ack","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"235ef09ad5d251ecd82df973a89f6c9ea4c96c84","unresolved":false,"context_lines":[{"line_number":200,"context_line":"                     \u0027 dependency in Graphviz dot format\u0027)),"},{"line_number":201,"context_line":"    cfg.StrOpt(\u0027format\u0027, short\u003d\u0027f\u0027, default\u003d\u0027json\u0027,"},{"line_number":202,"context_line":"               choices\u003d[\u0027json\u0027, \u0027none\u0027],"},{"line_number":203,"context_line":"               help\u003d\u0027Format to write the final results in.\u0027),"},{"line_number":204,"context_line":"    cfg.StrOpt(\u0027tarballs-base\u0027, default\u003dTARBALLS_BASE,"},{"line_number":205,"context_line":"               help\u003d\u0027Base url to OpenStack tarballs\u0027),"},{"line_number":206,"context_line":"    # NOTE(hrw): deprecate argument in Zed, remove in A-cycle"}],"source_content_type":"text/x-python","patch_set":6,"id":"6fe14264_27b918b7","line":203,"in_reply_to":"8fb996a7_ceb83bdf","updated":"2022-06-21 12:47:55.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":true,"context_lines":[{"line_number":200,"context_line":"                     \u0027 dependency in Graphviz dot format\u0027)),"},{"line_number":201,"context_line":"    cfg.StrOpt(\u0027format\u0027, short\u003d\u0027f\u0027, default\u003d\u0027json\u0027,"},{"line_number":202,"context_line":"               choices\u003d[\u0027json\u0027, \u0027none\u0027],"},{"line_number":203,"context_line":"               help\u003d\u0027Format to write the final results in.\u0027),"},{"line_number":204,"context_line":"    cfg.StrOpt(\u0027tarballs-base\u0027, default\u003dTARBALLS_BASE,"},{"line_number":205,"context_line":"               help\u003d\u0027Base url to OpenStack tarballs\u0027),"},{"line_number":206,"context_line":"    # NOTE(hrw): deprecate argument in Zed, remove in A-cycle"}],"source_content_type":"text/x-python","patch_set":6,"id":"8fb996a7_ceb83bdf","line":203,"in_reply_to":"d0d443e2_a0ce2b1b","updated":"2022-06-20 07:48:04.000000000","message":"--format FORMAT, -f FORMAT\n                        Format to write the final results in. Allowed values: json, none\n\nIf we have \u0027choices\u0027 given then \"Allowed values: [list]\" is added. That\u0027s why I added that dot.","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":255,"context_line":"    cfg.StrOpt(\u0027repos-yaml\u0027, default\u003d\u0027\u0027,"},{"line_number":256,"context_line":"               help\u003d\u0027Path to alternative repos.yaml file\u0027),"},{"line_number":257,"context_line":"    cfg.StrOpt(\u0027engine\u0027, default\u003d\u0027docker\u0027, choices\u003d[\u0027docker\u0027],"},{"line_number":258,"context_line":"               help\u003d\u0027Engine to build images on.\u0027)"},{"line_number":259,"context_line":"]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"_BASE_OPTS \u003d ["}],"source_content_type":"text/x-python","patch_set":6,"id":"e98ad705_cacf9470","line":258,"updated":"2022-06-18 08:23:11.000000000","message":"dito","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"235ef09ad5d251ecd82df973a89f6c9ea4c96c84","unresolved":false,"context_lines":[{"line_number":255,"context_line":"    cfg.StrOpt(\u0027repos-yaml\u0027, default\u003d\u0027\u0027,"},{"line_number":256,"context_line":"               help\u003d\u0027Path to alternative repos.yaml file\u0027),"},{"line_number":257,"context_line":"    cfg.StrOpt(\u0027engine\u0027, default\u003d\u0027docker\u0027, choices\u003d[\u0027docker\u0027],"},{"line_number":258,"context_line":"               help\u003d\u0027Engine to build images on.\u0027)"},{"line_number":259,"context_line":"]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"_BASE_OPTS \u003d ["}],"source_content_type":"text/x-python","patch_set":6,"id":"bcd700a1_0d98e407","line":258,"in_reply_to":"26ddd7ee_f676097c","updated":"2022-06-21 12:47:55.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":true,"context_lines":[{"line_number":255,"context_line":"    cfg.StrOpt(\u0027repos-yaml\u0027, default\u003d\u0027\u0027,"},{"line_number":256,"context_line":"               help\u003d\u0027Path to alternative repos.yaml file\u0027),"},{"line_number":257,"context_line":"    cfg.StrOpt(\u0027engine\u0027, default\u003d\u0027docker\u0027, choices\u003d[\u0027docker\u0027],"},{"line_number":258,"context_line":"               help\u003d\u0027Engine to build images on.\u0027)"},{"line_number":259,"context_line":"]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"_BASE_OPTS \u003d ["}],"source_content_type":"text/x-python","patch_set":6,"id":"26ddd7ee_f676097c","line":258,"in_reply_to":"e98ad705_cacf9470","updated":"2022-06-20 07:48:04.000000000","message":"ditto","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c8b6c9fefd8abac54aa33bcc839748fcafed1005","unresolved":true,"context_lines":[{"line_number":193,"context_line":"                 help\u003d(\u0027Build only images matching regex and its\u0027"},{"line_number":194,"context_line":"                       \u0027 dependencies\u0027)),"},{"line_number":195,"context_line":"    cfg.StrOpt(\u0027registry\u0027,"},{"line_number":196,"context_line":"               help\u003d(\u0027The container registry host. The default registry host\u0027"},{"line_number":197,"context_line":"                     \u0027 is Docker Hub\u0027)),"},{"line_number":198,"context_line":"    cfg.StrOpt(\u0027save-dependency\u0027,"},{"line_number":199,"context_line":"               help\u003d(\u0027Path to the file to store the docker image\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"02a5e25c_4fcce801","line":196,"range":{"start_line":196,"start_character":26,"end_line":196,"end_character":36},"updated":"2022-06-20 09:01:37.000000000","message":"container image","commit_id":"2ad8035a6bd1e66ca482ff68f3c19582f5a9a42e"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"de185b55324bc12bb9463297b85fb69479492805","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                 help\u003d(\u0027Build only images matching regex and its\u0027"},{"line_number":194,"context_line":"                       \u0027 dependencies\u0027)),"},{"line_number":195,"context_line":"    cfg.StrOpt(\u0027registry\u0027,"},{"line_number":196,"context_line":"               help\u003d(\u0027The container registry host. The default registry host\u0027"},{"line_number":197,"context_line":"                     \u0027 is Docker Hub\u0027)),"},{"line_number":198,"context_line":"    cfg.StrOpt(\u0027save-dependency\u0027,"},{"line_number":199,"context_line":"               help\u003d(\u0027Path to the file to store the docker image\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"beeca2b2_7f151355","line":196,"range":{"start_line":196,"start_character":26,"end_line":196,"end_character":36},"in_reply_to":"02a5e25c_4fcce801","updated":"2022-06-20 09:15:54.000000000","message":"Done","commit_id":"2ad8035a6bd1e66ca482ff68f3c19582f5a9a42e"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c8b6c9fefd8abac54aa33bcc839748fcafed1005","unresolved":true,"context_lines":[{"line_number":213,"context_line":"                     \u0027 (Note: setting to one will allow real time\u0027"},{"line_number":214,"context_line":"                     \u0027 logging)\u0027)),"},{"line_number":215,"context_line":"    cfg.StrOpt(\u0027tag\u0027, default\u003dversion.cached_version_string(),"},{"line_number":216,"context_line":"               help\u003d\u0027The container tag\u0027),"},{"line_number":217,"context_line":"    cfg.BoolOpt(\u0027template-only\u0027, default\u003dFalse,"},{"line_number":218,"context_line":"                help\u003d\"Don\u0027t build images. Generate Dockerfile only\"),"},{"line_number":219,"context_line":"    cfg.IntOpt(\u0027timeout\u0027, default\u003d120,"}],"source_content_type":"text/x-python","patch_set":7,"id":"27de2d87_d6f3697b","line":216,"range":{"start_line":216,"start_character":25,"end_line":216,"end_character":35},"updated":"2022-06-20 09:01:37.000000000","message":"container image","commit_id":"2ad8035a6bd1e66ca482ff68f3c19582f5a9a42e"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"de185b55324bc12bb9463297b85fb69479492805","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                     \u0027 (Note: setting to one will allow real time\u0027"},{"line_number":214,"context_line":"                     \u0027 logging)\u0027)),"},{"line_number":215,"context_line":"    cfg.StrOpt(\u0027tag\u0027, default\u003dversion.cached_version_string(),"},{"line_number":216,"context_line":"               help\u003d\u0027The container tag\u0027),"},{"line_number":217,"context_line":"    cfg.BoolOpt(\u0027template-only\u0027, default\u003dFalse,"},{"line_number":218,"context_line":"                help\u003d\"Don\u0027t build images. Generate Dockerfile only\"),"},{"line_number":219,"context_line":"    cfg.IntOpt(\u0027timeout\u0027, default\u003d120,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7c350627_465f0d50","line":216,"range":{"start_line":216,"start_character":25,"end_line":216,"end_character":35},"in_reply_to":"27de2d87_d6f3697b","updated":"2022-06-20 09:15:54.000000000","message":"Done","commit_id":"2ad8035a6bd1e66ca482ff68f3c19582f5a9a42e"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c8b6c9fefd8abac54aa33bcc839748fcafed1005","unresolved":true,"context_lines":[{"line_number":255,"context_line":"    cfg.StrOpt(\u0027repos-yaml\u0027, default\u003d\u0027\u0027,"},{"line_number":256,"context_line":"               help\u003d\u0027Path to alternative repos.yaml file\u0027),"},{"line_number":257,"context_line":"    cfg.StrOpt(\u0027engine\u0027, default\u003d\u0027docker\u0027, choices\u003d[\u0027docker\u0027],"},{"line_number":258,"context_line":"               help\u003d\u0027Engine to build images on.\u0027)"},{"line_number":259,"context_line":"]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"_BASE_OPTS \u003d ["}],"source_content_type":"text/x-python","patch_set":7,"id":"9346ecef_8a8d11ec","line":258,"range":{"start_line":258,"start_character":21,"end_line":258,"end_character":28},"updated":"2022-06-20 09:01:37.000000000","message":"Container engine","commit_id":"2ad8035a6bd1e66ca482ff68f3c19582f5a9a42e"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"de185b55324bc12bb9463297b85fb69479492805","unresolved":false,"context_lines":[{"line_number":255,"context_line":"    cfg.StrOpt(\u0027repos-yaml\u0027, default\u003d\u0027\u0027,"},{"line_number":256,"context_line":"               help\u003d\u0027Path to alternative repos.yaml file\u0027),"},{"line_number":257,"context_line":"    cfg.StrOpt(\u0027engine\u0027, default\u003d\u0027docker\u0027, choices\u003d[\u0027docker\u0027],"},{"line_number":258,"context_line":"               help\u003d\u0027Engine to build images on.\u0027)"},{"line_number":259,"context_line":"]"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"_BASE_OPTS \u003d ["}],"source_content_type":"text/x-python","patch_set":7,"id":"fbe8d202_beb2c7be","line":258,"range":{"start_line":258,"start_character":21,"end_line":258,"end_character":28},"in_reply_to":"9346ecef_8a8d11ec","updated":"2022-06-20 09:15:54.000000000","message":"Done","commit_id":"2ad8035a6bd1e66ca482ff68f3c19582f5a9a42e"}],"kolla/engine_adapter/engine.py":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"53e9958bd4c23d37c3ab8e7dfa596ff885f1beab","unresolved":true,"context_lines":[{"line_number":36,"context_line":"        raise Exception(f\"Unsupported engine name given: {conf.engine}\")"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def isOldVersion():"},{"line_number":40,"context_line":"    # This function is only for docker"},{"line_number":41,"context_line":"    dc_running_ver \u003d StrictVersion(docker.version)"},{"line_number":42,"context_line":"    return dc_running_ver \u003c StrictVersion(\u00273.0.0\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"55a9297e_08242ead","line":42,"range":{"start_line":39,"start_character":0,"end_line":42,"end_character":50},"updated":"2022-03-07 11:16:57.000000000","message":"misleading and imprecise to introduce this helper - it would be better to simply expose the engine version in here","commit_id":"99c9f8c14a191c34f1557213774a037761a64742"},{"author":{"_account_id":34501,"name":"Konstantin Yarovoy","email":"konstantin.yarovoy@tietoevry.com","username":"yarovkon"},"change_message_id":"acd3975c3943d8e1c101d4beff8ccb15dbb409cd","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        raise Exception(f\"Unsupported engine name given: {conf.engine}\")"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def isOldVersion():"},{"line_number":40,"context_line":"    # This function is only for docker"},{"line_number":41,"context_line":"    dc_running_ver \u003d StrictVersion(docker.version)"},{"line_number":42,"context_line":"    return dc_running_ver \u003c StrictVersion(\u00273.0.0\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"d482f286_17221c31","line":42,"range":{"start_line":39,"start_character":0,"end_line":42,"end_character":50},"in_reply_to":"55a9297e_08242ead","updated":"2022-03-08 11:51:00.000000000","message":"Done","commit_id":"99c9f8c14a191c34f1557213774a037761a64742"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":6,"id":"f8fc8d1c_7d4540c7","line":1,"updated":"2022-06-18 08:23:11.000000000","message":"This isn\u0027t expected to be executable, is it? So please drop this.","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":6,"id":"f2bff6fa_950bf98d","line":1,"in_reply_to":"f8fc8d1c_7d4540c7","updated":"2022-06-20 07:48:04.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"try:"},{"line_number":18,"context_line":"    import docker"},{"line_number":19,"context_line":"except (ImportError, ModuleNotFoundError):"},{"line_number":20,"context_line":"    # Not installed library is covered in build.py"},{"line_number":21,"context_line":"    pass"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"c6593680_29105136","line":19,"range":{"start_line":19,"start_character":21,"end_line":19,"end_character":40},"updated":"2022-06-18 08:23:11.000000000","message":"ModuleNotFoundError is a subclass of ImportError, no need to specify it explicitly?","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"561c2a742884417b4d44fdeb9176122d2d8313a0","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"try:"},{"line_number":18,"context_line":"    import docker"},{"line_number":19,"context_line":"except (ImportError, ModuleNotFoundError):"},{"line_number":20,"context_line":"    # Not installed library is covered in build.py"},{"line_number":21,"context_line":"    pass"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1437f463_d04f9999","line":19,"range":{"start_line":19,"start_character":21,"end_line":19,"end_character":40},"in_reply_to":"c6593680_29105136","updated":"2022-07-21 07:32:15.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    if conf.engine \u003d\u003d \"docker\":"},{"line_number":26,"context_line":"        return (docker.errors.DockerException)"},{"line_number":27,"context_line":"    else:"},{"line_number":28,"context_line":"        raise Exception(f\"Unsupported engine name given: {conf.engine}\")"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def getEngineClient(conf):"}],"source_content_type":"text/x-python","patch_set":6,"id":"617961f7_c8f441be","line":28,"updated":"2022-06-18 08:23:11.000000000","message":"Can we use a more specific exception here and below? Maybe ValueError?","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"561c2a742884417b4d44fdeb9176122d2d8313a0","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    if conf.engine \u003d\u003d \"docker\":"},{"line_number":26,"context_line":"        return (docker.errors.DockerException)"},{"line_number":27,"context_line":"    else:"},{"line_number":28,"context_line":"        raise Exception(f\"Unsupported engine name given: {conf.engine}\")"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def getEngineClient(conf):"}],"source_content_type":"text/x-python","patch_set":6,"id":"67e8d782_f3185e76","line":28,"in_reply_to":"617961f7_c8f441be","updated":"2022-07-21 07:32:15.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":29858,"name":"Maciej Siczek","email":"m.siczek@samsung.com"},"change_message_id":"7e34b74104c8c2aa5fbf81d490bdaa2c61d08139","unresolved":true,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"def getEngineException(conf):"},{"line_number":23,"context_line":"    if conf.engine \u003d\u003d \"docker\":"},{"line_number":24,"context_line":"        return (docker.errors.DockerException)"},{"line_number":25,"context_line":"    else:"},{"line_number":26,"context_line":"        raise Exception(f\"Unsupported engine name given: {conf.engine}\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"e98034f0_762b4dad","line":23,"range":{"start_line":23,"start_character":22,"end_line":23,"end_character":30},"updated":"2022-07-04 15:15:35.000000000","message":"How about creating Enum for this? Then we could quit repeating pseudo-constant string?\n\n\u003e\u003e\u003e from enum import Enum\n\u003e\u003e\u003e class Engine(Enum):\n...   DOCKER \u003d \u0027docker\u0027\n...   OTHER \u003d \u0027other\u0027\n...\n\n\u003e\u003e\u003e if conf.engine \u003d\u003d Engine.DOCKER.value:\n...    # do something","commit_id":"1c44cc2091ae7743fd57d9d611e674dcd0200cfa"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"561c2a742884417b4d44fdeb9176122d2d8313a0","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"def getEngineException(conf):"},{"line_number":23,"context_line":"    if conf.engine \u003d\u003d \"docker\":"},{"line_number":24,"context_line":"        return (docker.errors.DockerException)"},{"line_number":25,"context_line":"    else:"},{"line_number":26,"context_line":"        raise Exception(f\"Unsupported engine name given: {conf.engine}\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"8504fdf0_0524513d","line":23,"range":{"start_line":23,"start_character":22,"end_line":23,"end_character":30},"in_reply_to":"e98034f0_762b4dad","updated":"2022-07-21 07:32:15.000000000","message":"Done","commit_id":"1c44cc2091ae7743fd57d9d611e674dcd0200cfa"},{"author":{"_account_id":29858,"name":"Maciej Siczek","email":"m.siczek@samsung.com"},"change_message_id":"7e34b74104c8c2aa5fbf81d490bdaa2c61d08139","unresolved":true,"context_lines":[{"line_number":23,"context_line":"    if conf.engine \u003d\u003d \"docker\":"},{"line_number":24,"context_line":"        return (docker.errors.DockerException)"},{"line_number":25,"context_line":"    else:"},{"line_number":26,"context_line":"        raise Exception(f\"Unsupported engine name given: {conf.engine}\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def getEngineClient(conf):"}],"source_content_type":"text/x-python","patch_set":9,"id":"125a0322_2da0fe85","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":72},"updated":"2022-07-04 15:15:35.000000000","message":"\u003e\u003e\u003e class UnsupportedEngineError(ValueError):\n...     def __init__(self, engine_name):\n...         super().__init__()\n...         self.engine_name \u003d engine_name\n...     def __str__(self):\n...         return f\u0027Unsupported engine name given: \"{self.engine_name}\"\u0027\n\n# then just do this:\nraise UnsupportedEngineError(conf.engine)","commit_id":"1c44cc2091ae7743fd57d9d611e674dcd0200cfa"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"561c2a742884417b4d44fdeb9176122d2d8313a0","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    if conf.engine \u003d\u003d \"docker\":"},{"line_number":24,"context_line":"        return (docker.errors.DockerException)"},{"line_number":25,"context_line":"    else:"},{"line_number":26,"context_line":"        raise Exception(f\"Unsupported engine name given: {conf.engine}\")"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def getEngineClient(conf):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9bcdb0d1_0401ffa2","line":26,"range":{"start_line":26,"start_character":8,"end_line":26,"end_character":72},"in_reply_to":"125a0322_2da0fe85","updated":"2022-07-21 07:32:15.000000000","message":"Done","commit_id":"1c44cc2091ae7743fd57d9d611e674dcd0200cfa"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e1dbee8e135c18c9f31844791c9de94196894789","unresolved":true,"context_lines":[{"line_number":16,"context_line":"try:"},{"line_number":17,"context_line":"    import docker"},{"line_number":18,"context_line":"except (ImportError):"},{"line_number":19,"context_line":"    # Not installed library is covered in build.py"},{"line_number":20,"context_line":"    pass"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"91a42146_bdbdcd8e","line":19,"updated":"2022-10-06 12:57:59.000000000","message":"nit: this could log a debugging info just in case","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"9c7752d0723a93dfc637a18cd51f7fd71e415693","unresolved":false,"context_lines":[{"line_number":16,"context_line":"try:"},{"line_number":17,"context_line":"    import docker"},{"line_number":18,"context_line":"except (ImportError):"},{"line_number":19,"context_line":"    # Not installed library is covered in build.py"},{"line_number":20,"context_line":"    pass"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"b2d3855e_59098238","line":19,"in_reply_to":"28437546_c8f8d4a3","updated":"2022-10-11 09:04:59.000000000","message":"Done","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"482b00d04ab83223134fef355683a4cc87db5498","unresolved":true,"context_lines":[{"line_number":16,"context_line":"try:"},{"line_number":17,"context_line":"    import docker"},{"line_number":18,"context_line":"except (ImportError):"},{"line_number":19,"context_line":"    # Not installed library is covered in build.py"},{"line_number":20,"context_line":"    pass"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"fcd94be4_b13205e4","line":19,"in_reply_to":"91a42146_bdbdcd8e","updated":"2022-10-07 07:59:17.000000000","message":"I think, that this is unnecessary to log debug info there, as this whole file wouldn\u0027t be used in case of missing docker library, it would just fail as soon as it will be started.","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"f522d54845babcca9c3a56b14b35f709d369d8a9","unresolved":true,"context_lines":[{"line_number":16,"context_line":"try:"},{"line_number":17,"context_line":"    import docker"},{"line_number":18,"context_line":"except (ImportError):"},{"line_number":19,"context_line":"    # Not installed library is covered in build.py"},{"line_number":20,"context_line":"    pass"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"28437546_c8f8d4a3","line":19,"in_reply_to":"fcd94be4_b13205e4","updated":"2022-10-07 08:12:33.000000000","message":"But this file will be used also for other engines. It is good to know upfront that some support was not loaded.","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e1dbee8e135c18c9f31844791c9de94196894789","unresolved":true,"context_lines":[{"line_number":35,"context_line":"        return f\u0027Unsupported engine name given: \"{self.engine_name}\"\u0027"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def getEngineException(conf):"},{"line_number":39,"context_line":"    if conf.engine \u003d\u003d Engine.DOCKER.value:"},{"line_number":40,"context_line":"        return (docker.errors.DockerException)"},{"line_number":41,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":18,"id":"53c3f974_0ba8862e","line":38,"range":{"start_line":38,"start_character":23,"end_line":38,"end_character":27},"updated":"2022-10-06 12:57:59.000000000","message":"config is global in openstack apps - we should not be passing it around, rather it should be obtained like everywhere; ditto all over the file","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"482b00d04ab83223134fef355683a4cc87db5498","unresolved":true,"context_lines":[{"line_number":35,"context_line":"        return f\u0027Unsupported engine name given: \"{self.engine_name}\"\u0027"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def getEngineException(conf):"},{"line_number":39,"context_line":"    if conf.engine \u003d\u003d Engine.DOCKER.value:"},{"line_number":40,"context_line":"        return (docker.errors.DockerException)"},{"line_number":41,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":18,"id":"2e3a746d_5cf2cd09","line":38,"range":{"start_line":38,"start_character":23,"end_line":38,"end_character":27},"in_reply_to":"09adbcba_4452b6be","updated":"2022-10-07 07:59:17.000000000","message":"Agree to Marcin, we are just using old way of how it was done.","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"f522d54845babcca9c3a56b14b35f709d369d8a9","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        return f\u0027Unsupported engine name given: \"{self.engine_name}\"\u0027"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def getEngineException(conf):"},{"line_number":39,"context_line":"    if conf.engine \u003d\u003d Engine.DOCKER.value:"},{"line_number":40,"context_line":"        return (docker.errors.DockerException)"},{"line_number":41,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":18,"id":"50ac12e7_0f3153c3","line":38,"range":{"start_line":38,"start_character":23,"end_line":38,"end_character":27},"in_reply_to":"2e3a746d_5cf2cd09","updated":"2022-10-07 08:12:33.000000000","message":"Ok, not elegant but let it be until later.","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"30d277dfdf68d5b177b968aa4baf8b180ce6f6ac","unresolved":true,"context_lines":[{"line_number":35,"context_line":"        return f\u0027Unsupported engine name given: \"{self.engine_name}\"\u0027"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def getEngineException(conf):"},{"line_number":39,"context_line":"    if conf.engine \u003d\u003d Engine.DOCKER.value:"},{"line_number":40,"context_line":"        return (docker.errors.DockerException)"},{"line_number":41,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":18,"id":"09adbcba_4452b6be","line":38,"range":{"start_line":38,"start_character":23,"end_line":38,"end_character":27},"in_reply_to":"53c3f974_0ba8862e","updated":"2022-10-07 07:29:47.000000000","message":"image/build.py creates config and passes it to KollaWorker and wherever it is needed.","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"}],"kolla/image/build.py":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"53e9958bd4c23d37c3ab8e7dfa596ff885f1beab","unresolved":true,"context_lines":[{"line_number":106,"context_line":"    if conf.debug:"},{"line_number":107,"context_line":"        LOG.setLevel(logging.DEBUG)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    if conf.engine not in (\u0027docker\u0027):"},{"line_number":110,"context_line":"        LOG.error(f\u0027Wrong engine name \"{conf.engine}\", exiting.\u0027)"},{"line_number":111,"context_line":"        exit(1)"},{"line_number":112,"context_line":"    LOG.info(f\u0027Using engine: {conf.engine}\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9bca1321_200f318a","line":109,"range":{"start_line":109,"start_character":4,"end_line":109,"end_character":36},"updated":"2022-03-07 11:16:57.000000000","message":"this does not work as expected - needs a trailing comma to make that a tuple - at the moment it will pass for example with conf.engine set to \u0027o\u0027 because \u0027o\u0027 is in \u0027docker\u0027 - a good candidate for another unit test!","commit_id":"99c9f8c14a191c34f1557213774a037761a64742"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"5eaca8660ea7b92eb69a60bc3fc0c5c4cf0978b8","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    if conf.debug:"},{"line_number":107,"context_line":"        LOG.setLevel(logging.DEBUG)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    if conf.engine not in (\u0027docker\u0027):"},{"line_number":110,"context_line":"        LOG.error(f\u0027Wrong engine name \"{conf.engine}\", exiting.\u0027)"},{"line_number":111,"context_line":"        exit(1)"},{"line_number":112,"context_line":"    LOG.info(f\u0027Using engine: {conf.engine}\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"4c5486ed_80fce994","line":109,"range":{"start_line":109,"start_character":4,"end_line":109,"end_character":36},"in_reply_to":"8a0cb06b_76e5c020","updated":"2022-03-14 21:14:42.000000000","message":"I normally test these in unit tests too, but I don\u0027t mind much. This function is not the best candidate for unit tests anyway - it begs for refactoring - and life is life.","commit_id":"99c9f8c14a191c34f1557213774a037761a64742"},{"author":{"_account_id":34501,"name":"Konstantin Yarovoy","email":"konstantin.yarovoy@tietoevry.com","username":"yarovkon"},"change_message_id":"acd3975c3943d8e1c101d4beff8ccb15dbb409cd","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    if conf.debug:"},{"line_number":107,"context_line":"        LOG.setLevel(logging.DEBUG)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    if conf.engine not in (\u0027docker\u0027):"},{"line_number":110,"context_line":"        LOG.error(f\u0027Wrong engine name \"{conf.engine}\", exiting.\u0027)"},{"line_number":111,"context_line":"        exit(1)"},{"line_number":112,"context_line":"    LOG.info(f\u0027Using engine: {conf.engine}\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"8a0cb06b_76e5c020","line":109,"range":{"start_line":109,"start_character":4,"end_line":109,"end_character":36},"in_reply_to":"9bca1321_200f318a","updated":"2022-03-08 11:51:00.000000000","message":"Done, about test - i am not sure that usage of the program with incorrect parameters should be covered in unit tests, feels more like an integration test","commit_id":"99c9f8c14a191c34f1557213774a037761a64742"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":107,"context_line":"        LOG.setLevel(logging.DEBUG)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    if conf.engine not in (\u0027docker\u0027,):"},{"line_number":110,"context_line":"        LOG.error(f\u0027Wrong engine name \"{conf.engine}\", exiting.\u0027)"},{"line_number":111,"context_line":"        exit(1)"},{"line_number":112,"context_line":"    LOG.info(f\u0027Using engine: {conf.engine}\u0027)"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7b9d09cc_00019eee","line":110,"updated":"2022-06-18 08:23:11.000000000","message":"s/Wrong/Unsupported/ to match the exception text in the engine module.","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        LOG.setLevel(logging.DEBUG)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    if conf.engine not in (\u0027docker\u0027,):"},{"line_number":110,"context_line":"        LOG.error(f\u0027Wrong engine name \"{conf.engine}\", exiting.\u0027)"},{"line_number":111,"context_line":"        exit(1)"},{"line_number":112,"context_line":"    LOG.info(f\u0027Using engine: {conf.engine}\u0027)"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"86f86980_9c422d73","line":110,"in_reply_to":"7b9d09cc_00019eee","updated":"2022-06-20 07:48:04.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    if conf.engine not in (\u0027docker\u0027,):"},{"line_number":110,"context_line":"        LOG.error(f\u0027Wrong engine name \"{conf.engine}\", exiting.\u0027)"},{"line_number":111,"context_line":"        exit(1)"},{"line_number":112,"context_line":"    LOG.info(f\u0027Using engine: {conf.engine}\u0027)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    if conf.engine \u003d\u003d \u0027docker\u0027:"}],"source_content_type":"text/x-python","patch_set":6,"id":"4d637f83_4a3f49b0","line":111,"updated":"2022-06-18 08:23:11.000000000","message":"Please use sys.exit() like we do elsewhere.","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    if conf.engine not in (\u0027docker\u0027,):"},{"line_number":110,"context_line":"        LOG.error(f\u0027Wrong engine name \"{conf.engine}\", exiting.\u0027)"},{"line_number":111,"context_line":"        exit(1)"},{"line_number":112,"context_line":"    LOG.info(f\u0027Using engine: {conf.engine}\u0027)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    if conf.engine \u003d\u003d \u0027docker\u0027:"}],"source_content_type":"text/x-python","patch_set":6,"id":"c671772e_8f2a9589","line":111,"in_reply_to":"4d637f83_4a3f49b0","updated":"2022-06-20 07:48:04.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":114,"context_line":"    if conf.engine \u003d\u003d \u0027docker\u0027:"},{"line_number":115,"context_line":"        try:"},{"line_number":116,"context_line":"            import docker"},{"line_number":117,"context_line":"            docker.version"},{"line_number":118,"context_line":"        except ImportError:"},{"line_number":119,"context_line":"            LOG.error(\"Error, you have set docker as container engine, \""},{"line_number":120,"context_line":"                      \"but library is not found.\""}],"source_content_type":"text/x-python","patch_set":6,"id":"215b71c8_1181cafa","line":117,"updated":"2022-06-18 08:23:11.000000000","message":"At first I was not sure this line is needed. Testing locally it seems that for docker modules that are too old, this will fail and generate AttributeError. So we need to catch that, too, and generate a message telling the user to upgrade the module I\u0027d say.","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"561c2a742884417b4d44fdeb9176122d2d8313a0","unresolved":false,"context_lines":[{"line_number":114,"context_line":"    if conf.engine \u003d\u003d \u0027docker\u0027:"},{"line_number":115,"context_line":"        try:"},{"line_number":116,"context_line":"            import docker"},{"line_number":117,"context_line":"            docker.version"},{"line_number":118,"context_line":"        except ImportError:"},{"line_number":119,"context_line":"            LOG.error(\"Error, you have set docker as container engine, \""},{"line_number":120,"context_line":"                      \"but library is not found.\""}],"source_content_type":"text/x-python","patch_set":6,"id":"2fe220c3_a077342c","line":117,"in_reply_to":"215b71c8_1181cafa","updated":"2022-07-21 07:32:15.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":117,"context_line":"            docker.version"},{"line_number":118,"context_line":"        except ImportError:"},{"line_number":119,"context_line":"            LOG.error(\"Error, you have set docker as container engine, \""},{"line_number":120,"context_line":"                      \"but library is not found.\""},{"line_number":121,"context_line":"                      \"Try running pip install docker\")"},{"line_number":122,"context_line":"            exit(1)"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"af3cdc32_e2916b91","line":120,"range":{"start_line":120,"start_character":27,"end_line":120,"end_character":34},"updated":"2022-06-18 08:23:11.000000000","message":".. but the Python library ...?","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            docker.version"},{"line_number":118,"context_line":"        except ImportError:"},{"line_number":119,"context_line":"            LOG.error(\"Error, you have set docker as container engine, \""},{"line_number":120,"context_line":"                      \"but library is not found.\""},{"line_number":121,"context_line":"                      \"Try running pip install docker\")"},{"line_number":122,"context_line":"            exit(1)"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"cca8a046_ae00e3d1","line":120,"range":{"start_line":120,"start_character":27,"end_line":120,"end_character":34},"in_reply_to":"af3cdc32_e2916b91","updated":"2022-06-20 07:48:04.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    if conf.save_dependency:"},{"line_number":152,"context_line":"        kolla.save_dependency(conf.save_dependency)"},{"line_number":153,"context_line":"        LOG.info(\u0027Container engine images dependency are saved in %s\u0027,"},{"line_number":154,"context_line":"                 conf.save_dependency)"},{"line_number":155,"context_line":"        return"},{"line_number":156,"context_line":"    if conf.list_images:"}],"source_content_type":"text/x-python","patch_set":6,"id":"975fac40_ff0a9e78","line":153,"updated":"2022-06-18 08:23:11.000000000","message":"Can we just use \"Container images\"?","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    if conf.save_dependency:"},{"line_number":152,"context_line":"        kolla.save_dependency(conf.save_dependency)"},{"line_number":153,"context_line":"        LOG.info(\u0027Container engine images dependency are saved in %s\u0027,"},{"line_number":154,"context_line":"                 conf.save_dependency)"},{"line_number":155,"context_line":"        return"},{"line_number":156,"context_line":"    if conf.list_images:"}],"source_content_type":"text/x-python","patch_set":6,"id":"b43085f3_acc38db5","line":153,"in_reply_to":"975fac40_ff0a9e78","updated":"2022-06-20 07:48:04.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9afd57837f4f8b103317d1c2ace3e91c3a1db038","unresolved":false,"context_lines":[{"line_number":53,"context_line":"from kolla import version  # noqa"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class Status(Enum):"},{"line_number":57,"context_line":"    CONNECTION_ERROR \u003d \u0027connection_error\u0027"},{"line_number":58,"context_line":"    PUSH_ERROR \u003d \u0027push_error\u0027"},{"line_number":59,"context_line":"    ERROR \u003d \u0027error\u0027"},{"line_number":60,"context_line":"    PARENT_ERROR \u003d \u0027parent_error\u0027"},{"line_number":61,"context_line":"    BUILT \u003d \u0027built\u0027"},{"line_number":62,"context_line":"    BUILDING \u003d \u0027building\u0027"},{"line_number":63,"context_line":"    UNMATCHED \u003d \u0027unmatched\u0027"},{"line_number":64,"context_line":"    MATCHED \u003d \u0027matched\u0027"},{"line_number":65,"context_line":"    UNPROCESSED \u003d \u0027unprocessed\u0027"},{"line_number":66,"context_line":"    SKIPPED \u003d \u0027skipped\u0027"},{"line_number":67,"context_line":"    UNBUILDABLE \u003d \u0027unbuildable\u0027"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"# All error status constants."},{"line_number":71,"context_line":"STATUS_ERRORS \u003d (Status.CONNECTION_ERROR, Status.PUSH_ERROR,"},{"line_number":72,"context_line":"                 Status.ERROR, Status.PARENT_ERROR)"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"LOG \u003d utils.make_a_logger()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# The dictionary of unbuildable images supports keys in the format:"},{"line_number":77,"context_line":"# \u0027\u003cdistro\u003e+\u003carch\u003e\u0027 where each component is optional and can be omitted along"}],"source_content_type":"text/x-python","patch_set":12,"id":"58708f0e_36032a21","side":"PARENT","line":74,"range":{"start_line":56,"start_character":0,"end_line":74,"end_character":27},"updated":"2022-09-23 15:37:42.000000000","message":"went to utils.py","commit_id":"0040c6d3f64b9d0a821697557204b35eee11ca0f"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9afd57837f4f8b103317d1c2ace3e91c3a1db038","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"LOG \u003d utils.make_a_logger()"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# The dictionary of unbuildable images supports keys in the format:"},{"line_number":77,"context_line":"# \u0027\u003cdistro\u003e+\u003carch\u003e\u0027 where each component is optional and can be omitted along"},{"line_number":78,"context_line":"# with the + separator which means that component is irrelevant. Otherwise all"},{"line_number":79,"context_line":"# must match for skip to happen."},{"line_number":80,"context_line":"UNBUILDABLE_IMAGES \u003d {"},{"line_number":81,"context_line":"    \u0027aarch64\u0027: {"},{"line_number":82,"context_line":"        \"bifrost-base\",      # someone need to get upstream working first"},{"line_number":83,"context_line":"        \"monasca-base\",      # \u0027confluent-kafka\u0027 requires newer libfdkafka-dev"},{"line_number":84,"context_line":"                             # than distributions have"},{"line_number":85,"context_line":"        \"prometheus-msteams\",  # no aarch64 binary"},{"line_number":86,"context_line":"        \"prometheus-mtail\",  # no aarch64 binary"},{"line_number":87,"context_line":"        \"skydive-base\",      # no aarch64 binary"},{"line_number":88,"context_line":"    },"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    \u0027centos\u0027: {"},{"line_number":91,"context_line":"        \"hacluster-pcs\",         # Missing crmsh package"},{"line_number":92,"context_line":"        \"nova-spicehtml5proxy\",  # Missing spicehtml5 package"},{"line_number":93,"context_line":"        \"ovsdpdk\",               # Not supported on CentOS"},{"line_number":94,"context_line":"        \"tgtd\",                  # Not supported on CentOS 8"},{"line_number":95,"context_line":"    },"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    \u0027debian\u0027: {"},{"line_number":98,"context_line":"    },"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    \u0027ubuntu\u0027: {"},{"line_number":101,"context_line":"        \"collectd\",              # Missing collectd-core package"},{"line_number":102,"context_line":"        \"monasca-base\",          # Requires new librdkafka, no wheels py3.10"},{"line_number":103,"context_line":"        \"telegraf\",              # Missing collectd-core package"},{"line_number":104,"context_line":"    },"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    \u0027ubuntu+aarch64\u0027: {"},{"line_number":107,"context_line":"        \"barbican-base\",  # https://github.com/unbit/uwsgi/issues/2434"},{"line_number":108,"context_line":"        \"kibana\",         # no binary package"},{"line_number":109,"context_line":"    },"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    \u0027centos+aarch64\u0027: {"},{"line_number":112,"context_line":"        \"influxdb\",       # no binary package"},{"line_number":113,"context_line":"        \"kibana\",         # no binary package"},{"line_number":114,"context_line":"        \"telegraf\",       # no binary package"},{"line_number":115,"context_line":"    },"},{"line_number":116,"context_line":"}"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"class ArchivingError(Exception):"}],"source_content_type":"text/x-python","patch_set":12,"id":"0a1e9db4_0b09d4d3","side":"PARENT","line":116,"range":{"start_line":76,"start_character":0,"end_line":116,"end_character":1},"updated":"2022-09-23 15:37:42.000000000","message":"went to unbuildable.py","commit_id":"0040c6d3f64b9d0a821697557204b35eee11ca0f"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9afd57837f4f8b103317d1c2ace3e91c3a1db038","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"class DockerTask(task.Task):"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    docker_kwargs \u003d docker.utils.kwargs_from_env()"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def __init__(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"603dbf8c_ec098b58","side":"PARENT","line":145,"updated":"2022-09-23 15:37:42.000000000","message":"now EngineTask in image/tasks.py","commit_id":"0040c6d3f64b9d0a821697557204b35eee11ca0f"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9afd57837f4f8b103317d1c2ace3e91c3a1db038","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        return self._dc"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"class Image(object):"},{"line_number":162,"context_line":"    def __init__(self, name, canonical_name, path, parent_name\u003d\u0027\u0027,"},{"line_number":163,"context_line":"                 status\u003dStatus.UNPROCESSED, parent\u003dNone,"},{"line_number":164,"context_line":"                 source\u003dNone, logger\u003dNone, docker_client\u003dNone):"}],"source_content_type":"text/x-python","patch_set":12,"id":"212b7d9b_0dd0780c","side":"PARENT","line":161,"updated":"2022-09-23 15:37:42.000000000","message":"moved to image/kolla_worker.py","commit_id":"0040c6d3f64b9d0a821697557204b35eee11ca0f"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9afd57837f4f8b103317d1c2ace3e91c3a1db038","unresolved":false,"context_lines":[{"line_number":201,"context_line":"            self.parent_name, self.status, self.parent, self.source)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"class PushIntoQueueTask(task.Task):"},{"line_number":205,"context_line":"    \"\"\"Task that pushes some other task into a queue.\"\"\""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"    def __init__(self, push_task, push_queue):"}],"source_content_type":"text/x-python","patch_set":12,"id":"c8935d86_07e60a6f","side":"PARENT","line":204,"range":{"start_line":204,"start_character":1,"end_line":204,"end_character":2},"updated":"2022-09-23 15:37:42.000000000","message":"moved to image/tasks.py","commit_id":"0040c6d3f64b9d0a821697557204b35eee11ca0f"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9afd57837f4f8b103317d1c2ace3e91c3a1db038","unresolved":false,"context_lines":[{"line_number":593,"context_line":"                self.queue.task_done()"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"class KollaWorker(object):"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"    def __init__(self, conf):"},{"line_number":599,"context_line":"        self.conf \u003d conf"}],"source_content_type":"text/x-python","patch_set":12,"id":"6b350b97_d13c437d","side":"PARENT","line":596,"updated":"2022-09-23 15:37:42.000000000","message":"moved to image/kolla_worker.py","commit_id":"0040c6d3f64b9d0a821697557204b35eee11ca0f"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9afd57837f4f8b103317d1c2ace3e91c3a1db038","unresolved":true,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    if conf.engine not in (engine.Engine.DOCKER.value,):"},{"line_number":111,"context_line":"        LOG.error(f\u0027Unsupported engine name \"{conf.engine}\", exiting.\u0027)"},{"line_number":112,"context_line":"        exit(1)"},{"line_number":113,"context_line":"    LOG.info(f\u0027Using engine: {conf.engine}\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    if conf.engine \u003d\u003d engine.Engine.DOCKER.value:"}],"source_content_type":"text/x-python","patch_set":12,"id":"938a40ca_1cc4295e","line":112,"range":{"start_line":112,"start_character":8,"end_line":112,"end_character":12},"updated":"2022-09-23 15:37:42.000000000","message":"use sys.exit()","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"556b4176c9e934472fcb9a5334f9a3a659a5fdaa","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    if conf.engine not in (engine.Engine.DOCKER.value,):"},{"line_number":111,"context_line":"        LOG.error(f\u0027Unsupported engine name \"{conf.engine}\", exiting.\u0027)"},{"line_number":112,"context_line":"        exit(1)"},{"line_number":113,"context_line":"    LOG.info(f\u0027Using engine: {conf.engine}\u0027)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    if conf.engine \u003d\u003d engine.Engine.DOCKER.value:"}],"source_content_type":"text/x-python","patch_set":12,"id":"0b480ecf_66d0161e","line":112,"range":{"start_line":112,"start_character":8,"end_line":112,"end_character":12},"in_reply_to":"938a40ca_1cc4295e","updated":"2022-09-27 11:50:50.000000000","message":"Done","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"a86ea863429dc3417780fe1c61adc0a6eb4dcb74","unresolved":true,"context_lines":[{"line_number":105,"context_line":"    if conf.debug:"},{"line_number":106,"context_line":"        LOG.setLevel(logging.DEBUG)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    if conf.engine not in (engine.Engine.DOCKER.value,):"},{"line_number":109,"context_line":"        LOG.error(f\u0027Unsupported engine name \"{conf.engine}\", exiting.\u0027)"},{"line_number":110,"context_line":"        sys.exit(1)"},{"line_number":111,"context_line":"    LOG.info(f\u0027Using engine: {conf.engine}\u0027)"}],"source_content_type":"text/x-python","patch_set":25,"id":"f4c70bc7_c83f0f10","line":108,"updated":"2022-11-16 11:21:37.000000000","message":"will Podman support end as engine.Engine.PODMAN or will engine.Engine.DOCKER be [\u0027docker\u0027, \u0027podman\u0027]?\n\nBoth look weird. Maybe rename engine.Engine.DOCKER to engine.Engine.CONTAINER_ENGINE or sth?","commit_id":"a2854da1b3e12987f7fa7590fca3bb74ac19c53e"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"2228bbb454064de3c4c37bad9834fa918cd103b7","unresolved":true,"context_lines":[{"line_number":105,"context_line":"    if conf.debug:"},{"line_number":106,"context_line":"        LOG.setLevel(logging.DEBUG)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    if conf.engine not in (engine.Engine.DOCKER.value,):"},{"line_number":109,"context_line":"        LOG.error(f\u0027Unsupported engine name \"{conf.engine}\", exiting.\u0027)"},{"line_number":110,"context_line":"        sys.exit(1)"},{"line_number":111,"context_line":"    LOG.info(f\u0027Using engine: {conf.engine}\u0027)"}],"source_content_type":"text/x-python","patch_set":25,"id":"d0ad2ad7_a4661fdd","line":108,"in_reply_to":"f4c70bc7_c83f0f10","updated":"2022-11-21 09:16:55.000000000","message":"With podman support it would be:\nconf.engine not in (engine.Engine.DOCKER.value, engine.Engine.PODMAN.value).\n\nOther way, that i see somewhat reasonable is looking through values of Engine enum.","commit_id":"a2854da1b3e12987f7fa7590fca3bb74ac19c53e"}],"kolla/image/kolla_worker.py":[{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"15fee9a6fdb4412d6ac0ae391423b0d341f5c29e","unresolved":true,"context_lines":[{"line_number":46,"context_line":"if PROJECT_ROOT not in sys.path:"},{"line_number":47,"context_line":"    sys.path.insert(0, PROJECT_ROOT)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# The dictionary of unbuildable images supports keys in the format:"},{"line_number":50,"context_line":"# \u0027\u003cdistro\u003e+\u003carch\u003e\u0027 where each component is optional and can be omitted along"},{"line_number":51,"context_line":"# with the + separator which means that component is irrelevant. Otherwise all"},{"line_number":52,"context_line":"# must match for skip to happen."},{"line_number":53,"context_line":"UNBUILDABLE_IMAGES \u003d {"},{"line_number":54,"context_line":"    \u0027aarch64\u0027: {"},{"line_number":55,"context_line":"        \"bifrost-base\",      # someone need to get upstream working first"},{"line_number":56,"context_line":"        \"prometheus-msteams\",  # no aarch64 binary"},{"line_number":57,"context_line":"        \"prometheus-mtail\",  # no aarch64 binary"},{"line_number":58,"context_line":"        \"skydive-base\",      # no aarch64 binary"},{"line_number":59,"context_line":"    },"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    \u0027centos\u0027: {"},{"line_number":62,"context_line":"        \"hacluster-pcs\",         # Missing crmsh package"},{"line_number":63,"context_line":"        \"nova-spicehtml5proxy\",  # Missing spicehtml5 package"},{"line_number":64,"context_line":"        \"ovsdpdk\",               # Not supported on CentOS"},{"line_number":65,"context_line":"        \"tgtd\",                  # Not supported on CentOS 8"},{"line_number":66,"context_line":"    },"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    \u0027debian\u0027: {"},{"line_number":69,"context_line":"    },"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    \u0027ubuntu\u0027: {"},{"line_number":72,"context_line":"    },"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    \u0027ubuntu+aarch64\u0027: {"},{"line_number":75,"context_line":"        \"kibana\",        # no binary package"},{"line_number":76,"context_line":"        \"monasca-base\",  # \u0027confluent-kafka\u0027 requires newer libfdkafka-dev"},{"line_number":77,"context_line":"                         # than distribution has"},{"line_number":78,"context_line":"    },"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    \u0027centos+aarch64\u0027: {"},{"line_number":81,"context_line":"        \"influxdb\",       # no binary package"},{"line_number":82,"context_line":"        \"kibana\",         # no binary package"},{"line_number":83,"context_line":"        \"monasca-base\",   # \u0027confluent-kafka\u0027 requires newer libfdkafka-dev"},{"line_number":84,"context_line":"                          # than distribution has"},{"line_number":85,"context_line":"        \"telegraf\",       # no binary package"},{"line_number":86,"context_line":"    },"},{"line_number":87,"context_line":"}"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"class Image(object):"},{"line_number":91,"context_line":"    def __init__(self, name, canonical_name, path, parent_name\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"d1f93803_56e2a284","line":88,"range":{"start_line":49,"start_character":0,"end_line":88,"end_character":0},"updated":"2022-06-15 10:54:28.000000000","message":"Maybe we could move that somewhere else (like unbuildable.py)? Now we\u0027ll all be looking where those UNBUILDABLE_IMAGES have gone?","commit_id":"aaca359d0ff6d0b4cdcacd84b35f3da14ae6a402"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"77adbc06d599c61d95fc286ac217f8d6ca67bd64","unresolved":false,"context_lines":[{"line_number":46,"context_line":"if PROJECT_ROOT not in sys.path:"},{"line_number":47,"context_line":"    sys.path.insert(0, PROJECT_ROOT)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"# The dictionary of unbuildable images supports keys in the format:"},{"line_number":50,"context_line":"# \u0027\u003cdistro\u003e+\u003carch\u003e\u0027 where each component is optional and can be omitted along"},{"line_number":51,"context_line":"# with the + separator which means that component is irrelevant. Otherwise all"},{"line_number":52,"context_line":"# must match for skip to happen."},{"line_number":53,"context_line":"UNBUILDABLE_IMAGES \u003d {"},{"line_number":54,"context_line":"    \u0027aarch64\u0027: {"},{"line_number":55,"context_line":"        \"bifrost-base\",      # someone need to get upstream working first"},{"line_number":56,"context_line":"        \"prometheus-msteams\",  # no aarch64 binary"},{"line_number":57,"context_line":"        \"prometheus-mtail\",  # no aarch64 binary"},{"line_number":58,"context_line":"        \"skydive-base\",      # no aarch64 binary"},{"line_number":59,"context_line":"    },"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    \u0027centos\u0027: {"},{"line_number":62,"context_line":"        \"hacluster-pcs\",         # Missing crmsh package"},{"line_number":63,"context_line":"        \"nova-spicehtml5proxy\",  # Missing spicehtml5 package"},{"line_number":64,"context_line":"        \"ovsdpdk\",               # Not supported on CentOS"},{"line_number":65,"context_line":"        \"tgtd\",                  # Not supported on CentOS 8"},{"line_number":66,"context_line":"    },"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    \u0027debian\u0027: {"},{"line_number":69,"context_line":"    },"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    \u0027ubuntu\u0027: {"},{"line_number":72,"context_line":"    },"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    \u0027ubuntu+aarch64\u0027: {"},{"line_number":75,"context_line":"        \"kibana\",        # no binary package"},{"line_number":76,"context_line":"        \"monasca-base\",  # \u0027confluent-kafka\u0027 requires newer libfdkafka-dev"},{"line_number":77,"context_line":"                         # than distribution has"},{"line_number":78,"context_line":"    },"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    \u0027centos+aarch64\u0027: {"},{"line_number":81,"context_line":"        \"influxdb\",       # no binary package"},{"line_number":82,"context_line":"        \"kibana\",         # no binary package"},{"line_number":83,"context_line":"        \"monasca-base\",   # \u0027confluent-kafka\u0027 requires newer libfdkafka-dev"},{"line_number":84,"context_line":"                          # than distribution has"},{"line_number":85,"context_line":"        \"telegraf\",       # no binary package"},{"line_number":86,"context_line":"    },"},{"line_number":87,"context_line":"}"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"class Image(object):"},{"line_number":91,"context_line":"    def __init__(self, name, canonical_name, path, parent_name\u003d\u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"12f4654e_8120dd3b","line":88,"range":{"start_line":49,"start_character":0,"end_line":88,"end_character":0},"in_reply_to":"d1f93803_56e2a284","updated":"2022-06-15 11:03:09.000000000","message":"Done","commit_id":"aaca359d0ff6d0b4cdcacd84b35f3da14ae6a402"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":6,"id":"9623cb5d_1ed523f6","line":1,"updated":"2022-06-18 08:23:11.000000000","message":"Not needed","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":6,"id":"324ad2b7_3170b937","line":1,"in_reply_to":"9623cb5d_1ed523f6","updated":"2022-06-20 07:48:04.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":39,"context_line":"from kolla.template import methods as jinja_methods  # noqa"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# NOTE(SamYaple): Update the search path to prefer PROJECT_ROOT as the source"},{"line_number":43,"context_line":"#                 of packages to import if we are using local tools instead of"},{"line_number":44,"context_line":"#                 pip installed kolla tools"},{"line_number":45,"context_line":"PROJECT_ROOT \u003d os.path.abspath(os.path.join("},{"line_number":46,"context_line":"    os.path.dirname(os.path.realpath(__file__)), \u0027../..\u0027))"},{"line_number":47,"context_line":"if PROJECT_ROOT not in sys.path:"},{"line_number":48,"context_line":"    sys.path.insert(0, PROJECT_ROOT)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"class Image(object):"}],"source_content_type":"text/x-python","patch_set":6,"id":"8796b333_2c57fe17","line":48,"range":{"start_line":42,"start_character":0,"end_line":48,"end_character":36},"updated":"2022-06-18 08:23:11.000000000","message":"IIUC this block must be executed before the kolla imports in order to be able to do what the comment claims.\n\nThis would also have to be in all affected files, otherwise imports will be different depending on the ordering.","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"612e79126f6a2e1f92b54f3baa41294bdf35316f","unresolved":true,"context_lines":[{"line_number":39,"context_line":"from kolla.template import methods as jinja_methods  # noqa"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# NOTE(SamYaple): Update the search path to prefer PROJECT_ROOT as the source"},{"line_number":43,"context_line":"#                 of packages to import if we are using local tools instead of"},{"line_number":44,"context_line":"#                 pip installed kolla tools"},{"line_number":45,"context_line":"PROJECT_ROOT \u003d os.path.abspath(os.path.join("},{"line_number":46,"context_line":"    os.path.dirname(os.path.realpath(__file__)), \u0027../..\u0027))"},{"line_number":47,"context_line":"if PROJECT_ROOT not in sys.path:"},{"line_number":48,"context_line":"    sys.path.insert(0, PROJECT_ROOT)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"class Image(object):"}],"source_content_type":"text/x-python","patch_set":6,"id":"a4610776_05eb27f8","line":48,"range":{"start_line":42,"start_character":0,"end_line":48,"end_character":36},"in_reply_to":"8796b333_2c57fe17","updated":"2022-06-22 05:04:29.000000000","message":"Actually this block needs to be executed only once and that is in kolla/cmd/build.py. It was incorrectly copied to kolla/image/build.py when that was created as a library. It should simply be dropped here.","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"561c2a742884417b4d44fdeb9176122d2d8313a0","unresolved":false,"context_lines":[{"line_number":39,"context_line":"from kolla.template import methods as jinja_methods  # noqa"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# NOTE(SamYaple): Update the search path to prefer PROJECT_ROOT as the source"},{"line_number":43,"context_line":"#                 of packages to import if we are using local tools instead of"},{"line_number":44,"context_line":"#                 pip installed kolla tools"},{"line_number":45,"context_line":"PROJECT_ROOT \u003d os.path.abspath(os.path.join("},{"line_number":46,"context_line":"    os.path.dirname(os.path.realpath(__file__)), \u0027../..\u0027))"},{"line_number":47,"context_line":"if PROJECT_ROOT not in sys.path:"},{"line_number":48,"context_line":"    sys.path.insert(0, PROJECT_ROOT)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"class Image(object):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da50414a_e26a6c2c","line":48,"range":{"start_line":42,"start_character":0,"end_line":48,"end_character":36},"in_reply_to":"a4610776_05eb27f8","updated":"2022-07-21 07:32:15.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":183,"context_line":"            os.path.join(os.environ.get(\u0027SNAP\u0027, \u0027\u0027), \u0027share/kolla\u0027))"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        for path in possible_paths:"},{"line_number":186,"context_line":"            image_path \u003d os.path.join(path, \u0027docker\u0027)"},{"line_number":187,"context_line":"            # NOTE(SamYaple): We explicitly check for the base folder to ensure"},{"line_number":188,"context_line":"            #                 this is the correct path"},{"line_number":189,"context_line":"            # TODO(SamYaple): Improve this to make this safer"}],"source_content_type":"text/x-python","patch_set":6,"id":"ced56237_066fa8a2","line":186,"updated":"2022-06-18 08:23:11.000000000","message":"Do we really want to keep this hardcoded or replace with engine_name?","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            os.path.join(os.environ.get(\u0027SNAP\u0027, \u0027\u0027), \u0027share/kolla\u0027))"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"        for path in possible_paths:"},{"line_number":186,"context_line":"            image_path \u003d os.path.join(path, \u0027docker\u0027)"},{"line_number":187,"context_line":"            # NOTE(SamYaple): We explicitly check for the base folder to ensure"},{"line_number":188,"context_line":"            #                 this is the correct path"},{"line_number":189,"context_line":"            # TODO(SamYaple): Improve this to make this safer"}],"source_content_type":"text/x-python","patch_set":6,"id":"365bc404_72e832a2","line":186,"in_reply_to":"ced56237_066fa8a2","updated":"2022-06-20 07:48:04.000000000","message":"We keep all Dockerfile.j2 files in subdirectories of \u0027docker\u0027 directory.","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":188,"context_line":"            #                 this is the correct path"},{"line_number":189,"context_line":"            # TODO(SamYaple): Improve this to make this safer"},{"line_number":190,"context_line":"            if os.path.exists(os.path.join(image_path, \u0027base\u0027)):"},{"line_number":191,"context_line":"                LOG.info(\u0027Found the image folder at %s\u0027, image_path)"},{"line_number":192,"context_line":"                return image_path"},{"line_number":193,"context_line":"        else:"},{"line_number":194,"context_line":"            raise exception.KollaDirNotFoundException(\u0027Image dir can not \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"6c4011cc_e55308eb","line":191,"updated":"2022-06-18 08:23:11.000000000","message":"container image?","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"561c2a742884417b4d44fdeb9176122d2d8313a0","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            #                 this is the correct path"},{"line_number":189,"context_line":"            # TODO(SamYaple): Improve this to make this safer"},{"line_number":190,"context_line":"            if os.path.exists(os.path.join(image_path, \u0027base\u0027)):"},{"line_number":191,"context_line":"                LOG.info(\u0027Found the image folder at %s\u0027, image_path)"},{"line_number":192,"context_line":"                return image_path"},{"line_number":193,"context_line":"        else:"},{"line_number":194,"context_line":"            raise exception.KollaDirNotFoundException(\u0027Image dir can not \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"1cbad510_5af56bcd","line":191,"in_reply_to":"6c4011cc_e55308eb","updated":"2022-07-21 07:32:15.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"612e79126f6a2e1f92b54f3baa41294bdf35316f","unresolved":true,"context_lines":[{"line_number":34,"context_line":"from kolla.image.utils import Status"},{"line_number":35,"context_line":"from kolla.image.utils import STATUS_ERRORS"},{"line_number":36,"context_line":"from kolla.template import filters as jinja_filters  # noqa"},{"line_number":37,"context_line":"from kolla.template import methods as jinja_methods  # noqa"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"# NOTE(SamYaple): Update the search path to prefer PROJECT_ROOT as the source"}],"source_content_type":"text/x-python","patch_set":9,"id":"78a0fcd1_07328dbd","line":37,"updated":"2022-06-22 05:04:29.000000000","message":"All the \"# noqa\" tags in this block were only necessary because they were late imports and can be dropped now.","commit_id":"1c44cc2091ae7743fd57d9d611e674dcd0200cfa"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"561c2a742884417b4d44fdeb9176122d2d8313a0","unresolved":false,"context_lines":[{"line_number":34,"context_line":"from kolla.image.utils import Status"},{"line_number":35,"context_line":"from kolla.image.utils import STATUS_ERRORS"},{"line_number":36,"context_line":"from kolla.template import filters as jinja_filters  # noqa"},{"line_number":37,"context_line":"from kolla.template import methods as jinja_methods  # noqa"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"# NOTE(SamYaple): Update the search path to prefer PROJECT_ROOT as the source"}],"source_content_type":"text/x-python","patch_set":9,"id":"001eec00_366956e5","line":37,"in_reply_to":"78a0fcd1_07328dbd","updated":"2022-07-21 07:32:15.000000000","message":"Done","commit_id":"1c44cc2091ae7743fd57d9d611e674dcd0200cfa"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9afd57837f4f8b103317d1c2ace3e91c3a1db038","unresolved":true,"context_lines":[{"line_number":691,"context_line":"        except ImportError:"},{"line_number":692,"context_line":"            LOG.error(\u0027\"graphviz\" is required for save dependency\u0027)"},{"line_number":693,"context_line":"            raise"},{"line_number":694,"context_line":"        dot \u003d graphviz.Digraph(comment\u003d\u0027Container engine Images Dependency\u0027)"},{"line_number":695,"context_line":"        dot.body.extend([\u0027rankdir\u003dLR\u0027])"},{"line_number":696,"context_line":"        for image in self.images:"},{"line_number":697,"context_line":"            if image.status not in [Status.MATCHED]:"}],"source_content_type":"text/x-python","patch_set":12,"id":"53562951_fd82fd96","line":694,"range":{"start_line":694,"start_character":50,"end_line":694,"end_character":56},"updated":"2022-09-23 15:37:42.000000000","message":"drop","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"556b4176c9e934472fcb9a5334f9a3a659a5fdaa","unresolved":false,"context_lines":[{"line_number":691,"context_line":"        except ImportError:"},{"line_number":692,"context_line":"            LOG.error(\u0027\"graphviz\" is required for save dependency\u0027)"},{"line_number":693,"context_line":"            raise"},{"line_number":694,"context_line":"        dot \u003d graphviz.Digraph(comment\u003d\u0027Container engine Images Dependency\u0027)"},{"line_number":695,"context_line":"        dot.body.extend([\u0027rankdir\u003dLR\u0027])"},{"line_number":696,"context_line":"        for image in self.images:"},{"line_number":697,"context_line":"            if image.status not in [Status.MATCHED]:"}],"source_content_type":"text/x-python","patch_set":12,"id":"a15848e9_2effd963","line":694,"range":{"start_line":694,"start_character":50,"end_line":694,"end_character":56},"in_reply_to":"53562951_fd82fd96","updated":"2022-09-27 11:50:50.000000000","message":"Done","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"36fe29e795cf046b248ef5cae30ef134c63c7516","unresolved":true,"context_lines":[{"line_number":35,"context_line":"from kolla import version"},{"line_number":36,"context_line":"from oslo_config import cfg"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"PROJECT_ROOT \u003d os.path.abspath(os.path.join("},{"line_number":39,"context_line":"    os.path.dirname(os.path.realpath(__file__)), \u0027../..\u0027))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class Image(object):"}],"source_content_type":"text/x-python","patch_set":21,"id":"1b209984_6bf0f599","line":39,"range":{"start_line":38,"start_character":0,"end_line":39,"end_character":58},"updated":"2022-10-07 04:42:51.000000000","message":"Can we drop this? Should no longer be needed after the refactoring","commit_id":"9465ae7985956f0d8335b73b090fc59d498f4700"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"c7459574c2a2146d83b5156049eed17db5444540","unresolved":false,"context_lines":[{"line_number":35,"context_line":"from kolla import version"},{"line_number":36,"context_line":"from oslo_config import cfg"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"PROJECT_ROOT \u003d os.path.abspath(os.path.join("},{"line_number":39,"context_line":"    os.path.dirname(os.path.realpath(__file__)), \u0027../..\u0027))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class Image(object):"}],"source_content_type":"text/x-python","patch_set":21,"id":"845a32da_58ef5803","line":39,"range":{"start_line":38,"start_character":0,"end_line":39,"end_character":58},"in_reply_to":"1b209984_6bf0f599","updated":"2022-10-07 06:55:09.000000000","message":"It\u0027s still required for editable installs.","commit_id":"9465ae7985956f0d8335b73b090fc59d498f4700"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"6d907cc59e30aa4f69aeab46821d81b372a345fc","unresolved":false,"context_lines":[{"line_number":35,"context_line":"from kolla import version"},{"line_number":36,"context_line":"from oslo_config import cfg"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"PROJECT_ROOT \u003d os.path.abspath(os.path.join("},{"line_number":39,"context_line":"    os.path.dirname(os.path.realpath(__file__)), \u0027../..\u0027))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class Image(object):"}],"source_content_type":"text/x-python","patch_set":21,"id":"91db197b_edee918b","line":39,"range":{"start_line":38,"start_character":0,"end_line":39,"end_character":58},"in_reply_to":"845a32da_58ef5803","updated":"2022-10-07 07:00:15.000000000","message":"But what effect does it have after all the imports have already been made?","commit_id":"9465ae7985956f0d8335b73b090fc59d498f4700"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"66eab3f19189324aa98c52a2ce927888f17b8941","unresolved":false,"context_lines":[{"line_number":35,"context_line":"from kolla import version"},{"line_number":36,"context_line":"from oslo_config import cfg"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"PROJECT_ROOT \u003d os.path.abspath(os.path.join("},{"line_number":39,"context_line":"    os.path.dirname(os.path.realpath(__file__)), \u0027../..\u0027))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"class Image(object):"}],"source_content_type":"text/x-python","patch_set":21,"id":"ee9c9082_8a27bc08","line":39,"range":{"start_line":38,"start_character":0,"end_line":39,"end_character":58},"in_reply_to":"91db197b_edee918b","updated":"2022-10-07 07:23:42.000000000","message":"None, just like before, it\u0027s used in _get_images_dir, for Dockerfiles templates.","commit_id":"9465ae7985956f0d8335b73b090fc59d498f4700"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"36fe29e795cf046b248ef5cae30ef134c63c7516","unresolved":true,"context_lines":[{"line_number":56,"context_line":"        self.children \u003d []"},{"line_number":57,"context_line":"        self.plugins \u003d []"},{"line_number":58,"context_line":"        self.additions \u003d []"},{"line_number":59,"context_line":"        self.ec \u003d engine_client"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def copy(self):"},{"line_number":62,"context_line":"        c \u003d Image(self.name, self.canonical_name, self.path,"}],"source_content_type":"text/x-python","patch_set":21,"id":"21ee4f34_5043447b","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":15},"updated":"2022-10-07 04:42:51.000000000","message":"Can we switch to self.engine_client for better readability?","commit_id":"9465ae7985956f0d8335b73b090fc59d498f4700"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"63da2cfef3c3943509d3a49fd8cd81398afca972","unresolved":true,"context_lines":[{"line_number":56,"context_line":"        self.children \u003d []"},{"line_number":57,"context_line":"        self.plugins \u003d []"},{"line_number":58,"context_line":"        self.additions \u003d []"},{"line_number":59,"context_line":"        self.ec \u003d engine_client"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def copy(self):"},{"line_number":62,"context_line":"        c \u003d Image(self.name, self.canonical_name, self.path,"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f60ca81_c435e6a6","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":15},"in_reply_to":"21ee4f34_5043447b","updated":"2022-10-07 07:27:58.000000000","message":"Very good suggestion!\n\n.ec was chosen probably because it was .dc before. But if we change it everywhere then we can use more readable name.","commit_id":"9465ae7985956f0d8335b73b090fc59d498f4700"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"482b00d04ab83223134fef355683a4cc87db5498","unresolved":true,"context_lines":[{"line_number":56,"context_line":"        self.children \u003d []"},{"line_number":57,"context_line":"        self.plugins \u003d []"},{"line_number":58,"context_line":"        self.additions \u003d []"},{"line_number":59,"context_line":"        self.ec \u003d engine_client"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def copy(self):"},{"line_number":62,"context_line":"        c \u003d Image(self.name, self.canonical_name, self.path,"}],"source_content_type":"text/x-python","patch_set":21,"id":"dc5c8402_58f74bcd","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":15},"in_reply_to":"7f60ca81_c435e6a6","updated":"2022-10-07 07:59:17.000000000","message":"Agree, could be done.","commit_id":"9465ae7985956f0d8335b73b090fc59d498f4700"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"9c7752d0723a93dfc637a18cd51f7fd71e415693","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.children \u003d []"},{"line_number":57,"context_line":"        self.plugins \u003d []"},{"line_number":58,"context_line":"        self.additions \u003d []"},{"line_number":59,"context_line":"        self.ec \u003d engine_client"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def copy(self):"},{"line_number":62,"context_line":"        c \u003d Image(self.name, self.canonical_name, self.path,"}],"source_content_type":"text/x-python","patch_set":21,"id":"d955e50d_77bbe8bf","line":59,"range":{"start_line":59,"start_character":8,"end_line":59,"end_character":15},"in_reply_to":"dc5c8402_58f74bcd","updated":"2022-10-11 09:04:59.000000000","message":"Done","commit_id":"9465ae7985956f0d8335b73b090fc59d498f4700"}],"kolla/image/tasks.py":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"5eaca8660ea7b92eb69a60bc3fc0c5c4cf0978b8","unresolved":true,"context_lines":[{"line_number":362,"context_line":"                    return"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"            if image.status !\u003d Status.ERROR and self.conf.squash and \\"},{"line_number":365,"context_line":"               self.conf.engine \u003d\u003d \u0027docker\u0027:"},{"line_number":366,"context_line":"                self.squash()"},{"line_number":367,"context_line":"        except engine.getEngineException(self.conf):"},{"line_number":368,"context_line":"            image.status \u003d Status.ERROR"}],"source_content_type":"text/x-python","patch_set":3,"id":"95ee3cba_0602bfc5","line":365,"range":{"start_line":365,"start_character":15,"end_line":365,"end_character":44},"updated":"2022-03-14 21:14:42.000000000","message":"If the user wants to squash but selects a different engine (in the future), they will not receive any indication that squash request was ignored. This should be improved.","commit_id":"29dcb719dd827d77fb79db0c078086701b63f438"},{"author":{"_account_id":34501,"name":"Konstantin Yarovoy","email":"konstantin.yarovoy@tietoevry.com","username":"yarovkon"},"change_message_id":"7d0741116a45db594ea68cf6a39ad5166fe07156","unresolved":true,"context_lines":[{"line_number":362,"context_line":"                    return"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"            if image.status !\u003d Status.ERROR and self.conf.squash and \\"},{"line_number":365,"context_line":"               self.conf.engine \u003d\u003d \u0027docker\u0027:"},{"line_number":366,"context_line":"                self.squash()"},{"line_number":367,"context_line":"        except engine.getEngineException(self.conf):"},{"line_number":368,"context_line":"            image.status \u003d Status.ERROR"}],"source_content_type":"text/x-python","patch_set":3,"id":"670d28bf_c7cc3b25","line":365,"range":{"start_line":365,"start_character":15,"end_line":365,"end_character":44},"in_reply_to":"2d15d8fa_ba802eaf","updated":"2022-03-17 09:32:46.000000000","message":"It is done in different ways for podman and docker: docker have docker-squash module that squashes after build, and podman - it takes \"squash \u003d True\" as an argument for image building. (so it is done in different places with different methods)","commit_id":"29dcb719dd827d77fb79db0c078086701b63f438"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":false,"context_lines":[{"line_number":362,"context_line":"                    return"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"            if image.status !\u003d Status.ERROR and self.conf.squash and \\"},{"line_number":365,"context_line":"               self.conf.engine \u003d\u003d \u0027docker\u0027:"},{"line_number":366,"context_line":"                self.squash()"},{"line_number":367,"context_line":"        except engine.getEngineException(self.conf):"},{"line_number":368,"context_line":"            image.status \u003d Status.ERROR"}],"source_content_type":"text/x-python","patch_set":3,"id":"3611d6c1_5addc212","line":365,"range":{"start_line":365,"start_character":15,"end_line":365,"end_character":44},"in_reply_to":"670d28bf_c7cc3b25","updated":"2022-06-18 08:23:11.000000000","message":"Ack, sounds reasonable to me.","commit_id":"29dcb719dd827d77fb79db0c078086701b63f438"},{"author":{"_account_id":34501,"name":"Konstantin Yarovoy","email":"konstantin.yarovoy@tietoevry.com","username":"yarovkon"},"change_message_id":"9f3552e9eb9d892ac720bba3c6175301def2ac26","unresolved":true,"context_lines":[{"line_number":362,"context_line":"                    return"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"            if image.status !\u003d Status.ERROR and self.conf.squash and \\"},{"line_number":365,"context_line":"               self.conf.engine \u003d\u003d \u0027docker\u0027:"},{"line_number":366,"context_line":"                self.squash()"},{"line_number":367,"context_line":"        except engine.getEngineException(self.conf):"},{"line_number":368,"context_line":"            image.status \u003d Status.ERROR"}],"source_content_type":"text/x-python","patch_set":3,"id":"fb98cbf0_800c57d2","line":365,"range":{"start_line":365,"start_character":15,"end_line":365,"end_character":44},"in_reply_to":"95ee3cba_0602bfc5","updated":"2022-03-15 08:37:52.000000000","message":"That could be a problem if we will be thinking about third engine, in podman - squash is also a viable function, that is implemented in it. If we talk about any third engine (not podman or docker) - probably squash would be a possible option too, so i dont\u0027know if it really does need a change.","commit_id":"29dcb719dd827d77fb79db0c078086701b63f438"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"384a8cf8b4b41a719c82b9145c8874a2959838c3","unresolved":true,"context_lines":[{"line_number":362,"context_line":"                    return"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"            if image.status !\u003d Status.ERROR and self.conf.squash and \\"},{"line_number":365,"context_line":"               self.conf.engine \u003d\u003d \u0027docker\u0027:"},{"line_number":366,"context_line":"                self.squash()"},{"line_number":367,"context_line":"        except engine.getEngineException(self.conf):"},{"line_number":368,"context_line":"            image.status \u003d Status.ERROR"}],"source_content_type":"text/x-python","patch_set":3,"id":"2d15d8fa_ba802eaf","line":365,"range":{"start_line":365,"start_character":15,"end_line":365,"end_character":44},"in_reply_to":"fb98cbf0_800c57d2","updated":"2022-03-15 08:52:52.000000000","message":"Then why use this conditional at all? Let\u0027s remove it.","commit_id":"29dcb719dd827d77fb79db0c078086701b63f438"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class PushTask(DockerTask):"},{"line_number":74,"context_line":"    \"\"\"Task that pushes an image to a container engine image repository.\"\"\""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def __init__(self, conf, image):"},{"line_number":77,"context_line":"        super(PushTask, self).__init__(conf)"}],"source_content_type":"text/x-python","patch_set":6,"id":"6d1d7b12_8ff2d192","line":74,"updated":"2022-06-18 08:23:11.000000000","message":"s/engine //","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class PushTask(DockerTask):"},{"line_number":74,"context_line":"    \"\"\"Task that pushes an image to a container engine image repository.\"\"\""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def __init__(self, conf, image):"},{"line_number":77,"context_line":"        super(PushTask, self).__init__(conf)"}],"source_content_type":"text/x-python","patch_set":6,"id":"cbc38a5c_0a9a9937","line":74,"in_reply_to":"6d1d7b12_8ff2d192","updated":"2022-06-20 07:48:04.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":153,"context_line":"        if self.conf.push and self.success:"},{"line_number":154,"context_line":"            followups.extend(["},{"line_number":155,"context_line":"                # If we are supposed to push the image into a"},{"line_number":156,"context_line":"                # container engine image repository,"},{"line_number":157,"context_line":"                # then make sure we do that..."},{"line_number":158,"context_line":"                PushIntoQueueTask("},{"line_number":159,"context_line":"                    PushTask(self.conf, self.image),"}],"source_content_type":"text/x-python","patch_set":6,"id":"e1fecd6d_48019beb","line":156,"updated":"2022-06-18 08:23:11.000000000","message":"s/engine //","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        if self.conf.push and self.success:"},{"line_number":154,"context_line":"            followups.extend(["},{"line_number":155,"context_line":"                # If we are supposed to push the image into a"},{"line_number":156,"context_line":"                # container engine image repository,"},{"line_number":157,"context_line":"                # then make sure we do that..."},{"line_number":158,"context_line":"                PushIntoQueueTask("},{"line_number":159,"context_line":"                    PushTask(self.conf, self.image),"}],"source_content_type":"text/x-python","patch_set":6,"id":"2f379129_6aae410c","line":156,"in_reply_to":"e1fecd6d_48019beb","updated":"2022-06-20 07:48:04.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24713,"name":"Wonil Choi","email":"wonil0522@gmail.com","username":"wonil22"},"change_message_id":"620ed105e552e8a6da285e7480d919034b994223","unresolved":true,"context_lines":[{"line_number":34,"context_line":"    pass"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class DockerTask(task.Task):"},{"line_number":38,"context_line":"    def __init__(self, conf):"},{"line_number":39,"context_line":"        super(DockerTask, self).__init__()"},{"line_number":40,"context_line":"        self._dc \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"4545249c_b72903ec","line":37,"range":{"start_line":37,"start_character":6,"end_line":37,"end_character":16},"updated":"2022-07-06 01:59:40.000000000","message":"Consider to change the class name. ContainerEngineTask or EngineTask? This class is not only for docker but also other container engines.","commit_id":"1c44cc2091ae7743fd57d9d611e674dcd0200cfa"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"561c2a742884417b4d44fdeb9176122d2d8313a0","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    pass"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"class DockerTask(task.Task):"},{"line_number":38,"context_line":"    def __init__(self, conf):"},{"line_number":39,"context_line":"        super(DockerTask, self).__init__()"},{"line_number":40,"context_line":"        self._dc \u003d None"}],"source_content_type":"text/x-python","patch_set":9,"id":"bcc880f7_961a2c3e","line":37,"range":{"start_line":37,"start_character":6,"end_line":37,"end_character":16},"in_reply_to":"4545249c_b72903ec","updated":"2022-07-21 07:32:15.000000000","message":"Done","commit_id":"1c44cc2091ae7743fd57d9d611e674dcd0200cfa"},{"author":{"_account_id":24713,"name":"Wonil Choi","email":"wonil0522@gmail.com","username":"wonil22"},"change_message_id":"620ed105e552e8a6da285e7480d919034b994223","unresolved":true,"context_lines":[{"line_number":41,"context_line":"        self.conf \u003d conf"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @property"},{"line_number":44,"context_line":"    def dc(self):"},{"line_number":45,"context_line":"        if self._dc is not None:"},{"line_number":46,"context_line":"            return self._dc"},{"line_number":47,"context_line":"        self._dc \u003d engine.getEngineClient(self.conf)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5da91ae3_78cc5200","line":44,"range":{"start_line":44,"start_character":8,"end_line":44,"end_character":10},"updated":"2022-07-06 01:59:40.000000000","message":"ditto, not docker client, but container engine client.","commit_id":"1c44cc2091ae7743fd57d9d611e674dcd0200cfa"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"561c2a742884417b4d44fdeb9176122d2d8313a0","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        self.conf \u003d conf"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @property"},{"line_number":44,"context_line":"    def dc(self):"},{"line_number":45,"context_line":"        if self._dc is not None:"},{"line_number":46,"context_line":"            return self._dc"},{"line_number":47,"context_line":"        self._dc \u003d engine.getEngineClient(self.conf)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3d00bb31_be16d583","line":44,"range":{"start_line":44,"start_character":8,"end_line":44,"end_character":10},"in_reply_to":"5da91ae3_78cc5200","updated":"2022-07-21 07:32:15.000000000","message":"Done","commit_id":"1c44cc2091ae7743fd57d9d611e674dcd0200cfa"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9afd57837f4f8b103317d1c2ace3e91c3a1db038","unresolved":true,"context_lines":[{"line_number":111,"context_line":"    def push_image(self, image):"},{"line_number":112,"context_line":"        kwargs \u003d dict(stream\u003dTrue, decode\u003dTrue)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        # Since docker 3.0.0, the argument of \u0027insecure_registry\u0027 is removed."},{"line_number":115,"context_line":"        # To be compatible, set \u0027insecure_registry\u003dTrue\u0027 for old releases."},{"line_number":116,"context_line":"        if self.conf.engine \u003d\u003d engine.Engine.DOCKER.value:"},{"line_number":117,"context_line":"            if engine.getEngineVersion(self.conf) \u003c StrictVersion(\u00273.0.0\u0027):"}],"source_content_type":"text/x-python","patch_set":12,"id":"8c4125eb_0c6ea319","line":114,"updated":"2022-09-23 15:37:42.000000000","message":"this check was dropped in 0fc8712cace61aee19335951409068cef8009dba","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"556b4176c9e934472fcb9a5334f9a3a659a5fdaa","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    def push_image(self, image):"},{"line_number":112,"context_line":"        kwargs \u003d dict(stream\u003dTrue, decode\u003dTrue)"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        # Since docker 3.0.0, the argument of \u0027insecure_registry\u0027 is removed."},{"line_number":115,"context_line":"        # To be compatible, set \u0027insecure_registry\u003dTrue\u0027 for old releases."},{"line_number":116,"context_line":"        if self.conf.engine \u003d\u003d engine.Engine.DOCKER.value:"},{"line_number":117,"context_line":"            if engine.getEngineVersion(self.conf) \u003c StrictVersion(\u00273.0.0\u0027):"}],"source_content_type":"text/x-python","patch_set":12,"id":"e159378a_a1716e4c","line":114,"in_reply_to":"8c4125eb_0c6ea319","updated":"2022-09-27 11:50:50.000000000","message":"Done","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9afd57837f4f8b103317d1c2ace3e91c3a1db038","unresolved":true,"context_lines":[{"line_number":377,"context_line":"                            self.logger.error(\u0027%s\u0027, line)"},{"line_number":378,"context_line":"                    return"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"            if image.status !\u003d Status.ERROR and self.conf.squash and \\"},{"line_number":381,"context_line":"               self.conf.engine \u003d\u003d engine.Engine.DOCKER.value:"},{"line_number":382,"context_line":"                self.squash()"},{"line_number":383,"context_line":"        except engine.getEngineException(self.conf):"},{"line_number":384,"context_line":"            image.status \u003d Status.ERROR"},{"line_number":385,"context_line":"            self.logger.exception(\u0027Unknown container engine \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"ae90e7d9_ed3046b8","line":382,"range":{"start_line":380,"start_character":0,"end_line":382,"end_character":29},"updated":"2022-09-23 15:37:42.000000000","message":"Can we disable squash if docker-squash is not present instead of checking for \u0027ah, it is docker so we can squash\u0027?\n\nOr implement squash() in a way that if Engine does not support it then it is empty function?","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"edf57bd4909c9ebfed38c72b685066a2e7235bfa","unresolved":true,"context_lines":[{"line_number":377,"context_line":"                            self.logger.error(\u0027%s\u0027, line)"},{"line_number":378,"context_line":"                    return"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"            if image.status !\u003d Status.ERROR and self.conf.squash and \\"},{"line_number":381,"context_line":"               self.conf.engine \u003d\u003d engine.Engine.DOCKER.value:"},{"line_number":382,"context_line":"                self.squash()"},{"line_number":383,"context_line":"        except engine.getEngineException(self.conf):"},{"line_number":384,"context_line":"            image.status \u003d Status.ERROR"},{"line_number":385,"context_line":"            self.logger.exception(\u0027Unknown container engine \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"e18e49b2_d9024deb","line":382,"range":{"start_line":380,"start_character":0,"end_line":382,"end_character":29},"in_reply_to":"ae90e7d9_ed3046b8","updated":"2022-09-26 11:01:39.000000000","message":"We can\u0027t implement squash() as a generic method because that approach isn\u0027t suitable for all container engines (Podman i.e.: squash is just a parameter that we send to build function there).\n\nAs for disabling squash - as I have understood - you want to have some check in try-except block, that will be deciding if docker-squash library is present, and if it isn\u0027t - that squash block will be skipped?\nOr, probably, we could use another approach: we could add a check in build.py for engine\u003d\u003ddocker and conf.squash, that will be exiting if user wants to squash with docker, but doesn\u0027t have docker-squash installed","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"d537a38407b3b73ff2e3e17753f69bf01dd64030","unresolved":false,"context_lines":[{"line_number":377,"context_line":"                            self.logger.error(\u0027%s\u0027, line)"},{"line_number":378,"context_line":"                    return"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"            if image.status !\u003d Status.ERROR and self.conf.squash and \\"},{"line_number":381,"context_line":"               self.conf.engine \u003d\u003d engine.Engine.DOCKER.value:"},{"line_number":382,"context_line":"                self.squash()"},{"line_number":383,"context_line":"        except engine.getEngineException(self.conf):"},{"line_number":384,"context_line":"            image.status \u003d Status.ERROR"},{"line_number":385,"context_line":"            self.logger.exception(\u0027Unknown container engine \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"5c1c035c_d15a850a","line":382,"range":{"start_line":380,"start_character":0,"end_line":382,"end_character":29},"in_reply_to":"e18e49b2_d9024deb","updated":"2022-09-26 11:14:27.000000000","message":"I was more about getting rid of \u0027is it Docker\u0027 check from here. But let it stay that way.","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e1dbee8e135c18c9f31844791c9de94196894789","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":18,"id":"22d8e98a_3d9c973f","line":1,"updated":"2022-10-06 12:57:59.000000000","message":"Adding and removing in the next patch does not really make sense, does it?","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"4ad7dc3d1ae6862315ce07f2711b77ec41c58302","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":18,"id":"7b2e8dac_172ecf99","line":1,"in_reply_to":"22d8e98a_3d9c973f","updated":"2022-10-06 13:03:33.000000000","message":"Ack","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e1dbee8e135c18c9f31844791c9de94196894789","unresolved":true,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class EngineTask(task.Task):"},{"line_number":37,"context_line":"    def __init__(self, conf):"},{"line_number":38,"context_line":"        super(EngineTask, self).__init__()"},{"line_number":39,"context_line":"        self._ec \u003d None"},{"line_number":40,"context_line":"        self.conf \u003d conf"}],"source_content_type":"text/x-python","patch_set":18,"id":"75c06a36_ae86af5c","line":37,"updated":"2022-10-06 12:57:59.000000000","message":"this passing of config will also be unnecessary once the adapter code gets fixed accordingly","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"f522d54845babcca9c3a56b14b35f709d369d8a9","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class EngineTask(task.Task):"},{"line_number":37,"context_line":"    def __init__(self, conf):"},{"line_number":38,"context_line":"        super(EngineTask, self).__init__()"},{"line_number":39,"context_line":"        self._ec \u003d None"},{"line_number":40,"context_line":"        self.conf \u003d conf"}],"source_content_type":"text/x-python","patch_set":18,"id":"42beb96e_0b529feb","line":37,"in_reply_to":"668305c0_349eda14","updated":"2022-10-07 08:12:33.000000000","message":"Yes, agreed.","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"482b00d04ab83223134fef355683a4cc87db5498","unresolved":true,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class EngineTask(task.Task):"},{"line_number":37,"context_line":"    def __init__(self, conf):"},{"line_number":38,"context_line":"        super(EngineTask, self).__init__()"},{"line_number":39,"context_line":"        self._ec \u003d None"},{"line_number":40,"context_line":"        self.conf \u003d conf"}],"source_content_type":"text/x-python","patch_set":18,"id":"668305c0_349eda14","line":37,"in_reply_to":"75c06a36_ae86af5c","updated":"2022-10-07 07:59:17.000000000","message":"Maybe all of config related changes could be done as separate commit.","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"e1dbee8e135c18c9f31844791c9de94196894789","unresolved":true,"context_lines":[{"line_number":370,"context_line":"                            self.logger.error(\u0027%s\u0027, line)"},{"line_number":371,"context_line":"                    return"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"            if image.status !\u003d Status.ERROR and self.conf.squash and \\"},{"line_number":374,"context_line":"               self.conf.engine \u003d\u003d engine.Engine.DOCKER.value:"},{"line_number":375,"context_line":"                self.squash()"},{"line_number":376,"context_line":"        except engine.getEngineException(self.conf):"},{"line_number":377,"context_line":"            image.status \u003d Status.ERROR"}],"source_content_type":"text/x-python","patch_set":18,"id":"d031625a_621881ca","line":374,"range":{"start_line":373,"start_character":48,"end_line":374,"end_character":61},"updated":"2022-10-06 12:57:59.000000000","message":"we should rather fail early if it is impossible to use squash and non-docker rather than to hide this fact","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"9c7752d0723a93dfc637a18cd51f7fd71e415693","unresolved":true,"context_lines":[{"line_number":370,"context_line":"                            self.logger.error(\u0027%s\u0027, line)"},{"line_number":371,"context_line":"                    return"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"            if image.status !\u003d Status.ERROR and self.conf.squash and \\"},{"line_number":374,"context_line":"               self.conf.engine \u003d\u003d engine.Engine.DOCKER.value:"},{"line_number":375,"context_line":"                self.squash()"},{"line_number":376,"context_line":"        except engine.getEngineException(self.conf):"},{"line_number":377,"context_line":"            image.status \u003d Status.ERROR"}],"source_content_type":"text/x-python","patch_set":18,"id":"819afa6b_0f1cfd18","line":374,"range":{"start_line":373,"start_character":48,"end_line":374,"end_character":61},"in_reply_to":"7449eb53_4b6fd8e3","updated":"2022-10-11 09:04:59.000000000","message":"I am not sure about where and with what message should we fail. If we are trying to use any other engine than docker - it will fail in build.py:112, in any other cases - problems with squash - shouldn\u0027t appear.\n\nAll of these ifs are used with different purposes:\nimage.status - can squash be done?\nconf.squash - does user wants to squash image?\nconf.engine - do we have to squash in that way (by a separate call to .squash())?","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"f522d54845babcca9c3a56b14b35f709d369d8a9","unresolved":true,"context_lines":[{"line_number":370,"context_line":"                            self.logger.error(\u0027%s\u0027, line)"},{"line_number":371,"context_line":"                    return"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"            if image.status !\u003d Status.ERROR and self.conf.squash and \\"},{"line_number":374,"context_line":"               self.conf.engine \u003d\u003d engine.Engine.DOCKER.value:"},{"line_number":375,"context_line":"                self.squash()"},{"line_number":376,"context_line":"        except engine.getEngineException(self.conf):"},{"line_number":377,"context_line":"            image.status \u003d Status.ERROR"}],"source_content_type":"text/x-python","patch_set":18,"id":"7449eb53_4b6fd8e3","line":374,"range":{"start_line":373,"start_character":48,"end_line":374,"end_character":61},"in_reply_to":"956ad08e_3cc4bf56","updated":"2022-10-07 08:12:33.000000000","message":"For now, let\u0027s ensure that we fail with an appropriate message.","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"482b00d04ab83223134fef355683a4cc87db5498","unresolved":true,"context_lines":[{"line_number":370,"context_line":"                            self.logger.error(\u0027%s\u0027, line)"},{"line_number":371,"context_line":"                    return"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"            if image.status !\u003d Status.ERROR and self.conf.squash and \\"},{"line_number":374,"context_line":"               self.conf.engine \u003d\u003d engine.Engine.DOCKER.value:"},{"line_number":375,"context_line":"                self.squash()"},{"line_number":376,"context_line":"        except engine.getEngineException(self.conf):"},{"line_number":377,"context_line":"            image.status \u003d Status.ERROR"}],"source_content_type":"text/x-python","patch_set":18,"id":"956ad08e_3cc4bf56","line":374,"range":{"start_line":373,"start_character":48,"end_line":374,"end_character":61},"in_reply_to":"d031625a_621881ca","updated":"2022-10-07 07:59:17.000000000","message":"It is possible to use squash and non-docker, but it is just done in other way, not as a separate library and function.","commit_id":"8678d80f019856862769b68f049adf8cde8202a9"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"a86ea863429dc3417780fe1c61adc0a6eb4dcb74","unresolved":false,"context_lines":[{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        buildargs \u003d self.update_buildargs()"},{"line_number":350,"context_line":"        try:"},{"line_number":351,"context_line":"            for stream in \\"},{"line_number":352,"context_line":"                self.engine_client.build(path\u003dimage.path,"},{"line_number":353,"context_line":"                                         tag\u003dimage.canonical_name,"},{"line_number":354,"context_line":"                                         nocache\u003dnot self.conf.cache,"}],"source_content_type":"text/x-python","patch_set":25,"id":"5809bcda_22e153f0","line":351,"updated":"2022-11-16 11:21:37.000000000","message":"I would do \"for stream in self.engine_client.build(\" and then arguments in other line but it fine too.","commit_id":"a2854da1b3e12987f7fa7590fca3bb74ac19c53e"}],"kolla/image/unbuildable.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":6,"id":"4b8ff166_93b22379","line":1,"updated":"2022-06-18 08:23:11.000000000","message":"drop","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":6,"id":"006578cd_f282f2f8","line":1,"in_reply_to":"4b8ff166_93b22379","updated":"2022-06-20 07:48:04.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"}],"kolla/image/utils.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c632099d69af6b4e0145d30372c53aa298b6fb00","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":6,"id":"54288865_18de1880","line":1,"updated":"2022-06-18 08:23:11.000000000","message":"drop","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"645ed054562db7b9aea3d097568877e49d09a42a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":6,"id":"e7ab3bc7_0be900b8","line":1,"in_reply_to":"54288865_18de1880","updated":"2022-06-20 07:48:04.000000000","message":"Done","commit_id":"864c92c53158ef641253c50d92ecd193625b7b20"}],"kolla/tests/test_build.py":[{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"9afd57837f4f8b103317d1c2ace3e91c3a1db038","unresolved":true,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from kolla.cmd import build as build_cmd"},{"line_number":20,"context_line":"from kolla.image import build"},{"line_number":21,"context_line":"from kolla.image import kolla_worker"},{"line_number":22,"context_line":"from kolla.image import tasks"},{"line_number":23,"context_line":"from kolla.image import utils"},{"line_number":24,"context_line":"from kolla.tests import base"}],"source_content_type":"text/x-python","patch_set":12,"id":"c0d32ab0_4763413b","line":21,"updated":"2022-09-23 15:37:42.000000000","message":"What about\n\nfrom kolla.image.kolla_worker import Image\n\nand then FAKE_IMAGE \u003d Image() etc?","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"},{"author":{"_account_id":35104,"name":"Konstantin Yarovoy","email":"k.yarovoy@partner.samsung.com","username":"k.yarovoy"},"change_message_id":"556b4176c9e934472fcb9a5334f9a3a659a5fdaa","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from kolla.cmd import build as build_cmd"},{"line_number":20,"context_line":"from kolla.image import build"},{"line_number":21,"context_line":"from kolla.image import kolla_worker"},{"line_number":22,"context_line":"from kolla.image import tasks"},{"line_number":23,"context_line":"from kolla.image import utils"},{"line_number":24,"context_line":"from kolla.tests import base"}],"source_content_type":"text/x-python","patch_set":12,"id":"e3e432a4_5036ef65","line":21,"in_reply_to":"c0d32ab0_4763413b","updated":"2022-09-27 11:50:50.000000000","message":"Done","commit_id":"4bebff5a596ab5ede019d1a9f6a0775f8ddc4844"}]}
