)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"cd8d4c1c3452a9e19d76e5f1d1a60c68e11caad1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"22e5cef3_f21fdb87","updated":"2022-01-11 09:20:51.000000000","message":"Can you fix up the merge confict? Now that the refactoring has been merged, it will make it easier for reviewers to see what you have changed here.","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"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":"8fbe2ec034b5daaa18dbdee77ddf0943d6fd726d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d2df6eb2_a745249e","updated":"2021-11-09 19:44:27.000000000","message":"Could we get the refactor first? I.e., the mass exodus of code already happening plus keeping the bits that will need to remain common between the two implementations in a separate base class? It could actually use python ABCs - to define a clear interface and then to clearly define which parts differ and need to be implemented per case. We could make an additional class for common functionality when Docker is in use which could then be made easily into docker+docker, systemd+docker and systemd+podman variants.","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"6453f289d9642ee02d485241eba2082830535afc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d7d8e659_a463781e","in_reply_to":"cdf673a3_f94aeb8d","updated":"2021-11-11 10:39:09.000000000","message":"Just to be safe, I\u0027m currently working on that refactoring, should I also create the interface class or can it be left for later until it\u0027s relevant for Podman part of the module?","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"d1e65005029d7052ca5b85256aaa34dfc74d03ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"db6f6c85_2a218c51","in_reply_to":"d2df6eb2_a745249e","updated":"2021-11-10 15:50:44.000000000","message":"I would say let\u0027s first do a simple move of the existing code to module_utils, if that is the approach we want to follow. After that we can more easily review changes to it.","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5e27d93a_6275b1e6","in_reply_to":"d7d8e659_a463781e","updated":"2022-01-27 10:44:30.000000000","message":"Done","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"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":"6917b0373cc10d7980f8ea20e00430f00d39112d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"cdf673a3_f94aeb8d","in_reply_to":"db6f6c85_2a218c51","updated":"2021-11-10 15:55:37.000000000","message":"Yeah, I got more stuff mixed in but that was my idea as well. Always do it in baby steps.","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"087d6fb2f851b15af71513611b5985c92ede4583","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f2960f77_f1a0b9d5","updated":"2022-01-24 12:58:52.000000000","message":"First pass","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5b60dc41_20e175ba","updated":"2022-01-27 10:44:30.000000000","message":"Worked out most issues from the comments.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"dabc9fa7_c98c0075","updated":"2022-01-31 11:00:39.000000000","message":"First pass from me as well.","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"dcbf7024102f73df30d1e0b76bc4fc33cb0fbe46","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"05a423c1_69bd8046","updated":"2022-02-10 09:27:45.000000000","message":"hmm, now unhappy about something else, eh","commit_id":"02e461a12990b32a470d2f966d7bcd834411e042"},{"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":"4706302566870706aca8d0a026e196c132e167c8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"298e1e43_3982470b","updated":"2022-02-10 09:32:01.000000000","message":"I\u0027m inclined to say we don\u0027t want to test this at dbus level at all and mock out the entire interactions as having to get the whole glib+dbus stuff to run unit tests feels wrong.\n\nThat said, let\u0027s see if this time it passes. Then we think how to modify the unit tests.","commit_id":"64ea280721f933fbbdfe22d041216f3c2bd420a3"},{"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":"296b84a9e26ee5e2bf37118bf0dd2f0013394ae5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"c634c452_3437b51d","in_reply_to":"1683cd06_c4a38560","updated":"2022-02-10 11:01:13.000000000","message":"Well, that would be cheating.","commit_id":"64ea280721f933fbbdfe22d041216f3c2bd420a3"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"7e341ad24ac0e8d6c71c1eb46e6123d104f2cb47","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"1683cd06_c4a38560","in_reply_to":"298e1e43_3982470b","updated":"2022-02-10 09:40:16.000000000","message":"I guess we can\u0027t run dbus tests just on the original python version that has dbus package installed and skip them on the additional python version, right?","commit_id":"64ea280721f933fbbdfe22d041216f3c2bd420a3"},{"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":"cb4c9cabdebe91235fe004746385fb49a02fd517","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"79289706_3a6c4a78","updated":"2022-02-11 09:37:49.000000000","message":"ok, it passed the \"missing deps\" stage but now it fails 5 of the new tests on timeout - I\u0027m guessing it\u0027s not mocking the right things and still tries to call the real dbus - considering all factors, I opt to abandond the current approach in testing and focus on mocking the entirety of interaction (avoid dep on dbus for unit tests and mock any calls to dbus)","commit_id":"e7ac658b1650567fd51825e433d12ddd3cbaaf23"},{"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":"6ff35aebda676219a7aeed8cd9848c7103c7a5c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"58c3b0e9_7991bda9","in_reply_to":"4673b823_105e8643","updated":"2022-02-11 13:12:38.000000000","message":"Ok, let\u0027s then kill off this kind of testing as it seems it is issue-ridden. Did you understand my idea of the alternative or do you need me to help you with an example?","commit_id":"e7ac658b1650567fd51825e433d12ddd3cbaaf23"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"756128f4cb7c6f48e9ab220c9d3bb7ef95f3fe32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"91b8d563_0ecf64db","in_reply_to":"58c3b0e9_7991bda9","updated":"2022-02-14 08:21:40.000000000","message":"The objective is to completely mock out the kolla_systemd_worker package and have only the original tests, right? Or should we also have some tests for it with mocked out dbus package?","commit_id":"e7ac658b1650567fd51825e433d12ddd3cbaaf23"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"e63ad1b94607885b2963f77083e7189369101790","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"4673b823_105e8643","in_reply_to":"682dc481_b3dec3c4","updated":"2022-02-11 12:39:17.000000000","message":"I don\u0027t really have an idea. I tried to isolate any test classes that might be causing these conflicts but it still timed out for any combination. Then my second guess was that in the mass test, the mocked dbus system gets initialized multiple times thus invalidating previous instances but same thing happens when running just Systemd tests alone.\nIn the end I suspect the problem might be somewhere inside the dbusmock module.","commit_id":"e7ac658b1650567fd51825e433d12ddd3cbaaf23"},{"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":"32fae67ce2c8f5454564f290a86c074d0536c2fa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"682dc481_b3dec3c4","in_reply_to":"695277e7_baae287e","updated":"2022-02-11 11:31:14.000000000","message":"Interesting. Any idea why? They should not conflict (how come other parts could have anything to do with dbus?).","commit_id":"e7ac658b1650567fd51825e433d12ddd3cbaaf23"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"a8ba9259dea50dd643713fd62503c545546b1445","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"695277e7_baae287e","in_reply_to":"79289706_3a6c4a78","updated":"2022-02-11 09:58:25.000000000","message":"Those timeouts happen because of some conflicts with other tests. That\u0027s why I ran them separately in my original patchset.","commit_id":"e7ac658b1650567fd51825e433d12ddd3cbaaf23"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"e251f294a32fc0c6ea748af076fc0b618b31604a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"9aa99bdd_bc9e6f68","in_reply_to":"7f114b02_6f1a73d0","updated":"2022-02-17 12:30:16.000000000","message":"Done","commit_id":"e7ac658b1650567fd51825e433d12ddd3cbaaf23"},{"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":"b1afbcc68c0e772c31fafdc0f4f9787b85574f35","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":14,"id":"7f114b02_6f1a73d0","in_reply_to":"91b8d563_0ecf64db","updated":"2022-02-14 09:07:20.000000000","message":"Mock out dbus for the tests (this is possible - move the import of the dbus package into a try block and on ImportError assign None to dbus instead -- and then, in unit tests, modify the module\u0027s dbus property to use the mock).","commit_id":"e7ac658b1650567fd51825e433d12ddd3cbaaf23"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"f8862a46_d9a63716","updated":"2022-02-23 12:31:25.000000000","message":"It\u0027s looking better. Nice to see tests passing. It\u0027s one of those large impact changes that will need a few review iterations and some local testing.","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"398fdcb924ccacd899730028d1c113554c1b1177","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"7e7f3a02_b4332fee","updated":"2022-02-18 08:52:58.000000000","message":"recheck","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"137182f916b03d24fe193b98916bd8e9ceaec45e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"75278d7b_219f7ac1","updated":"2022-03-17 12:00:30.000000000","message":"recheck","commit_id":"92f4e478a7feb4d8184b857f3a2b824bb42c8102"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"bb38506701a77b8e15900e3c872168481f022fd7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"c4a1f661_5523d710","updated":"2022-03-22 10:59:23.000000000","message":"recheck","commit_id":"92f4e478a7feb4d8184b857f3a2b824bb42c8102"},{"author":{"_account_id":35105,"name":"Ivan Halomi","username":"ihalomi","inactive":true},"change_message_id":"a89e39b5f9be1a8a8c7a3b54ef458e95023acaf3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"d254f31e_107f0695","updated":"2022-08-05 07:16:53.000000000","message":"recheck","commit_id":"2e532091836745fcefeff33663d680ac57888b3a"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"67665f9b6196e4160d62e2be1ea786e9dc740d66","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"5a53fb29_7027000b","updated":"2022-08-30 07:11:54.000000000","message":"recheck","commit_id":"72689f287254f7dc379e5b3a2861b065fe53ffb1"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"1d9b9f88006dcc2e8a71f57e0246d33ab9fddfef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"e4138f07_b50ee7a5","updated":"2022-08-25 09:57:33.000000000","message":"recheck","commit_id":"72689f287254f7dc379e5b3a2861b065fe53ffb1"},{"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":"604e894ca0ed7ebc0e0a48caf4e3ea9f81e84c98","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"b9cdf907_b72210a9","updated":"2022-09-06 09:10:43.000000000","message":"(adding other active cores to reviewers in the hope of attracting more testing bandwidth)","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"eacd0ef07c4c1eb5b4fdff26f9510bd923693c70","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"f64fd375_7d9f7f26","updated":"2022-09-07 09:57:26.000000000","message":"Wouldn\u0027t this change be good to mention in a release note? Especially if we want to still include it in Zed?","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"c3b11e69f47e73de98f8be72a3fe19740e2a83c8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"8225b5f9_cbcd6c46","in_reply_to":"f64fd375_7d9f7f26","updated":"2022-09-09 08:12:18.000000000","message":"Are there any guidelines/tutorial for writing release notes?","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"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":"71b1575f371db938dc97590a4a5885b734aa9e94","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"bf4d15e2_252adee5","updated":"2022-09-10 20:20:02.000000000","message":"(deploy and reboots of that deploy seem to work; systemd owns the containers\u0027 lifecycle, docker does not try to restart them by itself)","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"3314528d7ba3513ee845572ba31a30278d975628","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"8c44cf31_bab24df7","updated":"2022-09-10 20:15:03.000000000","message":"(this is not a thorough review yet, mind you, only a brief scratch so far)","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"2e32500797244adf511edd5d529f81c70ac33184","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"1f31b6c6_e4273ad6","updated":"2022-09-09 08:23:04.000000000","message":"For the tool itself there is https://docs.openstack.org/reno/latest/user/usage.html#creating-new-release-notes , for the content I mostly look at existing notes as a reference.","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"be3cae9eb33e50cd8a44278d59ba6070d52ea845","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":27,"id":"c00fb77b_74c8dfaf","updated":"2022-09-10 20:16:28.000000000","message":"to note and discuss: units will now log (stdout, stderr) both to docker and journald which effectively doubles the amount of logs stored","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"9da37aee6e7ed194a9108a117cc2f206e45f54c5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":27,"id":"1e0452c7_4ea13d86","in_reply_to":"1bf3f391_458c34d8","updated":"2022-09-12 15:28:54.000000000","message":"I would do the reverse - disable Docker logging and have all logging via systemd.","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"01ab1e1bd844c8f735a620aca73f438822ef33c8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"d21b08ba_baa4fc4f","in_reply_to":"1e0452c7_4ea13d86","updated":"2022-09-13 09:45:44.000000000","message":"Done","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"8a5b384ce04bfe951a9540838f45a664bb0c83a9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":27,"id":"8a0956fa_264f18c5","in_reply_to":"1f31b6c6_e4273ad6","updated":"2022-09-09 08:24:48.000000000","message":"We also have this https://docs.openstack.org/kolla/latest/contributor/release-notes.html#templates-and-examples","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"6210f226e3697382362434d52ce33f905acb2b62","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":27,"id":"148513d4_439465d0","in_reply_to":"8a0956fa_264f18c5","updated":"2022-09-12 15:18:53.000000000","message":"Thank you.","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"6210f226e3697382362434d52ce33f905acb2b62","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":27,"id":"1bf3f391_458c34d8","in_reply_to":"c00fb77b_74c8dfaf","updated":"2022-09-12 15:18:53.000000000","message":"If this is a serious issue, the journald logging can be disabled by setting StandardOutput and StandardError to null in unit file. This way only Docker will collect logs.","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"ccb3e54816f60d411dfb5b071aec47c94e761422","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"7d8d4592_465f3ed4","updated":"2022-09-27 06:55:53.000000000","message":"The generation test is broken because it uses a mocked template instead of the real deal but it\u0027s an easy fix.","commit_id":"e20e2240bb9ade4fe379b95d54f79947f2a2c60d"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"7de7d9e5e1677f5c77029904e395c553ebd592bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"ae5d2208_08d4a530","updated":"2022-10-14 09:54:38.000000000","message":"recheck","commit_id":"b0ae152eacd72515fddbb6887aa179498c6b4eca"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"f4a5984561f97a9c19d41e0622b71d70cf146c71","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"20ff7678_4126ca49","updated":"2022-11-09 16:30:35.000000000","message":"recheck","commit_id":"c66988d900b30b397bf38f139311717c1079f51d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"9f5c8e797023eaff6eb12a15c61806016ea1da37","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":45,"id":"7559de54_8c114731","updated":"2022-11-28 18:21:02.000000000","message":"openpeuler is failing on missing python3-dbus","commit_id":"3ce7b96b373070947f0b324057782354871057c3"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"3c750f5528ed35c84b5a3db6ad5f3b891139d9ee","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":45,"id":"f2f03fea_fabb21ad","in_reply_to":"7559de54_8c114731","updated":"2023-01-02 13:38:12.000000000","message":"I would like to stay using the python import method to check for dbus package availability. Main reason is that it is portable (as seen with this openEuler fail).\nAlso, this same method is used for docker check in task just above so if this remains an issue, they can both be reworked later.","commit_id":"3ce7b96b373070947f0b324057782354871057c3"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"69901b744869d07c21ece318ccf0cc5a0f1ab769","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":45,"id":"c173154c_d9aad24e","in_reply_to":"f2f03fea_fabb21ad","updated":"2023-01-19 16:02:09.000000000","message":"Ack","commit_id":"3ce7b96b373070947f0b324057782354871057c3"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"290959c032683aa7c172085446f327972ee85eb8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":48,"id":"5111ae30_3a0f85cc","updated":"2023-01-25 15:27:10.000000000","message":"recheck (debian failed on downloading cirrus)","commit_id":"4866017e5256623fe1838817260ce5836cc26ef1"}],"ansible/library/kolla_docker.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":"8fbe2ec034b5daaa18dbdee77ddf0943d6fd726d","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from ansible.module_utils.basic import AnsibleModule"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"sys.path.append(os.getcwd() + \u0027/module_utils\u0027)"},{"line_number":30,"context_line":"from docker_worker import DockerWorker    # noqa: E402"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"057b486c_c440db33","line":29,"updated":"2021-11-09 19:44:27.000000000","message":"I suggest you don\u0027t go rogue with custom dirs and use subdirs here instead","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"d1e65005029d7052ca5b85256aaa34dfc74d03ba","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from ansible.module_utils.basic import AnsibleModule"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"sys.path.append(os.getcwd() + \u0027/module_utils\u0027)"},{"line_number":30,"context_line":"from docker_worker import DockerWorker    # noqa: E402"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"d2120f32_f3e00d57","line":29,"in_reply_to":"057b486c_c440db33","updated":"2021-11-10 15:50:44.000000000","message":"Are you referring to module_utils? That is a standard way of sharing code between modules in ansible. Probably the import issues were observed in the unit tests.","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"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":"9057c6b5d44fe78b0315edcae845578bb2457ff5","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from ansible.module_utils.basic import AnsibleModule"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"sys.path.append(os.getcwd() + \u0027/module_utils\u0027)"},{"line_number":30,"context_line":"from docker_worker import DockerWorker    # noqa: E402"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"55064ac2_0b6ddadf","line":29,"in_reply_to":"4b47c3cd_c90ba8e0","updated":"2021-11-10 16:08:10.000000000","message":"Whatever works without the need to hack on python path.","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from ansible.module_utils.basic import AnsibleModule"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"sys.path.append(os.getcwd() + \u0027/module_utils\u0027)"},{"line_number":30,"context_line":"from docker_worker import DockerWorker    # noqa: E402"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"4b900357_6a3a960f","line":29,"in_reply_to":"55064ac2_0b6ddadf","updated":"2022-01-27 10:44:30.000000000","message":"Done","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"c7cb7a2ca3d9c58d99a0f69d21d1f69b29d3cd8b","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from ansible.module_utils.basic import AnsibleModule"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"sys.path.append(os.getcwd() + \u0027/module_utils\u0027)"},{"line_number":30,"context_line":"from docker_worker import DockerWorker    # noqa: E402"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"4b47c3cd_c90ba8e0","line":29,"in_reply_to":"711e6e02_290b65ee","updated":"2021-11-10 16:04:04.000000000","message":"So are we clear to use module_utils directory for module code, while the actual module stays in library directory? Or should we relocate it to the subdirectory inside library directory?","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"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":"6917b0373cc10d7980f8ea20e00430f00d39112d","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from ansible.module_utils.basic import AnsibleModule"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"sys.path.append(os.getcwd() + \u0027/module_utils\u0027)"},{"line_number":30,"context_line":"from docker_worker import DockerWorker    # noqa: E402"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"711e6e02_290b65ee","line":29,"in_reply_to":"d2120f32_f3e00d57","updated":"2021-11-10 15:55:37.000000000","message":"Hmm, interesting and good to know. Then the unit tests should be modified instead.","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"}],"ansible/module_utils/kolla_docker_worker.py":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"087d6fb2f851b15af71513611b5985c92ede4583","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        container \u003d self.check_container()"},{"line_number":117,"context_line":"        if (not container or"},{"line_number":118,"context_line":"                self.check_container_differs() or"},{"line_number":119,"context_line":"                self.compare_config()):"},{"line_number":120,"context_line":"            self.changed \u003d True"},{"line_number":121,"context_line":"        return self.changed"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1c6cb26b_f7d3793e","line":119,"updated":"2022-01-24 12:58:52.000000000","message":"If the module is responsible for generating the systemd unit file, we should check it here too.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        container \u003d self.check_container()"},{"line_number":117,"context_line":"        if (not container or"},{"line_number":118,"context_line":"                self.check_container_differs() or"},{"line_number":119,"context_line":"                self.compare_config()):"},{"line_number":120,"context_line":"            self.changed \u003d True"},{"line_number":121,"context_line":"        return self.changed"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"e8c9599d_d6e40f1c","line":119,"in_reply_to":"1c6cb26b_f7d3793e","updated":"2022-01-27 10:44:30.000000000","message":"Done","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"087d6fb2f851b15af71513611b5985c92ede4583","unresolved":true,"context_lines":[{"line_number":486,"context_line":"                    container\u003dself.params.get(\u0027name\u0027),"},{"line_number":487,"context_line":"                    force\u003dTrue"},{"line_number":488,"context_line":"                )"},{"line_number":489,"context_line":"                self.systemd.remove_unit_file()"},{"line_number":490,"context_line":"            except docker.errors.APIError:"},{"line_number":491,"context_line":"                if self.check_container():"},{"line_number":492,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":3,"id":"666b2e64_96dc4ea7","line":489,"updated":"2022-01-24 12:58:52.000000000","message":"This should be done regardless of whether the container exists.\n\nIt should also set changed\u003dTrue if the file is removed. Maybe track it also in the SystemdWorker class?","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":486,"context_line":"                    container\u003dself.params.get(\u0027name\u0027),"},{"line_number":487,"context_line":"                    force\u003dTrue"},{"line_number":488,"context_line":"                )"},{"line_number":489,"context_line":"                self.systemd.remove_unit_file()"},{"line_number":490,"context_line":"            except docker.errors.APIError:"},{"line_number":491,"context_line":"                if self.check_container():"},{"line_number":492,"context_line":"                    raise"}],"source_content_type":"text/x-python","patch_set":3,"id":"652eb332_18601545","line":489,"in_reply_to":"666b2e64_96dc4ea7","updated":"2022-01-27 10:44:30.000000000","message":"Done","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"087d6fb2f851b15af71513611b5985c92ede4583","unresolved":true,"context_lines":[{"line_number":685,"context_line":"            self.create_container()"},{"line_number":686,"context_line":"            container \u003d self.check_container()"},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"        if not self.systemd.check_systemd() and not temp:"},{"line_number":689,"context_line":"            self.systemd.generate_unit_file(self.get_container_info())"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"        if not container[\u0027Status\u0027].startswith(\u0027Up \u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"bad0ae33_c7ba4378","line":688,"range":{"start_line":688,"start_character":15,"end_line":688,"end_character":43},"updated":"2022-01-24 12:58:52.000000000","message":"I don\u0027t think we need this everywhere in this class. Delegate the logic to the systemd worker.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":685,"context_line":"            self.create_container()"},{"line_number":686,"context_line":"            container \u003d self.check_container()"},{"line_number":687,"context_line":""},{"line_number":688,"context_line":"        if not self.systemd.check_systemd() and not temp:"},{"line_number":689,"context_line":"            self.systemd.generate_unit_file(self.get_container_info())"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"        if not container[\u0027Status\u0027].startswith(\u0027Up \u0027):"}],"source_content_type":"text/x-python","patch_set":3,"id":"c2d2eae3_b0f0363c","line":688,"range":{"start_line":688,"start_character":15,"end_line":688,"end_character":43},"in_reply_to":"bad0ae33_c7ba4378","updated":"2022-01-27 10:44:30.000000000","message":"Done","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"087d6fb2f851b15af71513611b5985c92ede4583","unresolved":true,"context_lines":[{"line_number":852,"context_line":"                self.systemd.generate_unit_file(self.get_container_info())"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"            self.systemd.restart_container()"},{"line_number":855,"context_line":"            if not self.wait_for_container():"},{"line_number":856,"context_line":"                self.module.fail_json("},{"line_number":857,"context_line":"                    changed\u003dTrue,"},{"line_number":858,"context_line":"                    msg\u003d\"Timed out\","}],"source_content_type":"text/x-python","patch_set":3,"id":"f9d8432b_affcbd23","line":855,"range":{"start_line":855,"start_character":12,"end_line":855,"end_character":45},"updated":"2022-01-24 12:58:52.000000000","message":"Could we run the systemd start with the equivalent of --wait, to avoid this?","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"e251f294a32fc0c6ea748af076fc0b618b31604a","unresolved":false,"context_lines":[{"line_number":852,"context_line":"                self.systemd.generate_unit_file(self.get_container_info())"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"            self.systemd.restart_container()"},{"line_number":855,"context_line":"            if not self.wait_for_container():"},{"line_number":856,"context_line":"                self.module.fail_json("},{"line_number":857,"context_line":"                    changed\u003dTrue,"},{"line_number":858,"context_line":"                    msg\u003d\"Timed out\","}],"source_content_type":"text/x-python","patch_set":3,"id":"7657e388_1cc9929d","line":855,"range":{"start_line":855,"start_character":12,"end_line":855,"end_character":45},"in_reply_to":"6ff4efd5_40963b23","updated":"2022-02-17 12:30:16.000000000","message":"I wasn\u0027t able to find any alternative to wait. Second option was listening to dbus signals but unfortunately there are no signals for state change. So in the end, we have to keep using this manual approach, although the wait function was moved into the SystemdWorker.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":true,"context_lines":[{"line_number":852,"context_line":"                self.systemd.generate_unit_file(self.get_container_info())"},{"line_number":853,"context_line":""},{"line_number":854,"context_line":"            self.systemd.restart_container()"},{"line_number":855,"context_line":"            if not self.wait_for_container():"},{"line_number":856,"context_line":"                self.module.fail_json("},{"line_number":857,"context_line":"                    changed\u003dTrue,"},{"line_number":858,"context_line":"                    msg\u003d\"Timed out\","}],"source_content_type":"text/x-python","patch_set":3,"id":"6ff4efd5_40963b23","line":855,"range":{"start_line":855,"start_character":12,"end_line":855,"end_character":45},"in_reply_to":"f9d8432b_affcbd23","updated":"2022-01-27 10:44:30.000000000","message":"Looking into it.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"087d6fb2f851b15af71513611b5985c92ede4583","unresolved":true,"context_lines":[{"line_number":927,"context_line":"                sleep(delay)"},{"line_number":928,"context_line":"                elapsed +\u003d delay"},{"line_number":929,"context_line":""},{"line_number":930,"context_line":"    # NOTE(hinermar): created to differentiate temporary"},{"line_number":931,"context_line":"    # containers which don\u0027t need systemd control"},{"line_number":932,"context_line":"    def is_temp(self):"},{"line_number":933,"context_line":"        return \u0027BOOTSTRAP\u0027 in self.params.get(\u0027labels\u0027, list())"}],"source_content_type":"text/x-python","patch_set":3,"id":"bced2ab8_546309f3","line":933,"range":{"start_line":930,"start_character":0,"end_line":933,"end_character":63},"updated":"2022-01-24 12:58:52.000000000","message":"This won\u0027t catch every case. I\u0027d suggest we make this a new module parameter, something more explicit. Maybe \u0027systemd, default\u003dTrue\u0027","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":927,"context_line":"                sleep(delay)"},{"line_number":928,"context_line":"                elapsed +\u003d delay"},{"line_number":929,"context_line":""},{"line_number":930,"context_line":"    # NOTE(hinermar): created to differentiate temporary"},{"line_number":931,"context_line":"    # containers which don\u0027t need systemd control"},{"line_number":932,"context_line":"    def is_temp(self):"},{"line_number":933,"context_line":"        return \u0027BOOTSTRAP\u0027 in self.params.get(\u0027labels\u0027, list())"}],"source_content_type":"text/x-python","patch_set":3,"id":"b62d537b_0f23f27a","line":933,"range":{"start_line":930,"start_character":0,"end_line":933,"end_character":63},"in_reply_to":"bced2ab8_546309f3","updated":"2022-01-27 10:44:30.000000000","message":"We replaced this method with checking if restart_policy is set to \u0027no\u0027. With this we don\u0027t need any changes in the ansible tasks.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":583,"context_line":"            dimensions \u003d self.parse_dimensions(dimensions)"},{"line_number":584,"context_line":"            options.update(dimensions)"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"        restart_policy \u003d self.params.get(\u0027restart_policy\u0027)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if restart_policy is not None:"},{"line_number":589,"context_line":"            restart_policy \u003d {\u0027Name\u0027: restart_policy}"},{"line_number":590,"context_line":"            # NOTE(Jeffrey4l): MaximumRetryCount is only needed for on-failure"},{"line_number":591,"context_line":"            # policy"},{"line_number":592,"context_line":"            if restart_policy[\u0027Name\u0027] \u003d\u003d \u0027on-failure\u0027:"},{"line_number":593,"context_line":"                retries \u003d self.params.get(\u0027restart_retries\u0027)"},{"line_number":594,"context_line":"                if retries is not None:"},{"line_number":595,"context_line":"                    restart_policy[\u0027MaximumRetryCount\u0027] \u003d retries"},{"line_number":596,"context_line":"            options[\u0027restart_policy\u0027] \u003d restart_policy"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"        if binds:"},{"line_number":599,"context_line":"            options[\u0027binds\u0027] \u003d binds"}],"source_content_type":"text/x-python","patch_set":4,"id":"ecbd646c_4a609a2a","line":596,"range":{"start_line":586,"start_character":8,"end_line":596,"end_character":54},"updated":"2022-01-31 11:00:39.000000000","message":"this keeps getting in the container defintion - it will interfere with systemd\u0027s handling of container lifecycle","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":false,"context_lines":[{"line_number":583,"context_line":"            dimensions \u003d self.parse_dimensions(dimensions)"},{"line_number":584,"context_line":"            options.update(dimensions)"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"        restart_policy \u003d self.params.get(\u0027restart_policy\u0027)"},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if restart_policy is not None:"},{"line_number":589,"context_line":"            restart_policy \u003d {\u0027Name\u0027: restart_policy}"},{"line_number":590,"context_line":"            # NOTE(Jeffrey4l): MaximumRetryCount is only needed for on-failure"},{"line_number":591,"context_line":"            # policy"},{"line_number":592,"context_line":"            if restart_policy[\u0027Name\u0027] \u003d\u003d \u0027on-failure\u0027:"},{"line_number":593,"context_line":"                retries \u003d self.params.get(\u0027restart_retries\u0027)"},{"line_number":594,"context_line":"                if retries is not None:"},{"line_number":595,"context_line":"                    restart_policy[\u0027MaximumRetryCount\u0027] \u003d retries"},{"line_number":596,"context_line":"            options[\u0027restart_policy\u0027] \u003d restart_policy"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"        if binds:"},{"line_number":599,"context_line":"            options[\u0027binds\u0027] \u003d binds"}],"source_content_type":"text/x-python","patch_set":4,"id":"391dfe9d_6be107ce","line":596,"range":{"start_line":586,"start_character":8,"end_line":596,"end_character":54},"in_reply_to":"ecbd646c_4a609a2a","updated":"2022-02-07 10:10:04.000000000","message":"Done","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":645,"context_line":"        self.changed \u003d True"},{"line_number":646,"context_line":"        options \u003d self.build_container_options()"},{"line_number":647,"context_line":"        self.dc.create_container(**options)"},{"line_number":648,"context_line":"        if self.params.get(\u0027restart_policy\u0027) \u003d\u003d \u0027no\u0027:"},{"line_number":649,"context_line":"            self.changed \u003d self.systemd.create_unit_file()"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"    def recreate_or_restart_container(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"d5eba735_5d9b71ef","line":648,"range":{"start_line":648,"start_character":10,"end_line":648,"end_character":11},"updated":"2022-01-31 11:00:39.000000000","message":"There should be \"not\" here. Also, due to the way this function is used, this conditional does not seem to belong in here. Also see my comment in start_container.","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":false,"context_lines":[{"line_number":645,"context_line":"        self.changed \u003d True"},{"line_number":646,"context_line":"        options \u003d self.build_container_options()"},{"line_number":647,"context_line":"        self.dc.create_container(**options)"},{"line_number":648,"context_line":"        if self.params.get(\u0027restart_policy\u0027) \u003d\u003d \u0027no\u0027:"},{"line_number":649,"context_line":"            self.changed \u003d self.systemd.create_unit_file()"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"    def recreate_or_restart_container(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ec9840e6_02779bc1","line":648,"range":{"start_line":648,"start_character":10,"end_line":648,"end_character":11},"in_reply_to":"d5eba735_5d9b71ef","updated":"2022-02-07 10:10:04.000000000","message":"Done","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":687,"context_line":"            container \u003d self.check_container()"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"        if not self.params.get(\u0027restart_policy\u0027) \u003d\u003d \u0027no\u0027:"},{"line_number":690,"context_line":"            self.changed \u003d self.systemd.create_unit_file()"},{"line_number":691,"context_line":""},{"line_number":692,"context_line":"        if not container[\u0027Status\u0027].startswith(\u0027Up \u0027):"},{"line_number":693,"context_line":"            self.changed \u003d True"}],"source_content_type":"text/x-python","patch_set":4,"id":"c53c5cfa_e71ae770","line":690,"updated":"2022-01-31 11:00:39.000000000","message":"Else it should probably ensure the unit file is gone.","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":false,"context_lines":[{"line_number":687,"context_line":"            container \u003d self.check_container()"},{"line_number":688,"context_line":""},{"line_number":689,"context_line":"        if not self.params.get(\u0027restart_policy\u0027) \u003d\u003d \u0027no\u0027:"},{"line_number":690,"context_line":"            self.changed \u003d self.systemd.create_unit_file()"},{"line_number":691,"context_line":""},{"line_number":692,"context_line":"        if not container[\u0027Status\u0027].startswith(\u0027Up \u0027):"},{"line_number":693,"context_line":"            self.changed \u003d True"}],"source_content_type":"text/x-python","patch_set":4,"id":"c90942ed_ddd0b1d9","line":690,"in_reply_to":"c53c5cfa_e71ae770","updated":"2022-02-07 10:10:04.000000000","message":"Done","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":827,"context_line":"                    msg\u003d\"No such container: {} to stop\".format(name))"},{"line_number":828,"context_line":"        elif not container[\u0027Status\u0027].startswith(\u0027Exited \u0027):"},{"line_number":829,"context_line":"            self.changed \u003d True"},{"line_number":830,"context_line":"            self.systemd.create_unit_file()"},{"line_number":831,"context_line":""},{"line_number":832,"context_line":"            self.systemd.stop_container()"},{"line_number":833,"context_line":""},{"line_number":834,"context_line":"    def stop_and_remove_container(self):"},{"line_number":835,"context_line":"        container \u003d self.check_container()"},{"line_number":836,"context_line":"        if container:"}],"source_content_type":"text/x-python","patch_set":4,"id":"a09566e7_1837a2c2","line":833,"range":{"start_line":830,"start_character":12,"end_line":833,"end_character":0},"updated":"2022-01-31 11:00:39.000000000","message":"based on the other logic, this variant should only happen with restart_policy !\u003d \"no\"","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":false,"context_lines":[{"line_number":827,"context_line":"                    msg\u003d\"No such container: {} to stop\".format(name))"},{"line_number":828,"context_line":"        elif not container[\u0027Status\u0027].startswith(\u0027Exited \u0027):"},{"line_number":829,"context_line":"            self.changed \u003d True"},{"line_number":830,"context_line":"            self.systemd.create_unit_file()"},{"line_number":831,"context_line":""},{"line_number":832,"context_line":"            self.systemd.stop_container()"},{"line_number":833,"context_line":""},{"line_number":834,"context_line":"    def stop_and_remove_container(self):"},{"line_number":835,"context_line":"        container \u003d self.check_container()"},{"line_number":836,"context_line":"        if container:"}],"source_content_type":"text/x-python","patch_set":4,"id":"cf38ba93_613d71ef","line":833,"range":{"start_line":830,"start_character":12,"end_line":833,"end_character":0},"in_reply_to":"a09566e7_1837a2c2","updated":"2022-02-07 10:10:04.000000000","message":"Done","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":905,"context_line":"    # to complete this method was created to ensure"},{"line_number":906,"context_line":"    # the container is up and ready for the next task"},{"line_number":907,"context_line":"    def wait_for_container(self):"},{"line_number":908,"context_line":"        timeout \u003d 30"},{"line_number":909,"context_line":"        delay \u003d 5"},{"line_number":910,"context_line":"        elapsed \u003d 0"},{"line_number":911,"context_line":"        restarted \u003d False"},{"line_number":912,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"68181443_b1888ad3","line":909,"range":{"start_line":908,"start_character":8,"end_line":909,"end_character":17},"updated":"2022-01-31 11:00:39.000000000","message":"these seem arbitrary and different than the defaults in unit file template","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":true,"context_lines":[{"line_number":905,"context_line":"    # to complete this method was created to ensure"},{"line_number":906,"context_line":"    # the container is up and ready for the next task"},{"line_number":907,"context_line":"    def wait_for_container(self):"},{"line_number":908,"context_line":"        timeout \u003d 30"},{"line_number":909,"context_line":"        delay \u003d 5"},{"line_number":910,"context_line":"        elapsed \u003d 0"},{"line_number":911,"context_line":"        restarted \u003d False"},{"line_number":912,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"cc1e2695_908fc89a","line":909,"range":{"start_line":908,"start_character":8,"end_line":909,"end_character":17},"in_reply_to":"68181443_b1888ad3","updated":"2022-02-07 10:10:04.000000000","message":"This function is because we have to wait until container is running for some tasks and if we use dbus to send signal, task ends immediately after sending signal","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"e251f294a32fc0c6ea748af076fc0b618b31604a","unresolved":false,"context_lines":[{"line_number":905,"context_line":"    # to complete this method was created to ensure"},{"line_number":906,"context_line":"    # the container is up and ready for the next task"},{"line_number":907,"context_line":"    def wait_for_container(self):"},{"line_number":908,"context_line":"        timeout \u003d 30"},{"line_number":909,"context_line":"        delay \u003d 5"},{"line_number":910,"context_line":"        elapsed \u003d 0"},{"line_number":911,"context_line":"        restarted \u003d False"},{"line_number":912,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1c90ad5a_15539f68","line":909,"range":{"start_line":908,"start_character":8,"end_line":909,"end_character":17},"in_reply_to":"cc1e2695_908fc89a","updated":"2022-02-17 12:30:16.000000000","message":"Wait times are now same as in the unit file and can be modified.","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":917,"context_line":""},{"line_number":918,"context_line":"            if container[\u0027Status\u0027].startswith(\u0027Up \u0027):"},{"line_number":919,"context_line":"                return True"},{"line_number":920,"context_line":"            elif elapsed \u003e timeout and not restarted:"},{"line_number":921,"context_line":"                self.systemd.restart_container()"},{"line_number":922,"context_line":"                elapsed \u003d 0"},{"line_number":923,"context_line":"            elif elapsed \u003e timeout and restarted:"},{"line_number":924,"context_line":"                return False"},{"line_number":925,"context_line":"            else:"},{"line_number":926,"context_line":"                sleep(delay)"},{"line_number":927,"context_line":"                elapsed +\u003d delay"}],"source_content_type":"text/x-python","patch_set":4,"id":"1e97899c_fc625718","line":924,"range":{"start_line":920,"start_character":0,"end_line":924,"end_character":28},"updated":"2022-01-31 11:00:39.000000000","message":"why is there an extra restart here?","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":true,"context_lines":[{"line_number":917,"context_line":""},{"line_number":918,"context_line":"            if container[\u0027Status\u0027].startswith(\u0027Up \u0027):"},{"line_number":919,"context_line":"                return True"},{"line_number":920,"context_line":"            elif elapsed \u003e timeout and not restarted:"},{"line_number":921,"context_line":"                self.systemd.restart_container()"},{"line_number":922,"context_line":"                elapsed \u003d 0"},{"line_number":923,"context_line":"            elif elapsed \u003e timeout and restarted:"},{"line_number":924,"context_line":"                return False"},{"line_number":925,"context_line":"            else:"},{"line_number":926,"context_line":"                sleep(delay)"},{"line_number":927,"context_line":"                elapsed +\u003d delay"}],"source_content_type":"text/x-python","patch_set":4,"id":"8462a805_563894fa","line":924,"range":{"start_line":920,"start_character":0,"end_line":924,"end_character":28},"in_reply_to":"1e97899c_fc625718","updated":"2022-02-07 10:10:04.000000000","message":"Sometimes first restart fails so it is there to make sure it restarts the service","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"c658e2b9f95739a4816ccc18d1dabde9033f9013","unresolved":false,"context_lines":[{"line_number":917,"context_line":""},{"line_number":918,"context_line":"            if container[\u0027Status\u0027].startswith(\u0027Up \u0027):"},{"line_number":919,"context_line":"                return True"},{"line_number":920,"context_line":"            elif elapsed \u003e timeout and not restarted:"},{"line_number":921,"context_line":"                self.systemd.restart_container()"},{"line_number":922,"context_line":"                elapsed \u003d 0"},{"line_number":923,"context_line":"            elif elapsed \u003e timeout and restarted:"},{"line_number":924,"context_line":"                return False"},{"line_number":925,"context_line":"            else:"},{"line_number":926,"context_line":"                sleep(delay)"},{"line_number":927,"context_line":"                elapsed +\u003d delay"}],"source_content_type":"text/x-python","patch_set":4,"id":"ddb4633d_09c759b6","line":924,"range":{"start_line":920,"start_character":0,"end_line":924,"end_character":28},"in_reply_to":"8462a805_563894fa","updated":"2022-03-03 17:11:37.000000000","message":"Done","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        options \u003d {"},{"line_number":47,"context_line":"            \u0027version\u0027: self.params.get(\u0027api_version\u0027),"},{"line_number":48,"context_line":"            \u0027timeout\u0027: self.params.get(\u0027client_timeout\u0027),"},{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.dc \u003d get_docker_client()(**options)"}],"source_content_type":"text/x-python","patch_set":17,"id":"f7afeb80_f11f77bc","line":48,"range":{"start_line":48,"start_character":13,"end_line":48,"end_character":20},"updated":"2022-02-23 12:31:25.000000000","message":"I think we lose this client timeout when using the CLI via systemd. I can\u0027t find an equivalent CLI argument or config option.","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"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":"bc90716084794064a8065af710b0197386943cd1","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        options \u003d {"},{"line_number":47,"context_line":"            \u0027version\u0027: self.params.get(\u0027api_version\u0027),"},{"line_number":48,"context_line":"            \u0027timeout\u0027: self.params.get(\u0027client_timeout\u0027),"},{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.dc \u003d get_docker_client()(**options)"}],"source_content_type":"text/x-python","patch_set":17,"id":"a4846fe4_ac16316f","line":48,"range":{"start_line":48,"start_character":13,"end_line":48,"end_character":20},"in_reply_to":"11975f99_65c30218","updated":"2022-09-10 20:40:13.000000000","message":"It\u0027s not quite the same. I think docker CLI has a hardcoded timeout though. Not sure how to best approach this compatibility. Is it that important that we need to call a docker py wrapper from systemd instead of docker CLI?","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"a7c340198c6d3688dfad5d7a5c6aa0a6e4fa0ca0","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        options \u003d {"},{"line_number":47,"context_line":"            \u0027version\u0027: self.params.get(\u0027api_version\u0027),"},{"line_number":48,"context_line":"            \u0027timeout\u0027: self.params.get(\u0027client_timeout\u0027),"},{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.dc \u003d get_docker_client()(**options)"}],"source_content_type":"text/x-python","patch_set":17,"id":"86a0c6a4_233da360","line":48,"range":{"start_line":48,"start_character":13,"end_line":48,"end_character":20},"in_reply_to":"86037372_467b16d9","updated":"2023-01-25 14:08:42.000000000","message":"Done","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":35105,"name":"Ivan Halomi","username":"ihalomi","inactive":true},"change_message_id":"59deb091b16495933f169300de86353877d1c4bd","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        options \u003d {"},{"line_number":47,"context_line":"            \u0027version\u0027: self.params.get(\u0027api_version\u0027),"},{"line_number":48,"context_line":"            \u0027timeout\u0027: self.params.get(\u0027client_timeout\u0027),"},{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.dc \u003d get_docker_client()(**options)"}],"source_content_type":"text/x-python","patch_set":17,"id":"86037372_467b16d9","line":48,"range":{"start_line":48,"start_character":13,"end_line":48,"end_character":20},"in_reply_to":"a4846fe4_ac16316f","updated":"2022-11-27 12:29:08.000000000","message":"For us it\u0027s okay how it is now. Don\u0027t see point to complicate systemd with docker-py calls if it works with CLI.","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"c658e2b9f95739a4816ccc18d1dabde9033f9013","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        options \u003d {"},{"line_number":47,"context_line":"            \u0027version\u0027: self.params.get(\u0027api_version\u0027),"},{"line_number":48,"context_line":"            \u0027timeout\u0027: self.params.get(\u0027client_timeout\u0027),"},{"line_number":49,"context_line":"        }"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        self.dc \u003d get_docker_client()(**options)"}],"source_content_type":"text/x-python","patch_set":17,"id":"11975f99_65c30218","line":48,"range":{"start_line":48,"start_character":13,"end_line":48,"end_character":20},"in_reply_to":"f7afeb80_f11f77bc","updated":"2022-03-03 17:11:37.000000000","message":"For now it is being used as a start time limit.","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":57,"context_line":"            self.params.get(\u0027name\u0027),"},{"line_number":58,"context_line":"            \u0027docker\u0027,"},{"line_number":59,"context_line":"            self.params.get(\u0027restart_policy\u0027,"},{"line_number":60,"context_line":"                            \u0027always\u0027)"},{"line_number":61,"context_line":"        )"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def generate_tls(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"0f013ec7_223c0f8e","line":60,"range":{"start_line":60,"start_character":29,"end_line":60,"end_character":35},"updated":"2022-02-23 12:31:25.000000000","message":"Doesn\u0027t docker default to \u0027no\u0027?","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"21aa8cbd4a1894db4f10c9a6f20ecef74653cbc2","unresolved":true,"context_lines":[{"line_number":57,"context_line":"            self.params.get(\u0027name\u0027),"},{"line_number":58,"context_line":"            \u0027docker\u0027,"},{"line_number":59,"context_line":"            self.params.get(\u0027restart_policy\u0027,"},{"line_number":60,"context_line":"                            \u0027always\u0027)"},{"line_number":61,"context_line":"        )"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def generate_tls(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"358a4e7d_8e40aacd","line":60,"range":{"start_line":60,"start_character":29,"end_line":60,"end_character":35},"in_reply_to":"0f013ec7_223c0f8e","updated":"2022-02-23 14:29:07.000000000","message":"it propagates restart_policy from kolla_docker which on default is unless-stopped which is exactly what always in systemd means and this is not restart policy for container but for service, containers now always have \u0027no\u0027","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"c658e2b9f95739a4816ccc18d1dabde9033f9013","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            self.params.get(\u0027name\u0027),"},{"line_number":58,"context_line":"            \u0027docker\u0027,"},{"line_number":59,"context_line":"            self.params.get(\u0027restart_policy\u0027,"},{"line_number":60,"context_line":"                            \u0027always\u0027)"},{"line_number":61,"context_line":"        )"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def generate_tls(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"b7cbb3e8_a3656bb4","line":60,"range":{"start_line":60,"start_character":29,"end_line":60,"end_character":35},"in_reply_to":"358a4e7d_8e40aacd","updated":"2022-03-03 17:11:37.000000000","message":"Done","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":586,"context_line":"        if dimensions:"},{"line_number":587,"context_line":"            dimensions \u003d self.parse_dimensions(dimensions)"},{"line_number":588,"context_line":"            options.update(dimensions)"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"        if binds:"},{"line_number":591,"context_line":"            options[\u0027binds\u0027] \u003d binds"},{"line_number":592,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"b3158653_7a5dfad1","line":589,"updated":"2022-02-23 12:31:25.000000000","message":"Should we set the restart_policy explicitly to no?","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"c658e2b9f95739a4816ccc18d1dabde9033f9013","unresolved":false,"context_lines":[{"line_number":586,"context_line":"        if dimensions:"},{"line_number":587,"context_line":"            dimensions \u003d self.parse_dimensions(dimensions)"},{"line_number":588,"context_line":"            options.update(dimensions)"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"        if binds:"},{"line_number":591,"context_line":"            options[\u0027binds\u0027] \u003d binds"},{"line_number":592,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"633757ae_f63d831b","line":589,"in_reply_to":"18a30642_ee9ac146","updated":"2022-03-03 17:11:37.000000000","message":"Done","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"21aa8cbd4a1894db4f10c9a6f20ecef74653cbc2","unresolved":true,"context_lines":[{"line_number":586,"context_line":"        if dimensions:"},{"line_number":587,"context_line":"            dimensions \u003d self.parse_dimensions(dimensions)"},{"line_number":588,"context_line":"            options.update(dimensions)"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"        if binds:"},{"line_number":591,"context_line":"            options[\u0027binds\u0027] \u003d binds"},{"line_number":592,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"18a30642_ee9ac146","line":589,"in_reply_to":"b3158653_7a5dfad1","updated":"2022-02-23 14:29:07.000000000","message":"it\u0027s default value so we can but it would product same result as now","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":637,"context_line":"        self.changed \u003d True"},{"line_number":638,"context_line":"        options \u003d self.build_container_options()"},{"line_number":639,"context_line":"        self.dc.create_container(**options)"},{"line_number":640,"context_line":"        if not self.params.get(\u0027restart_policy\u0027) \u003d\u003d \u0027no\u0027:"},{"line_number":641,"context_line":"            self.changed |\u003d self.systemd.create_unit_file()"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    def recreate_or_restart_container(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"f5ea8419_97d745b1","line":640,"updated":"2022-02-23 12:31:25.000000000","message":"if self.params.get(\u0027restart_policy\u0027, \u0027no\u0027) !\u003d \u0027no\u0027:","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"ecc2c984f7cb6f46a752994c2c01779ebc48a39c","unresolved":false,"context_lines":[{"line_number":637,"context_line":"        self.changed \u003d True"},{"line_number":638,"context_line":"        options \u003d self.build_container_options()"},{"line_number":639,"context_line":"        self.dc.create_container(**options)"},{"line_number":640,"context_line":"        if not self.params.get(\u0027restart_policy\u0027) \u003d\u003d \u0027no\u0027:"},{"line_number":641,"context_line":"            self.changed |\u003d self.systemd.create_unit_file()"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    def recreate_or_restart_container(self):"}],"source_content_type":"text/x-python","patch_set":17,"id":"6a21f633_cca66813","line":640,"in_reply_to":"f5ea8419_97d745b1","updated":"2022-02-25 12:46:21.000000000","message":"Done","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":816,"context_line":"                    msg\u003d\"No such container: {} to stop\".format(name))"},{"line_number":817,"context_line":"        elif not container[\u0027Status\u0027].startswith(\u0027Exited \u0027):"},{"line_number":818,"context_line":"            self.changed \u003d True"},{"line_number":819,"context_line":"            if not self.params.get(\u0027restart_policy\u0027) \u003d\u003d \u0027no\u0027:"},{"line_number":820,"context_line":"                self.systemd.create_unit_file()"},{"line_number":821,"context_line":"                self.systemd.stop()"},{"line_number":822,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"5be2b4f7_53781212","line":819,"range":{"start_line":819,"start_character":12,"end_line":819,"end_character":61},"updated":"2022-02-23 12:31:25.000000000","message":"if self.params.get(\u0027restart_policy\u0027, \u0027no\u0027) !\u003d \u0027no\u0027:","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"ecc2c984f7cb6f46a752994c2c01779ebc48a39c","unresolved":false,"context_lines":[{"line_number":816,"context_line":"                    msg\u003d\"No such container: {} to stop\".format(name))"},{"line_number":817,"context_line":"        elif not container[\u0027Status\u0027].startswith(\u0027Exited \u0027):"},{"line_number":818,"context_line":"            self.changed \u003d True"},{"line_number":819,"context_line":"            if not self.params.get(\u0027restart_policy\u0027) \u003d\u003d \u0027no\u0027:"},{"line_number":820,"context_line":"                self.systemd.create_unit_file()"},{"line_number":821,"context_line":"                self.systemd.stop()"},{"line_number":822,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"d60cb446_3b9db2bf","line":819,"range":{"start_line":819,"start_character":12,"end_line":819,"end_character":61},"in_reply_to":"5be2b4f7_53781212","updated":"2022-02-25 12:46:21.000000000","message":"Done","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"23c8edd0754e803249e4fa6fe799985c7acadc83","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python3"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2015 Sam Yaple"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":46,"id":"1628a07c_e3d5f066","line":1,"updated":"2023-01-19 09:30:33.000000000","message":"Why do we need that?","commit_id":"bca690d02e4e5f171e3872b8206ca135a9dba9cb"},{"author":{"_account_id":35105,"name":"Ivan Halomi","username":"ihalomi","inactive":true},"change_message_id":"32442e35f3cfa750d23524d0ca0bf8d9cbfc9b35","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python3"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2015 Sam Yaple"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":46,"id":"4e451136_ca0064c6","line":1,"in_reply_to":"1628a07c_e3d5f066","updated":"2023-01-19 09:39:36.000000000","message":"We don\u0027t, removed.","commit_id":"bca690d02e4e5f171e3872b8206ca135a9dba9cb"}],"ansible/module_utils/kolla_systemd_worker.py":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"087d6fb2f851b15af71513611b5985c92ede4583","unresolved":true,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import datetime"},{"line_number":16,"context_line":"import dbus"},{"line_number":17,"context_line":"from jinja2 import Environment"},{"line_number":18,"context_line":"from jinja2.loaders import FileSystemLoader"},{"line_number":19,"context_line":"import os"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"b9cb2abc_db6de5f0","line":18,"range":{"start_line":17,"start_character":0,"end_line":18,"end_character":43},"updated":"2022-01-24 12:58:52.000000000","message":"Module not found on remote hosts. Can we do this without jinja to avoid the dependency? Python string formatting or templating should work.\n\nOtherwise, it can be installed with the docker SDK in the baremetal role.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import datetime"},{"line_number":16,"context_line":"import dbus"},{"line_number":17,"context_line":"from jinja2 import Environment"},{"line_number":18,"context_line":"from jinja2.loaders import FileSystemLoader"},{"line_number":19,"context_line":"import os"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"4933f405_b4bac2dd","line":18,"range":{"start_line":17,"start_character":0,"end_line":18,"end_character":43},"in_reply_to":"b9cb2abc_db6de5f0","updated":"2022-01-27 10:44:30.000000000","message":"Done","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"087d6fb2f851b15af71513611b5985c92ede4583","unresolved":true,"context_lines":[{"line_number":52,"context_line":"        )"},{"line_number":53,"context_line":"        return dbus.Interface(systemd1, \u0027org.freedesktop.systemd1.Manager\u0027)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def check_systemd(self, service_name\u003dNone):"},{"line_number":56,"context_line":"        \"\"\"Check if service file exists.\"\"\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        if not service_name:"}],"source_content_type":"text/x-python","patch_set":3,"id":"38331d3f_4949c656","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":21},"updated":"2022-01-24 12:58:52.000000000","message":"Can we not just check if the file exists?","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        )"},{"line_number":53,"context_line":"        return dbus.Interface(systemd1, \u0027org.freedesktop.systemd1.Manager\u0027)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def check_systemd(self, service_name\u003dNone):"},{"line_number":56,"context_line":"        \"\"\"Check if service file exists.\"\"\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        if not service_name:"}],"source_content_type":"text/x-python","patch_set":3,"id":"840af137_854ed439","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":21},"in_reply_to":"38331d3f_4949c656","updated":"2022-01-27 10:44:30.000000000","message":"Done","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"087d6fb2f851b15af71513611b5985c92ede4583","unresolved":true,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        return False"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def start_container(self):"},{"line_number":71,"context_line":"        return self.perform_action("},{"line_number":72,"context_line":"            \u0027StartUnit\u0027,"},{"line_number":73,"context_line":"            self.service_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"968d8435_32e52c40","line":70,"updated":"2022-01-24 12:58:52.000000000","message":"We would also need to enable it, so that it starts on boot.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        return False"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def start_container(self):"},{"line_number":71,"context_line":"        return self.perform_action("},{"line_number":72,"context_line":"            \u0027StartUnit\u0027,"},{"line_number":73,"context_line":"            self.service_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"b912af55_d25f6013","line":70,"in_reply_to":"968d8435_32e52c40","updated":"2022-01-27 10:44:30.000000000","message":"Unit files are already being enabled right after their creation.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"087d6fb2f851b15af71513611b5985c92ede4583","unresolved":true,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        container_dict \u003d dict("},{"line_number":121,"context_line":"            name\u003dself.name,"},{"line_number":122,"context_line":"            id\u003dcontainer_info.get(\u0027Id\u0027),"},{"line_number":123,"context_line":"            engine\u003dself.engine"},{"line_number":124,"context_line":"        )"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        file_content \u003d template.render("}],"source_content_type":"text/x-python","patch_set":3,"id":"8e6188f2_06ca568f","line":123,"range":{"start_line":122,"start_character":12,"end_line":123,"end_character":30},"updated":"2022-01-24 12:58:52.000000000","message":"Currently unused. Do we need the ID? Name is simpler, and avoids changing the unit file.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        container_dict \u003d dict("},{"line_number":121,"context_line":"            name\u003dself.name,"},{"line_number":122,"context_line":"            id\u003dcontainer_info.get(\u0027Id\u0027),"},{"line_number":123,"context_line":"            engine\u003dself.engine"},{"line_number":124,"context_line":"        )"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        file_content \u003d template.render("}],"source_content_type":"text/x-python","patch_set":3,"id":"d8358e85_3ca61b60","line":123,"range":{"start_line":122,"start_character":12,"end_line":123,"end_character":30},"in_reply_to":"8e6188f2_06ca568f","updated":"2022-01-27 10:44:30.000000000","message":"ID was used to emulate default podman-generated unit file structure but other than that it\u0027s not needed. Same goes for the timestamp inside the unit file.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"087d6fb2f851b15af71513611b5985c92ede4583","unresolved":true,"context_lines":[{"line_number":128,"context_line":"        )"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        with open(self.sysdir + self.service_name, \u0027w\u0027) as f:"},{"line_number":131,"context_line":"            f.write(file_content)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        self.reload()"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"43534d59_0cfd9e42","line":131,"updated":"2022-01-24 12:58:52.000000000","message":"Ideally we\u0027d get info about changed content etc. Maybe it would be simpler to just do it as a template task? It would handle permissions, ownership etc.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":true,"context_lines":[{"line_number":128,"context_line":"        )"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        with open(self.sysdir + self.service_name, \u0027w\u0027) as f:"},{"line_number":131,"context_line":"            f.write(file_content)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        self.reload()"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"923d32d0_a7faa5e1","line":131,"in_reply_to":"43534d59_0cfd9e42","updated":"2022-01-27 10:44:30.000000000","message":"Content change check added. I would keep the templating as is for now, so systemd functionality is \"all in one place\". In the future, we can then refactor it into the tasks if it proves to be beneficial or necessary.","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"e251f294a32fc0c6ea748af076fc0b618b31604a","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        )"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        with open(self.sysdir + self.service_name, \u0027w\u0027) as f:"},{"line_number":131,"context_line":"            f.write(file_content)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"        self.reload()"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"cd2d1875_d5caafa9","line":131,"in_reply_to":"923d32d0_a7faa5e1","updated":"2022-02-17 12:30:16.000000000","message":"Done","commit_id":"6c35a5cd2ee398cd397b56a057ea761ad6e8428b"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"TEMPLATE \u003d \"\"\""},{"line_number":22,"context_line":"# ${name}-container.service"},{"line_number":23,"context_line":"# autogenerated by Kolla-Ansible"},{"line_number":24,"context_line":"# ${timestamp}"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"32644639_2ba47273","line":22,"updated":"2022-01-31 11:00:39.000000000","message":"I suggest we prefix these with \"kolla-\"","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"TEMPLATE \u003d \"\"\""},{"line_number":22,"context_line":"# ${name}-container.service"},{"line_number":23,"context_line":"# autogenerated by Kolla-Ansible"},{"line_number":24,"context_line":"# ${timestamp}"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"b1d85926_c5f15eea","line":22,"in_reply_to":"32644639_2ba47273","updated":"2022-02-07 10:10:04.000000000","message":"Done","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"[Service]"},{"line_number":32,"context_line":"EnvironmentFile\u003d-/etc/environment"},{"line_number":33,"context_line":"ExecStartPre\u003d-/usr/bin/docker stop ${name}"},{"line_number":34,"context_line":"ExecStart\u003d/usr/bin/docker start -a ${name}"},{"line_number":35,"context_line":"ExecStopPost\u003d-/usr/bin/docker stop ${name}"},{"line_number":36,"context_line":"KillMode\u003dnone"}],"source_content_type":"text/x-python","patch_set":4,"id":"aec600a3_47a6315e","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":42},"updated":"2022-01-31 11:00:39.000000000","message":"no need to do that each time - if the container was started outside of systemd, this should be handled elsewhere and it\u0027s fine for systemd to fail starting this","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"[Service]"},{"line_number":32,"context_line":"EnvironmentFile\u003d-/etc/environment"},{"line_number":33,"context_line":"ExecStartPre\u003d-/usr/bin/docker stop ${name}"},{"line_number":34,"context_line":"ExecStart\u003d/usr/bin/docker start -a ${name}"},{"line_number":35,"context_line":"ExecStopPost\u003d-/usr/bin/docker stop ${name}"},{"line_number":36,"context_line":"KillMode\u003dnone"}],"source_content_type":"text/x-python","patch_set":4,"id":"bdac2b0f_f05eefdb","line":33,"range":{"start_line":33,"start_character":0,"end_line":33,"end_character":42},"in_reply_to":"aec600a3_47a6315e","updated":"2022-02-07 10:10:04.000000000","message":"Done","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":32,"context_line":"EnvironmentFile\u003d-/etc/environment"},{"line_number":33,"context_line":"ExecStartPre\u003d-/usr/bin/docker stop ${name}"},{"line_number":34,"context_line":"ExecStart\u003d/usr/bin/docker start -a ${name}"},{"line_number":35,"context_line":"ExecStopPost\u003d-/usr/bin/docker stop ${name}"},{"line_number":36,"context_line":"KillMode\u003dnone"},{"line_number":37,"context_line":"Restart\u003don-failure"},{"line_number":38,"context_line":"RestartSec\u003d10s"},{"line_number":39,"context_line":"TimeoutStartSec\u003d120"}],"source_content_type":"text/x-python","patch_set":4,"id":"bd1666fb_d4441863","line":36,"range":{"start_line":35,"start_character":0,"end_line":36,"end_character":13},"updated":"2022-01-31 11:00:39.000000000","message":"these might hide issues stopping containers","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"e251f294a32fc0c6ea748af076fc0b618b31604a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"EnvironmentFile\u003d-/etc/environment"},{"line_number":33,"context_line":"ExecStartPre\u003d-/usr/bin/docker stop ${name}"},{"line_number":34,"context_line":"ExecStart\u003d/usr/bin/docker start -a ${name}"},{"line_number":35,"context_line":"ExecStopPost\u003d-/usr/bin/docker stop ${name}"},{"line_number":36,"context_line":"KillMode\u003dnone"},{"line_number":37,"context_line":"Restart\u003don-failure"},{"line_number":38,"context_line":"RestartSec\u003d10s"},{"line_number":39,"context_line":"TimeoutStartSec\u003d120"}],"source_content_type":"text/x-python","patch_set":4,"id":"94ec0ff0_2abf5802","line":36,"range":{"start_line":35,"start_character":0,"end_line":36,"end_character":13},"in_reply_to":"bd1666fb_d4441863","updated":"2022-02-17 12:30:16.000000000","message":"Done","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":34,"context_line":"ExecStart\u003d/usr/bin/docker start -a ${name}"},{"line_number":35,"context_line":"ExecStopPost\u003d-/usr/bin/docker stop ${name}"},{"line_number":36,"context_line":"KillMode\u003dnone"},{"line_number":37,"context_line":"Restart\u003don-failure"},{"line_number":38,"context_line":"RestartSec\u003d10s"},{"line_number":39,"context_line":"TimeoutStartSec\u003d120"},{"line_number":40,"context_line":"TimeoutStopSec\u003d15"}],"source_content_type":"text/x-python","patch_set":4,"id":"4de5b0a1_b696907e","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":18},"updated":"2022-01-31 11:00:39.000000000","message":"this should propagate from restart_policy; btw, \"unless-stopped\" is the kolla default which differs from \"on-failure\"","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":false,"context_lines":[{"line_number":34,"context_line":"ExecStart\u003d/usr/bin/docker start -a ${name}"},{"line_number":35,"context_line":"ExecStopPost\u003d-/usr/bin/docker stop ${name}"},{"line_number":36,"context_line":"KillMode\u003dnone"},{"line_number":37,"context_line":"Restart\u003don-failure"},{"line_number":38,"context_line":"RestartSec\u003d10s"},{"line_number":39,"context_line":"TimeoutStartSec\u003d120"},{"line_number":40,"context_line":"TimeoutStopSec\u003d15"}],"source_content_type":"text/x-python","patch_set":4,"id":"c7748036_9c7f39b6","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":18},"in_reply_to":"4de5b0a1_b696907e","updated":"2022-02-07 10:10:04.000000000","message":"Done","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class SystemdWorker(object):"},{"line_number":48,"context_line":"    def __init__(self, name, engine):"},{"line_number":49,"context_line":"        # systemd is not needed"},{"line_number":50,"context_line":"        if not name:"},{"line_number":51,"context_line":"            return None"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        # container info"},{"line_number":54,"context_line":"        self.name \u003d name"}],"source_content_type":"text/x-python","patch_set":4,"id":"f3f6a0f8_78fa5419","line":51,"range":{"start_line":49,"start_character":0,"end_line":51,"end_character":23},"updated":"2022-01-31 11:00:39.000000000","message":"this does not seem to be the case","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class SystemdWorker(object):"},{"line_number":48,"context_line":"    def __init__(self, name, engine):"},{"line_number":49,"context_line":"        # systemd is not needed"},{"line_number":50,"context_line":"        if not name:"},{"line_number":51,"context_line":"            return None"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        # container info"},{"line_number":54,"context_line":"        self.name \u003d name"}],"source_content_type":"text/x-python","patch_set":4,"id":"49188139_59648511","line":51,"range":{"start_line":49,"start_character":0,"end_line":51,"end_character":23},"in_reply_to":"f3f6a0f8_78fa5419","updated":"2022-02-07 10:10:04.000000000","message":"Done","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        # systemd"},{"line_number":59,"context_line":"        self.manager \u003d self.get_manager()"},{"line_number":60,"context_line":"        self.job_mode \u003d \u0027replace\u0027"},{"line_number":61,"context_line":"        self.sysdir \u003d \u0027/etc/systemd/system/\u0027"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # templating"}],"source_content_type":"text/x-python","patch_set":4,"id":"8531acd8_1ebc0a16","line":60,"updated":"2022-01-31 11:00:39.000000000","message":"any comment on what this does?","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"e251f294a32fc0c6ea748af076fc0b618b31604a","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        # systemd"},{"line_number":59,"context_line":"        self.manager \u003d self.get_manager()"},{"line_number":60,"context_line":"        self.job_mode \u003d \u0027replace\u0027"},{"line_number":61,"context_line":"        self.sysdir \u003d \u0027/etc/systemd/system/\u0027"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # templating"}],"source_content_type":"text/x-python","patch_set":4,"id":"b6c5a7a0_7dc2d3c9","line":60,"in_reply_to":"6c54f2c1_6a4f01e7","updated":"2022-02-17 12:30:16.000000000","message":"Ack","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":true,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        # systemd"},{"line_number":59,"context_line":"        self.manager \u003d self.get_manager()"},{"line_number":60,"context_line":"        self.job_mode \u003d \u0027replace\u0027"},{"line_number":61,"context_line":"        self.sysdir \u003d \u0027/etc/systemd/system/\u0027"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # templating"}],"source_content_type":"text/x-python","patch_set":4,"id":"6c54f2c1_6a4f01e7","line":60,"in_reply_to":"8531acd8_1ebc0a16","updated":"2022-02-07 10:10:04.000000000","message":"From Dbus documentation - The mode needs to be one of replace, fail, isolate, ignore-dependencies, ignore-requirements. If \"replace\" the call will start the unit and its dependencies, possibly replacing already queued jobs that conflict with this. If \"fail\" the call will start the unit and its dependencies, but will fail if this would change an already queued job. If \"isolate\" the call will start the unit in question and terminate all units that aren\u0027t dependencies of it. If \"ignore-dependencies\" it will start a unit but ignore all its dependencies. If \"ignore-requirements\" it will start a unit but only ignore the requirement dependencies.\n\nSo we chose replace as the best option.","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def reload(self):"},{"line_number":99,"context_line":"        getattr(self.manager, \u0027Reload\u0027)()"},{"line_number":100,"context_line":"        self.perform_action(\u0027EnableUnitFiles\u0027,"},{"line_number":101,"context_line":"                            [self.service_name], False, True)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def perform_action(self, function, *args):"},{"line_number":104,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"d3d9611f_44a8441b","line":101,"range":{"start_line":100,"start_character":8,"end_line":101,"end_character":61},"updated":"2022-01-31 11:00:39.000000000","message":"why does reload also enable them?","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def reload(self):"},{"line_number":99,"context_line":"        getattr(self.manager, \u0027Reload\u0027)()"},{"line_number":100,"context_line":"        self.perform_action(\u0027EnableUnitFiles\u0027,"},{"line_number":101,"context_line":"                            [self.service_name], False, True)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    def perform_action(self, function, *args):"},{"line_number":104,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"07c3555c_2d10eca0","line":101,"range":{"start_line":100,"start_character":8,"end_line":101,"end_character":61},"in_reply_to":"d3d9611f_44a8441b","updated":"2022-02-07 10:10:04.000000000","message":"Done","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"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":"6621a2bb5fcfea90f5c6611fcdf1d5231336f99f","unresolved":true,"context_lines":[{"line_number":119,"context_line":"                curr_content \u003d f.read()"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"                # return whether there was change in the unit file"},{"line_number":122,"context_line":"                return curr_content !\u003d new_content"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        return True"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"764f5efc_d8df6a75","line":122,"updated":"2022-01-31 11:00:39.000000000","message":"this will always return True as the timestamp will differ","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"52b4960e7f225a3f45e3957a2249aeb3226fdf76","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                curr_content \u003d f.read()"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"                # return whether there was change in the unit file"},{"line_number":122,"context_line":"                return curr_content !\u003d new_content"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        return True"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"2b5bae4a_684d7440","line":122,"in_reply_to":"764f5efc_d8df6a75","updated":"2022-02-07 10:10:04.000000000","message":"Done","commit_id":"4351d049f086c19da4ad2f0b8ba0aa28327d51ce"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"TEMPLATE \u003d \"\"\""},{"line_number":22,"context_line":"# kolla-${name}-container.service"},{"line_number":23,"context_line":"# autogenerated by Kolla-Ansible"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"[Unit]"}],"source_content_type":"text/x-python","patch_set":17,"id":"cca131e2_2af04b3e","line":22,"range":{"start_line":22,"start_character":2,"end_line":22,"end_character":33},"updated":"2022-02-23 12:31:25.000000000","message":"${service_name}","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"ecc2c984f7cb6f46a752994c2c01779ebc48a39c","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"TEMPLATE \u003d \"\"\""},{"line_number":22,"context_line":"# kolla-${name}-container.service"},{"line_number":23,"context_line":"# autogenerated by Kolla-Ansible"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"[Unit]"}],"source_content_type":"text/x-python","patch_set":17,"id":"23f8e931_f4b31717","line":22,"range":{"start_line":22,"start_character":2,"end_line":22,"end_character":33},"in_reply_to":"cca131e2_2af04b3e","updated":"2022-02-25 12:46:21.000000000","message":"Done","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":23,"context_line":"# autogenerated by Kolla-Ansible"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"[Unit]"},{"line_number":26,"context_line":"Description\u003ddocker kolla-${name}-container.service"},{"line_number":27,"context_line":"After\u003ddocker.service"},{"line_number":28,"context_line":"Requires\u003ddocker.service"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"9e211402_2dc83951","line":26,"range":{"start_line":26,"start_character":19,"end_line":26,"end_character":50},"updated":"2022-02-23 12:31:25.000000000","message":"${service_name}","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"ecc2c984f7cb6f46a752994c2c01779ebc48a39c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"# autogenerated by Kolla-Ansible"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"[Unit]"},{"line_number":26,"context_line":"Description\u003ddocker kolla-${name}-container.service"},{"line_number":27,"context_line":"After\u003ddocker.service"},{"line_number":28,"context_line":"Requires\u003ddocker.service"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"9df3ce57_16be14e1","line":26,"range":{"start_line":26,"start_character":19,"end_line":26,"end_character":50},"in_reply_to":"9e211402_2dc83951","updated":"2022-02-25 12:46:21.000000000","message":"Done","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":30,"context_line":"[Service]"},{"line_number":31,"context_line":"EnvironmentFile\u003d-/etc/environment"},{"line_number":32,"context_line":"ExecStart\u003d/usr/bin/docker start -a ${name}"},{"line_number":33,"context_line":"ExecStop\u003d/usr/bin/docker stop ${name}"},{"line_number":34,"context_line":"KillMode\u003dcontrol-group"},{"line_number":35,"context_line":"Restart\u003d${restart_policy}"},{"line_number":36,"context_line":"RestartSec\u003d${restart_sec}"}],"source_content_type":"text/x-python","patch_set":17,"id":"9db357a6_e8a98f92","line":33,"range":{"start_line":33,"start_character":29,"end_line":33,"end_character":30},"updated":"2022-02-23 12:31:25.000000000","message":"we should support passing -t here, which maps to params.graceful_timeout","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"ecc2c984f7cb6f46a752994c2c01779ebc48a39c","unresolved":false,"context_lines":[{"line_number":30,"context_line":"[Service]"},{"line_number":31,"context_line":"EnvironmentFile\u003d-/etc/environment"},{"line_number":32,"context_line":"ExecStart\u003d/usr/bin/docker start -a ${name}"},{"line_number":33,"context_line":"ExecStop\u003d/usr/bin/docker stop ${name}"},{"line_number":34,"context_line":"KillMode\u003dcontrol-group"},{"line_number":35,"context_line":"Restart\u003d${restart_policy}"},{"line_number":36,"context_line":"RestartSec\u003d${restart_sec}"}],"source_content_type":"text/x-python","patch_set":17,"id":"ead888d3_b944a4e4","line":33,"range":{"start_line":33,"start_character":29,"end_line":33,"end_character":30},"in_reply_to":"9db357a6_e8a98f92","updated":"2022-02-25 12:46:21.000000000","message":"Done","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":33,"context_line":"ExecStop\u003d/usr/bin/docker stop ${name}"},{"line_number":34,"context_line":"KillMode\u003dcontrol-group"},{"line_number":35,"context_line":"Restart\u003d${restart_policy}"},{"line_number":36,"context_line":"RestartSec\u003d${restart_sec}"},{"line_number":37,"context_line":"TimeoutStartSec\u003d${start_sec}"},{"line_number":38,"context_line":"TimeoutStopSec\u003d${stop_sec}"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"a60318ca_9d7eca31","line":36,"updated":"2022-02-23 12:31:25.000000000","message":"I guess we lose support for restart_retries.","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"ecc2c984f7cb6f46a752994c2c01779ebc48a39c","unresolved":false,"context_lines":[{"line_number":33,"context_line":"ExecStop\u003d/usr/bin/docker stop ${name}"},{"line_number":34,"context_line":"KillMode\u003dcontrol-group"},{"line_number":35,"context_line":"Restart\u003d${restart_policy}"},{"line_number":36,"context_line":"RestartSec\u003d${restart_sec}"},{"line_number":37,"context_line":"TimeoutStartSec\u003d${start_sec}"},{"line_number":38,"context_line":"TimeoutStopSec\u003d${stop_sec}"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"13be6b1d_f4012c77","line":36,"in_reply_to":"a60318ca_9d7eca31","updated":"2022-02-25 12:46:21.000000000","message":"Reworked to use retries.","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class SystemdWorker(object):"},{"line_number":46,"context_line":"    def __init__(self, name, engine, restart_policy\u003d\u0027always\u0027, restart_sec\u003d10,"},{"line_number":47,"context_line":"                 start_sec\u003d120, stop_sec\u003d15):"},{"line_number":48,"context_line":"        # systemd is not needed"},{"line_number":49,"context_line":"        if not name:"}],"source_content_type":"text/x-python","patch_set":17,"id":"74ae5769_2425e27d","line":46,"range":{"start_line":46,"start_character":74,"end_line":46,"end_character":76},"updated":"2022-02-23 12:31:25.000000000","message":"Why so much lower for a restart than a start?","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"ecc2c984f7cb6f46a752994c2c01779ebc48a39c","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class SystemdWorker(object):"},{"line_number":46,"context_line":"    def __init__(self, name, engine, restart_policy\u003d\u0027always\u0027, restart_sec\u003d10,"},{"line_number":47,"context_line":"                 start_sec\u003d120, stop_sec\u003d15):"},{"line_number":48,"context_line":"        # systemd is not needed"},{"line_number":49,"context_line":"        if not name:"}],"source_content_type":"text/x-python","patch_set":17,"id":"d48a2a47_3f94617c","line":46,"range":{"start_line":46,"start_character":74,"end_line":46,"end_character":76},"in_reply_to":"74ae5769_2425e27d","updated":"2022-02-25 12:46:21.000000000","message":"Values were taken from default module params and and slightly misinterpreted. This was corrected in the new patchset. Although now, the start and restart limits are same as client_timeout.","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class SystemdWorker(object):"},{"line_number":46,"context_line":"    def __init__(self, name, engine, restart_policy\u003d\u0027always\u0027, restart_sec\u003d10,"},{"line_number":47,"context_line":"                 start_sec\u003d120, stop_sec\u003d15):"},{"line_number":48,"context_line":"        # systemd is not needed"},{"line_number":49,"context_line":"        if not name:"},{"line_number":50,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":17,"id":"f21a7b5e_c7116824","line":47,"range":{"start_line":47,"start_character":32,"end_line":47,"end_character":40},"updated":"2022-02-23 12:31:25.000000000","message":"should this come from params.graceful_timeout?","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"ecc2c984f7cb6f46a752994c2c01779ebc48a39c","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class SystemdWorker(object):"},{"line_number":46,"context_line":"    def __init__(self, name, engine, restart_policy\u003d\u0027always\u0027, restart_sec\u003d10,"},{"line_number":47,"context_line":"                 start_sec\u003d120, stop_sec\u003d15):"},{"line_number":48,"context_line":"        # systemd is not needed"},{"line_number":49,"context_line":"        if not name:"},{"line_number":50,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":17,"id":"944d2c6c_6cab5f70","line":47,"range":{"start_line":47,"start_character":32,"end_line":47,"end_character":40},"in_reply_to":"f21a7b5e_c7116824","updated":"2022-02-25 12:46:21.000000000","message":"Done","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":190,"context_line":"        while True:"},{"line_number":191,"context_line":"            if self.get_unit_state() \u003d\u003d \u0027running\u0027:"},{"line_number":192,"context_line":"                return True"},{"line_number":193,"context_line":"            elif elapsed \u003e timeout and not restarted:"},{"line_number":194,"context_line":"                self.restart()"},{"line_number":195,"context_line":"                elapsed \u003d 0"},{"line_number":196,"context_line":"            elif elapsed \u003e timeout and restarted:"},{"line_number":197,"context_line":"                return False"},{"line_number":198,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"592d6aec_745af033","line":195,"range":{"start_line":193,"start_character":12,"end_line":195,"end_character":27},"updated":"2022-02-23 12:31:25.000000000","message":"Hmm, why this sneaky restart?","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":33708,"name":"Ivan Halomi","username":"halomiva","inactive":true},"change_message_id":"21aa8cbd4a1894db4f10c9a6f20ecef74653cbc2","unresolved":true,"context_lines":[{"line_number":190,"context_line":"        while True:"},{"line_number":191,"context_line":"            if self.get_unit_state() \u003d\u003d \u0027running\u0027:"},{"line_number":192,"context_line":"                return True"},{"line_number":193,"context_line":"            elif elapsed \u003e timeout and not restarted:"},{"line_number":194,"context_line":"                self.restart()"},{"line_number":195,"context_line":"                elapsed \u003d 0"},{"line_number":196,"context_line":"            elif elapsed \u003e timeout and restarted:"},{"line_number":197,"context_line":"                return False"},{"line_number":198,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"8f76764c_6073c0ca","line":195,"range":{"start_line":193,"start_character":12,"end_line":195,"end_character":27},"in_reply_to":"592d6aec_745af033","updated":"2022-02-23 14:29:07.000000000","message":"Sometimes first restart fails so it is there to make sure it restarts the service","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5c0dd77e5c297e56de6768ce34bd74dfad71bc67","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        while True:"},{"line_number":191,"context_line":"            if self.get_unit_state() \u003d\u003d \u0027running\u0027:"},{"line_number":192,"context_line":"                return True"},{"line_number":193,"context_line":"            elif elapsed \u003e timeout and not restarted:"},{"line_number":194,"context_line":"                self.restart()"},{"line_number":195,"context_line":"                elapsed \u003d 0"},{"line_number":196,"context_line":"            elif elapsed \u003e timeout and restarted:"},{"line_number":197,"context_line":"                return False"},{"line_number":198,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"bca53f86_4afd64cd","line":195,"range":{"start_line":193,"start_character":12,"end_line":195,"end_character":27},"in_reply_to":"888fc815_3985289f","updated":"2022-03-17 10:16:11.000000000","message":"Done","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"c658e2b9f95739a4816ccc18d1dabde9033f9013","unresolved":true,"context_lines":[{"line_number":190,"context_line":"        while True:"},{"line_number":191,"context_line":"            if self.get_unit_state() \u003d\u003d \u0027running\u0027:"},{"line_number":192,"context_line":"                return True"},{"line_number":193,"context_line":"            elif elapsed \u003e timeout and not restarted:"},{"line_number":194,"context_line":"                self.restart()"},{"line_number":195,"context_line":"                elapsed \u003d 0"},{"line_number":196,"context_line":"            elif elapsed \u003e timeout and restarted:"},{"line_number":197,"context_line":"                return False"},{"line_number":198,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"da14bddc_364970d6","line":195,"range":{"start_line":193,"start_character":12,"end_line":195,"end_character":27},"in_reply_to":"8f76764c_6073c0ca","updated":"2022-03-03 17:11:37.000000000","message":"After some testing I have found out that it\u0027s in fact not really needed. But I would leave the decision up to you, should we keep it simple or leave the restart there just to be sure?","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"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":"256683b87aefbfeb9d97fa3313795592b2709795","unresolved":true,"context_lines":[{"line_number":190,"context_line":"        while True:"},{"line_number":191,"context_line":"            if self.get_unit_state() \u003d\u003d \u0027running\u0027:"},{"line_number":192,"context_line":"                return True"},{"line_number":193,"context_line":"            elif elapsed \u003e timeout and not restarted:"},{"line_number":194,"context_line":"                self.restart()"},{"line_number":195,"context_line":"                elapsed \u003d 0"},{"line_number":196,"context_line":"            elif elapsed \u003e timeout and restarted:"},{"line_number":197,"context_line":"                return False"},{"line_number":198,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":17,"id":"888fc815_3985289f","line":195,"range":{"start_line":193,"start_character":12,"end_line":195,"end_character":27},"in_reply_to":"da14bddc_364970d6","updated":"2022-03-16 15:56:05.000000000","message":"Keep it simple.","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"eacd0ef07c4c1eb5b4fdff26f9510bd923693c70","unresolved":true,"context_lines":[{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import dbus"},{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":"from string import Template"},{"line_number":18,"context_line":"from time import sleep"}],"source_content_type":"text/x-python","patch_set":25,"id":"b9584fce_589551ab","line":15,"updated":"2022-09-07 09:57:26.000000000","message":"This isn\u0027t a builtin module as opposed to the other three, so it should go into its own block after them. I also wonder whether we can expect it to be available for any distro or whether we would need to make sure it is installed. We will mostly want the distro version though, so likely no use in adding it to requirements.txt?","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"8745a536749007aeb880035310178a73cf7a1998","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import dbus"},{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":"from string import Template"},{"line_number":18,"context_line":"from time import sleep"}],"source_content_type":"text/x-python","patch_set":25,"id":"2429ba5b_aaaf3105","line":15,"in_reply_to":"29f38d7d_274d2d91","updated":"2022-10-17 09:57:45.000000000","message":"Done","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"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":"bc90716084794064a8065af710b0197386943cd1","unresolved":true,"context_lines":[{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import dbus"},{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":"from string import Template"},{"line_number":18,"context_line":"from time import sleep"}],"source_content_type":"text/x-python","patch_set":25,"id":"889179a8_b411e595","line":15,"in_reply_to":"3b7e0868_68c175fc","updated":"2022-09-10 20:40:13.000000000","message":"Makes sense, although I believe it is going to just be there because of systemd and python availability. We could also check for systemd availability, for sanity.","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"ce6cc3cbe916ff35f991a4d39bde0ff669ed7bfb","unresolved":true,"context_lines":[{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import dbus"},{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":"from string import Template"},{"line_number":18,"context_line":"from time import sleep"}],"source_content_type":"text/x-python","patch_set":25,"id":"29f38d7d_274d2d91","line":15,"in_reply_to":"54efc662_af6fd21f","updated":"2022-09-23 13:27:03.000000000","message":"I have implemented dbus-python installation on the latest patchest (31). I know it probably should be in the Openstack collection but I will leave it here for evaluation and move it before the merge, in the future.","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"b9f2e5cc14552315e88546d050be37da9ec4734e","unresolved":true,"context_lines":[{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import dbus"},{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":"from string import Template"},{"line_number":18,"context_line":"from time import sleep"}],"source_content_type":"text/x-python","patch_set":25,"id":"54efc662_af6fd21f","line":15,"in_reply_to":"889179a8_b411e595","updated":"2022-09-13 12:12:16.000000000","message":"I\u0027ve added availability checks for systemd and dbus. For dbus-python installation I still need som time to sort out required packages.","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"89403d4f5a56b70ea61ab414457c3cc91a28bd15","unresolved":true,"context_lines":[{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import dbus"},{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":"from string import Template"},{"line_number":18,"context_line":"from time import sleep"}],"source_content_type":"text/x-python","patch_set":25,"id":"3b7e0868_68c175fc","line":15,"in_reply_to":"8a14a529_dcabf133","updated":"2022-09-09 08:32:16.000000000","message":"We already check the docker SDK in ansible/roles/prechecks/tasks/package_checks.yml , maybe add the dbus check there?","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"08467fdaaed8da65448380f804d6499aed209ed8","unresolved":true,"context_lines":[{"line_number":12,"context_line":"# See the License for the specific language governing permissions and"},{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"import dbus"},{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":"from string import Template"},{"line_number":18,"context_line":"from time import sleep"}],"source_content_type":"text/x-python","patch_set":25,"id":"8a14a529_dcabf133","line":15,"in_reply_to":"b9584fce_589551ab","updated":"2022-09-07 13:42:25.000000000","message":"Maybe we could create tasks in bootstrap-containers to check for it and install it, if it\u0027s missing. This way we can keep the distro version, if possible.","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"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":"3314528d7ba3513ee845572ba31a30278d975628","unresolved":true,"context_lines":[{"line_number":19,"context_line":"import dbus"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"TEMPLATE \u003d \"\"\""},{"line_number":23,"context_line":"# ${service_name}"},{"line_number":24,"context_line":"# autogenerated by Kolla-Ansible"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"b6483379_26d189af","line":22,"updated":"2022-09-10 20:15:03.000000000","message":"need to trim leading newlines","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"60e361c5adcffbf0414b49cd161a2cace069daef","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import dbus"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"TEMPLATE \u003d \"\"\""},{"line_number":23,"context_line":"# ${service_name}"},{"line_number":24,"context_line":"# autogenerated by Kolla-Ansible"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"f6572598_3f3fa58c","line":22,"in_reply_to":"b6483379_26d189af","updated":"2022-09-12 15:24:32.000000000","message":"Done","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"bc90716084794064a8065af710b0197386943cd1","unresolved":true,"context_lines":[{"line_number":27,"context_line":"Description\u003ddocker ${service_name}"},{"line_number":28,"context_line":"After\u003ddocker.service"},{"line_number":29,"context_line":"Requires\u003ddocker.service"},{"line_number":30,"context_line":"StartLimitInterval\u003d${restart_timeout}"},{"line_number":31,"context_line":"StartLimitBurst\u003d${restart_retries}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[Service]"}],"source_content_type":"text/x-python","patch_set":27,"id":"a9c91435_9b2dfc23","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":18},"updated":"2022-09-10 20:40:13.000000000","message":"this should be StartLimitIntervalSec","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"60e361c5adcffbf0414b49cd161a2cace069daef","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Description\u003ddocker ${service_name}"},{"line_number":28,"context_line":"After\u003ddocker.service"},{"line_number":29,"context_line":"Requires\u003ddocker.service"},{"line_number":30,"context_line":"StartLimitInterval\u003d${restart_timeout}"},{"line_number":31,"context_line":"StartLimitBurst\u003d${restart_retries}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[Service]"}],"source_content_type":"text/x-python","patch_set":27,"id":"93f0a4d7_f6ac17b0","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":18},"in_reply_to":"a9c91435_9b2dfc23","updated":"2022-09-12 15:24:32.000000000","message":"Done","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"3314528d7ba3513ee845572ba31a30278d975628","unresolved":true,"context_lines":[{"line_number":31,"context_line":"StartLimitBurst\u003d${restart_retries}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[Service]"},{"line_number":34,"context_line":"EnvironmentFile\u003d-/etc/environment"},{"line_number":35,"context_line":"ExecStart\u003d/usr/bin/docker start -a ${name}"},{"line_number":36,"context_line":"ExecStop\u003d/usr/bin/docker stop ${name} -t ${graceful_timeout}"},{"line_number":37,"context_line":"KillMode\u003dcontrol-group"}],"source_content_type":"text/x-python","patch_set":27,"id":"60908ccc_216021d3","line":34,"updated":"2022-09-10 20:15:03.000000000","message":"this is not something that we use/control so I would not add it here","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"60e361c5adcffbf0414b49cd161a2cace069daef","unresolved":false,"context_lines":[{"line_number":31,"context_line":"StartLimitBurst\u003d${restart_retries}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"[Service]"},{"line_number":34,"context_line":"EnvironmentFile\u003d-/etc/environment"},{"line_number":35,"context_line":"ExecStart\u003d/usr/bin/docker start -a ${name}"},{"line_number":36,"context_line":"ExecStop\u003d/usr/bin/docker stop ${name} -t ${graceful_timeout}"},{"line_number":37,"context_line":"KillMode\u003dcontrol-group"}],"source_content_type":"text/x-python","patch_set":27,"id":"cb704c25_8f721768","line":34,"in_reply_to":"60908ccc_216021d3","updated":"2022-09-12 15:24:32.000000000","message":"Done","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"3314528d7ba3513ee845572ba31a30278d975628","unresolved":true,"context_lines":[{"line_number":34,"context_line":"EnvironmentFile\u003d-/etc/environment"},{"line_number":35,"context_line":"ExecStart\u003d/usr/bin/docker start -a ${name}"},{"line_number":36,"context_line":"ExecStop\u003d/usr/bin/docker stop ${name} -t ${graceful_timeout}"},{"line_number":37,"context_line":"KillMode\u003dcontrol-group"},{"line_number":38,"context_line":"Restart\u003d${restart_policy}"},{"line_number":39,"context_line":"RestartSec\u003d${restart_duration}"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"1c6f891e_7672a7d3","line":37,"updated":"2022-09-10 20:15:03.000000000","message":"this is the default, no need to set; also, ExecStop handles stopping already","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"60e361c5adcffbf0414b49cd161a2cace069daef","unresolved":false,"context_lines":[{"line_number":34,"context_line":"EnvironmentFile\u003d-/etc/environment"},{"line_number":35,"context_line":"ExecStart\u003d/usr/bin/docker start -a ${name}"},{"line_number":36,"context_line":"ExecStop\u003d/usr/bin/docker stop ${name} -t ${graceful_timeout}"},{"line_number":37,"context_line":"KillMode\u003dcontrol-group"},{"line_number":38,"context_line":"Restart\u003d${restart_policy}"},{"line_number":39,"context_line":"RestartSec\u003d${restart_duration}"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"dd901d6b_cef113ee","line":37,"in_reply_to":"1c6f891e_7672a7d3","updated":"2022-09-12 15:24:32.000000000","message":"Done","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"bc90716084794064a8065af710b0197386943cd1","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[Install]"},{"line_number":42,"context_line":"WantedBy\u003dmulti-user.target"},{"line_number":43,"context_line":"\"\"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class SystemdWorker(object):"}],"source_content_type":"text/x-python","patch_set":27,"id":"8ab761f8_84a77fe7","line":43,"updated":"2022-09-10 20:40:13.000000000","message":"I suggest we extract this template as jinja2 template that can be customised by kolla-ansible users (this is practically an ini file, we know how to merge them)","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"510fc535169e8e7ad602930381582175ba1ffc18","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[Install]"},{"line_number":42,"context_line":"WantedBy\u003dmulti-user.target"},{"line_number":43,"context_line":"\"\"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class SystemdWorker(object):"}],"source_content_type":"text/x-python","patch_set":27,"id":"d9bd08a2_e4f10f2f","line":43,"in_reply_to":"3b3f8341_94cb27ed","updated":"2022-09-26 13:09:17.000000000","message":"Turns out, Python\u0027s builtin templating can also read from file so I\u0027ve moved the template to ansible/templates/unit_file.template.","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"9da37aee6e7ed194a9108a117cc2f206e45f54c5","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[Install]"},{"line_number":42,"context_line":"WantedBy\u003dmulti-user.target"},{"line_number":43,"context_line":"\"\"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class SystemdWorker(object):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3b3f8341_94cb27ed","line":43,"in_reply_to":"5f21a259_bf8960bc","updated":"2022-09-12 15:28:54.000000000","message":"Hmm, that comment by Mark was right. I wonder what better we can do without overdoing this. Maybe this approach will be enough for now... Anyways, let\u0027s keep this thread open so that other cores can comment as well.","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"6210f226e3697382362434d52ce33f905acb2b62","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[Install]"},{"line_number":42,"context_line":"WantedBy\u003dmulti-user.target"},{"line_number":43,"context_line":"\"\"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class SystemdWorker(object):"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f21a259_bf8960bc","line":43,"in_reply_to":"8ab761f8_84a77fe7","updated":"2022-09-12 15:18:53.000000000","message":"This approach was used until Patchset 3, when Mark Goddard advocated against it [https://review.opendev.org/c/openstack/kolla-ansible/+/816724/comments/b9cb2abc_db6de5f0]. It could be brought back, though.","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"1477218c89d28745d4af4f1d92c9dbaff27ed40b","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"[Install]"},{"line_number":42,"context_line":"WantedBy\u003dmulti-user.target"},{"line_number":43,"context_line":"\"\"\""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"class SystemdWorker(object):"}],"source_content_type":"text/x-python","patch_set":27,"id":"c52a9635_1aa62a4a","line":43,"in_reply_to":"d9bd08a2_e4f10f2f","updated":"2022-11-28 10:33:41.000000000","message":"Let\u0027s leave this as is. We can always change it afterwards if needed.","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"87f45ee4448a35c9b9492cfb61d48636761a7e01","unresolved":true,"context_lines":[{"line_number":61,"context_line":"        # checked at the module level inside kolla_docker.py"},{"line_number":62,"context_line":"        restart_timeout \u003d params.get(\u0027client_timeout\u0027, 120)"},{"line_number":63,"context_line":"        restart_retries \u003d params.get(\u0027restart_retries\u0027, 10)"},{"line_number":64,"context_line":"        restart_duration \u003d (restart_timeout // restart_retries) - 1"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # container info"},{"line_number":67,"context_line":"        self.container_dict \u003d dict("}],"source_content_type":"text/x-python","patch_set":27,"id":"fda249f4_d1991156","line":64,"updated":"2022-09-10 20:46:12.000000000","message":"This is now 11 seconds by default which is quite lengthy for RestartSec (the time before the restart happens).","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":35105,"name":"Ivan Halomi","username":"ihalomi","inactive":true},"change_message_id":"59deb091b16495933f169300de86353877d1c4bd","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        # checked at the module level inside kolla_docker.py"},{"line_number":62,"context_line":"        restart_timeout \u003d params.get(\u0027client_timeout\u0027, 120)"},{"line_number":63,"context_line":"        restart_retries \u003d params.get(\u0027restart_retries\u0027, 10)"},{"line_number":64,"context_line":"        restart_duration \u003d (restart_timeout // restart_retries) - 1"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # container info"},{"line_number":67,"context_line":"        self.container_dict \u003d dict("}],"source_content_type":"text/x-python","patch_set":27,"id":"a1030587_c6de3689","line":64,"in_reply_to":"0bf3bbfe_aadc5d08","updated":"2022-11-27 12:29:08.000000000","message":"Done","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"9da37aee6e7ed194a9108a117cc2f206e45f54c5","unresolved":true,"context_lines":[{"line_number":61,"context_line":"        # checked at the module level inside kolla_docker.py"},{"line_number":62,"context_line":"        restart_timeout \u003d params.get(\u0027client_timeout\u0027, 120)"},{"line_number":63,"context_line":"        restart_retries \u003d params.get(\u0027restart_retries\u0027, 10)"},{"line_number":64,"context_line":"        restart_duration \u003d (restart_timeout // restart_retries) - 1"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # container info"},{"line_number":67,"context_line":"        self.container_dict \u003d dict("}],"source_content_type":"text/x-python","patch_set":27,"id":"0bf3bbfe_aadc5d08","line":64,"in_reply_to":"ca626625_a422c987","updated":"2022-09-12 15:28:54.000000000","message":"\"Fixed\" as in \"fixed by configuration\" makes sense to me.","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"6210f226e3697382362434d52ce33f905acb2b62","unresolved":true,"context_lines":[{"line_number":61,"context_line":"        # checked at the module level inside kolla_docker.py"},{"line_number":62,"context_line":"        restart_timeout \u003d params.get(\u0027client_timeout\u0027, 120)"},{"line_number":63,"context_line":"        restart_retries \u003d params.get(\u0027restart_retries\u0027, 10)"},{"line_number":64,"context_line":"        restart_duration \u003d (restart_timeout // restart_retries) - 1"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        # container info"},{"line_number":67,"context_line":"        self.container_dict \u003d dict("}],"source_content_type":"text/x-python","patch_set":27,"id":"ca626625_a422c987","line":64,"in_reply_to":"fda249f4_d1991156","updated":"2022-09-12 15:18:53.000000000","message":"I see. Maybe it would be better to settle on some fixed value?","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"2f18a6afd9888cee6bf52b89edd16f0dc64b6c5e","unresolved":true,"context_lines":[{"line_number":61,"context_line":"        self.sysdir \u003d \u0027/etc/systemd/system/\u0027"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # templating"},{"line_number":64,"context_line":"        template_file \u003d open(os.getcwd() + TEMPLATE_PATH, \u0027r\u0027)"},{"line_number":65,"context_line":"        self.template \u003d Template(template_file.read())"},{"line_number":66,"context_line":"        template_file.close()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def get_manager(self):"},{"line_number":69,"context_line":"        sysbus \u003d dbus.SystemBus()"}],"source_content_type":"text/x-python","patch_set":32,"id":"67de081d_4e712195","line":66,"range":{"start_line":64,"start_character":8,"end_line":66,"end_character":29},"updated":"2022-09-26 18:57:36.000000000","message":"use the with: construct (\"open\" as context manager)","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"},{"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":"c6a3378e04646c19572d89da5637526638bd42de","unresolved":true,"context_lines":[{"line_number":61,"context_line":"        self.sysdir \u003d \u0027/etc/systemd/system/\u0027"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # templating"},{"line_number":64,"context_line":"        template_file \u003d open(os.getcwd() + TEMPLATE_PATH, \u0027r\u0027)"},{"line_number":65,"context_line":"        self.template \u003d Template(template_file.read())"},{"line_number":66,"context_line":"        template_file.close()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def get_manager(self):"},{"line_number":69,"context_line":"        sysbus \u003d dbus.SystemBus()"}],"source_content_type":"text/x-python","patch_set":32,"id":"eec6b3df_62aeca85","line":66,"range":{"start_line":64,"start_character":8,"end_line":66,"end_character":29},"in_reply_to":"67de081d_4e712195","updated":"2022-09-26 19:01:03.000000000","message":"Meh, it\u0027s not worth doing it as it is broken anyways as we need to transfer that file first to the destination host... Let\u0027s stick to the in-code template as it\u0027s short enough that it does not cause any heart attacks on my side and has the added benefit of being worky. ;-)","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"},{"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":"ce2f5cbdb703bba8d80426e9038b16b907547873","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        self.sysdir \u003d \u0027/etc/systemd/system/\u0027"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # templating"},{"line_number":64,"context_line":"        template_file \u003d open(os.getcwd() + TEMPLATE_PATH, \u0027r\u0027)"},{"line_number":65,"context_line":"        self.template \u003d Template(template_file.read())"},{"line_number":66,"context_line":"        template_file.close()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def get_manager(self):"},{"line_number":69,"context_line":"        sysbus \u003d dbus.SystemBus()"}],"source_content_type":"text/x-python","patch_set":32,"id":"67e4c059_d0a2860f","line":66,"range":{"start_line":64,"start_character":8,"end_line":66,"end_character":29},"in_reply_to":"eec6b3df_62aeca85","updated":"2022-09-26 19:13:00.000000000","message":"I restored the worky version.","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"23c8edd0754e803249e4fa6fe799985c7acadc83","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":46,"id":"d45baf3e_3adde5bd","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":21},"updated":"2023-01-19 09:30:33.000000000","message":"Is that needed? In the other module_utils it\u0027s python3?","commit_id":"bca690d02e4e5f171e3872b8206ca135a9dba9cb"},{"author":{"_account_id":35105,"name":"Ivan Halomi","username":"ihalomi","inactive":true},"change_message_id":"32442e35f3cfa750d23524d0ca0bf8d9cbfc9b35","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":46,"id":"2c4226f9_5968435e","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":21},"in_reply_to":"d45baf3e_3adde5bd","updated":"2023-01-19 09:39:36.000000000","message":"Done","commit_id":"bca690d02e4e5f171e3872b8206ca135a9dba9cb"}],"ansible/module_utils/systemd_worker.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":"8fbe2ec034b5daaa18dbdee77ddf0943d6fd726d","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2015 Sam Yaple"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":6,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":2,"id":"d9caf2f8_c8a471e9","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":26},"updated":"2021-11-09 19:44:27.000000000","message":"very unlikely!","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Copyright 2015 Sam Yaple"},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":6,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":2,"id":"ff0b600e_dc1874a6","line":3,"range":{"start_line":3,"start_character":0,"end_line":3,"end_character":26},"in_reply_to":"d9caf2f8_c8a471e9","updated":"2022-01-27 10:44:30.000000000","message":"Done","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"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":"8fbe2ec034b5daaa18dbdee77ddf0943d6fd726d","unresolved":true,"context_lines":[{"line_number":50,"context_line":"            \u0027org.freedesktop.systemd1\u0027,"},{"line_number":51,"context_line":"            \u0027/org/freedesktop/systemd1\u0027"},{"line_number":52,"context_line":"        )"},{"line_number":53,"context_line":"        return dbus.Interface(systemd1, \u0027org.freedesktop.systemd1.Manager\u0027)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    # NOTE: unused"},{"line_number":56,"context_line":"    def get_unit(self, service_name\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"c96197a9_b8163616","line":53,"updated":"2021-11-09 19:44:27.000000000","message":"nice to actually use the recommended dbus interface","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":50,"context_line":"            \u0027org.freedesktop.systemd1\u0027,"},{"line_number":51,"context_line":"            \u0027/org/freedesktop/systemd1\u0027"},{"line_number":52,"context_line":"        )"},{"line_number":53,"context_line":"        return dbus.Interface(systemd1, \u0027org.freedesktop.systemd1.Manager\u0027)"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    # NOTE: unused"},{"line_number":56,"context_line":"    def get_unit(self, service_name\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"427d8435_99cbd421","line":53,"in_reply_to":"c96197a9_b8163616","updated":"2022-01-27 10:44:30.000000000","message":"Done","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":29880,"name":"Adrian Andreias","email":"adrian@fleio.com","username":"adrian-fleio"},"change_message_id":"802090a36aa2a7b80f06edc2864b65ef15319a94","unresolved":true,"context_lines":[{"line_number":56,"context_line":"    def get_unit(self, service_name\u003dNone):"},{"line_number":57,"context_line":"        \"\"\"Check if service is managed by systemd\"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        if not service_name:"},{"line_number":60,"context_line":"            service_name \u003d self.service_name"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        manager \u003d self.manager or self.get_manager()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff97a6c1_55b110a2","line":59,"updated":"2021-11-10 14:55:22.000000000","message":"Idiomatic Python: if service_name is None","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"6453f289d9642ee02d485241eba2082830535afc","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    def get_unit(self, service_name\u003dNone):"},{"line_number":57,"context_line":"        \"\"\"Check if service is managed by systemd\"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        if not service_name:"},{"line_number":60,"context_line":"            service_name \u003d self.service_name"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        manager \u003d self.manager or self.get_manager()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3533ea62_0fc135d6","line":59,"in_reply_to":"ff97a6c1_55b110a2","updated":"2021-11-11 10:39:09.000000000","message":"Done","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":29880,"name":"Adrian Andreias","email":"adrian@fleio.com","username":"adrian-fleio"},"change_message_id":"802090a36aa2a7b80f06edc2864b65ef15319a94","unresolved":true,"context_lines":[{"line_number":99,"context_line":"    def check_systemd(self, service_name\u003dNone):"},{"line_number":100,"context_line":"        \"\"\"Check if service file exists.\"\"\""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        if not service_name:"},{"line_number":103,"context_line":"            service_name \u003d self.service_name"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        manager \u003d self.manager or self.get_manager()"}],"source_content_type":"text/x-python","patch_set":2,"id":"c9ab60f7_84986dbe","line":102,"updated":"2021-11-10 14:55:22.000000000","message":"idiomatic: if service_name is None","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    def check_systemd(self, service_name\u003dNone):"},{"line_number":100,"context_line":"        \"\"\"Check if service file exists.\"\"\""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        if not service_name:"},{"line_number":103,"context_line":"            service_name \u003d self.service_name"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        manager \u003d self.manager or self.get_manager()"}],"source_content_type":"text/x-python","patch_set":2,"id":"4782341b_0cc3f8d1","line":102,"in_reply_to":"c9ab60f7_84986dbe","updated":"2022-01-27 10:44:30.000000000","message":"Done","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"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":"8fbe2ec034b5daaa18dbdee77ddf0943d6fd726d","unresolved":true,"context_lines":[{"line_number":189,"context_line":"        try:"},{"line_number":190,"context_line":"            os.remove(self.sysdir + self.service_name)"},{"line_number":191,"context_line":"        except FileNotFoundError:"},{"line_number":192,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"0fb1630d_2de2efe3","line":192,"updated":"2021-11-09 19:44:27.000000000","message":"we likely need all the other ops as well, I think both modules should actually have the common code in some base class (see the comment on patchset itself)","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"5d3e3e6e51d7e08452d447f0c56fedfeee9cc8ee","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        try:"},{"line_number":190,"context_line":"            os.remove(self.sysdir + self.service_name)"},{"line_number":191,"context_line":"        except FileNotFoundError:"},{"line_number":192,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":2,"id":"6a19eb99_96b05db4","line":192,"in_reply_to":"0fb1630d_2de2efe3","updated":"2022-01-27 10:44:30.000000000","message":"Ack","commit_id":"4ac94fd77bca8147cfa65d8be71b8cb15cc11f54"}],"ansible/roles/prechecks/defaults/main.yml":[{"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":"2f18a6afd9888cee6bf52b89edd16f0dc64b6c5e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":32,"id":"9150b6ed_1600061f","line":13,"updated":"2022-09-26 18:57:36.000000000","message":"Oh noez, let\u0027s not force compilations on the host. Can\u0027t we just use the dbus python bindings present on the host? They are the most compatible ones anyways...","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"7de7d9e5e1677f5c77029904e395c553ebd592bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"e7a99817_22f8bed5","line":13,"in_reply_to":"002dffff_fef9bc36","updated":"2022-10-14 09:54:38.000000000","message":"Noted. Only checks are now present.","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"},{"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":"189b3204eb7d36ad736d35ffc500d6e131a852c8","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":32,"id":"40962393_6565aa98","line":13,"in_reply_to":"2f786277_b3e6b77c","updated":"2022-09-28 15:48:08.000000000","message":"Can\u0027t we just use the dbus package from system repos? It should work best...","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"},{"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":"fc822b10ec146d3e51160dc31300c5e08f36f08e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":32,"id":"e49b606c_ab96a2b0","line":13,"in_reply_to":"33ac841b_90e4b7d3","updated":"2022-10-10 09:03:40.000000000","message":"I mean to install the python3-dbus (or similar) package.","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"ff4869748d2fbeda114e64a717238618e718f211","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":32,"id":"33ac841b_90e4b7d3","line":13,"in_reply_to":"40962393_6565aa98","updated":"2022-10-07 15:10:48.000000000","message":"What do you mean? When I was testing this on fresh VMs, dbus couldn\u0027t be imported in Python and to install it through pip, it required package(s) in these lists.","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"},{"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":"e66c8d88052d243aeeb1ac3520253549de0c7463","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":32,"id":"002dffff_fef9bc36","line":13,"in_reply_to":"64c6480f_e07cb746","updated":"2022-10-10 13:30:59.000000000","message":"I mean, then we don\u0027t need to install the package with pip.","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"a8c70a49aaee9cf6e6486ab4bfdb253934e71ec2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":32,"id":"2f786277_b3e6b77c","line":13,"in_reply_to":"9150b6ed_1600061f","updated":"2022-09-28 08:52:57.000000000","message":"I will try to use dbus package if it\u0027s present and if it\u0027s not it will try to install it. That\u0027s my logic behind this.","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"a273fa203b1ef712c520dc94c9da7cb81b190a3c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":32,"id":"64c6480f_e07cb746","line":13,"in_reply_to":"e49b606c_ab96a2b0","updated":"2022-10-10 12:24:48.000000000","message":"I see, but after some testing, although the python3-dbus system package is already present, the dbus python package cannot be imported or installed without these packages.","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"}],"ansible/roles/prechecks/tasks/package_checks.yml":[{"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":"2f18a6afd9888cee6bf52b89edd16f0dc64b6c5e","unresolved":true,"context_lines":[{"line_number":28,"context_line":"  when:"},{"line_number":29,"context_line":"    - dbus_present is failed"},{"line_number":30,"context_line":"    - inventory_hostname in groups[\u0027baremetal\u0027]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# NOTE(osmanlicilegi): ansible_version.full includes patch number that\u0027s useless"},{"line_number":33,"context_line":"# to check. as ansible_version does not provide major.minor in dict, we need to"},{"line_number":34,"context_line":"# set it as variable."}],"source_content_type":"text/x-yaml","patch_set":32,"id":"cb978611_2b2fa289","line":31,"updated":"2022-09-26 18:57:36.000000000","message":"Ditto regarding system dbus python bindings.","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"7de7d9e5e1677f5c77029904e395c553ebd592bb","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  when:"},{"line_number":29,"context_line":"    - dbus_present is failed"},{"line_number":30,"context_line":"    - inventory_hostname in groups[\u0027baremetal\u0027]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# NOTE(osmanlicilegi): ansible_version.full includes patch number that\u0027s useless"},{"line_number":33,"context_line":"# to check. as ansible_version does not provide major.minor in dict, we need to"},{"line_number":34,"context_line":"# set it as variable."}],"source_content_type":"text/x-yaml","patch_set":32,"id":"7a30fd96_154881ea","line":31,"in_reply_to":"cb978611_2b2fa289","updated":"2022-10-14 09:54:38.000000000","message":"Done","commit_id":"937a66ee56f48e1df05c1510316c1408e31f73d3"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"7720083f53a04f8670a2ae258469bff1e217dabe","unresolved":true,"context_lines":[{"line_number":7,"context_line":"  failed_when: result is failed or result.stdout is version(docker_py_version_min, \u0027\u003c\u0027)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- name: Checking dbus-python package"},{"line_number":10,"context_line":"  command: \"{{ ansible_facts.python.executable }} -c \\\"import dbus\\\"\""},{"line_number":11,"context_line":"  register: dbus_present"},{"line_number":12,"context_line":"  changed_when: false"},{"line_number":13,"context_line":"  when: inventory_hostname in groups[\u0027baremetal\u0027]"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"6c246f11_cdce0506","line":10,"range":{"start_line":10,"start_character":2,"end_line":10,"end_character":69},"updated":"2022-11-23 14:17:41.000000000","message":"should we simple check the package installed?","commit_id":"c66988d900b30b397bf38f139311717c1079f51d"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"1477218c89d28745d4af4f1d92c9dbaff27ed40b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"  failed_when: result is failed or result.stdout is version(docker_py_version_min, \u0027\u003c\u0027)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- name: Checking dbus-python package"},{"line_number":10,"context_line":"  command: \"{{ ansible_facts.python.executable }} -c \\\"import dbus\\\"\""},{"line_number":11,"context_line":"  register: dbus_present"},{"line_number":12,"context_line":"  changed_when: false"},{"line_number":13,"context_line":"  when: inventory_hostname in groups[\u0027baremetal\u0027]"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"037d2670_1722c300","line":10,"range":{"start_line":10,"start_character":2,"end_line":10,"end_character":69},"in_reply_to":"2a9e386d_19e1462c","updated":"2022-11-28 10:33:41.000000000","message":"For this patch, I have reworked only the relevant (dbus \u0026 systemd) package checks to keep this change relatively small. Current checks can be reworked separately after this path is merged.","commit_id":"c66988d900b30b397bf38f139311717c1079f51d"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"e472254845e6a5e142efe7a81473c4f7d76eddfd","unresolved":true,"context_lines":[{"line_number":7,"context_line":"  failed_when: result is failed or result.stdout is version(docker_py_version_min, \u0027\u003c\u0027)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- name: Checking dbus-python package"},{"line_number":10,"context_line":"  command: \"{{ ansible_facts.python.executable }} -c \\\"import dbus\\\"\""},{"line_number":11,"context_line":"  register: dbus_present"},{"line_number":12,"context_line":"  changed_when: false"},{"line_number":13,"context_line":"  when: inventory_hostname in groups[\u0027baremetal\u0027]"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"a20b1722_32de2aeb","line":10,"range":{"start_line":10,"start_character":2,"end_line":10,"end_character":69},"in_reply_to":"6c246f11_cdce0506","updated":"2022-11-24 16:27:53.000000000","message":"I have looked into it and package presence and version checks can be reworked to use package_facts module. This is in my opinion a good idea but it is better suited to be in a separate patchset.","commit_id":"c66988d900b30b397bf38f139311717c1079f51d"},{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"9da35a539ddf858683722549dcc331cf7cff6824","unresolved":true,"context_lines":[{"line_number":7,"context_line":"  failed_when: result is failed or result.stdout is version(docker_py_version_min, \u0027\u003c\u0027)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- name: Checking dbus-python package"},{"line_number":10,"context_line":"  command: \"{{ ansible_facts.python.executable }} -c \\\"import dbus\\\"\""},{"line_number":11,"context_line":"  register: dbus_present"},{"line_number":12,"context_line":"  changed_when: false"},{"line_number":13,"context_line":"  when: inventory_hostname in groups[\u0027baremetal\u0027]"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"ea20db79_1af801af","line":10,"range":{"start_line":10,"start_character":2,"end_line":10,"end_character":69},"in_reply_to":"a20b1722_32de2aeb","updated":"2022-11-25 11:24:05.000000000","message":"depend on the options of the external commands and their successful execution is a bad idea anyway","commit_id":"c66988d900b30b397bf38f139311717c1079f51d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"84e83b1c5bdc49e7dbd9f01d593e22eab30ba06b","unresolved":true,"context_lines":[{"line_number":7,"context_line":"  failed_when: result is failed or result.stdout is version(docker_py_version_min, \u0027\u003c\u0027)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- name: Checking dbus-python package"},{"line_number":10,"context_line":"  command: \"{{ ansible_facts.python.executable }} -c \\\"import dbus\\\"\""},{"line_number":11,"context_line":"  register: dbus_present"},{"line_number":12,"context_line":"  changed_when: false"},{"line_number":13,"context_line":"  when: inventory_hostname in groups[\u0027baremetal\u0027]"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"2a9e386d_19e1462c","line":10,"range":{"start_line":10,"start_character":2,"end_line":10,"end_character":69},"in_reply_to":"ea20db79_1af801af","updated":"2022-11-28 08:53:24.000000000","message":"Can you rework it in this patch (or split that part into a separate patch, if that\u0027s what you want to do) - but let\u0027s fix it now.","commit_id":"c66988d900b30b397bf38f139311717c1079f51d"}],"ansible/roles/prechecks/tasks/service_checks.yml":[{"author":{"_account_id":14200,"name":"Maksim Malchuk","email":"maksim.malchuk@gmail.com","username":"mmalchuk"},"change_message_id":"7720083f53a04f8670a2ae258469bff1e217dabe","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Checking if system uses systemd"},{"line_number":3,"context_line":"  become: true"},{"line_number":4,"context_line":"  command: \"ps --no-headers -o comm 1\""},{"line_number":5,"context_line":"  register: init_daemon"},{"line_number":6,"context_line":"  changed_when: false"},{"line_number":7,"context_line":"  when: inventory_hostname in groups[\u0027baremetal\u0027]"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"b70f40e0_2d4b99c9","line":4,"range":{"start_line":4,"start_character":2,"end_line":4,"end_character":38},"updated":"2022-11-23 14:17:41.000000000","message":"the same issue. once package is installed it can\u0027t be unusable in system!","commit_id":"c66988d900b30b397bf38f139311717c1079f51d"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"1477218c89d28745d4af4f1d92c9dbaff27ed40b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Checking if system uses systemd"},{"line_number":3,"context_line":"  become: true"},{"line_number":4,"context_line":"  command: \"ps --no-headers -o comm 1\""},{"line_number":5,"context_line":"  register: init_daemon"},{"line_number":6,"context_line":"  changed_when: false"},{"line_number":7,"context_line":"  when: inventory_hostname in groups[\u0027baremetal\u0027]"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"690af2a9_b42025ca","line":4,"range":{"start_line":4,"start_character":2,"end_line":4,"end_character":38},"in_reply_to":"3b27406b_4e573b70","updated":"2022-11-28 10:33:41.000000000","message":"Done. This check was suggested in https://review.opendev.org/c/openstack/kolla-ansible/+/816724/comments/b9584fce_589551ab\n\nI think that having this check fail is more user-friendly and informative than having first kolla_docker task fail saying that \"dbus can\u0027t be imported\".","commit_id":"c66988d900b30b397bf38f139311717c1079f51d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"d3478795f4b5bb41c2339ccbb52a52f39cc8fe0a","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Checking if system uses systemd"},{"line_number":3,"context_line":"  become: true"},{"line_number":4,"context_line":"  command: \"ps --no-headers -o comm 1\""},{"line_number":5,"context_line":"  register: init_daemon"},{"line_number":6,"context_line":"  changed_when: false"},{"line_number":7,"context_line":"  when: inventory_hostname in groups[\u0027baremetal\u0027]"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"f805c706_0c6f9f75","line":4,"range":{"start_line":4,"start_character":2,"end_line":4,"end_character":38},"in_reply_to":"690af2a9_b42025ca","updated":"2022-11-28 10:48:23.000000000","message":"We could check for ansible_facts.service_mgr \u003d\u003d \u0027systemd\u0027","commit_id":"c66988d900b30b397bf38f139311717c1079f51d"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"84e83b1c5bdc49e7dbd9f01d593e22eab30ba06b","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Checking if system uses systemd"},{"line_number":3,"context_line":"  become: true"},{"line_number":4,"context_line":"  command: \"ps --no-headers -o comm 1\""},{"line_number":5,"context_line":"  register: init_daemon"},{"line_number":6,"context_line":"  changed_when: false"},{"line_number":7,"context_line":"  when: inventory_hostname in groups[\u0027baremetal\u0027]"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"3b27406b_4e573b70","line":4,"range":{"start_line":4,"start_character":2,"end_line":4,"end_character":38},"in_reply_to":"b70f40e0_2d4b99c9","updated":"2022-11-28 08:53:24.000000000","message":"Maksim, using exclamation marks in reviews is at least impolite, please stop.\n\nCan we rework this to something that doesn\u0027t use command? Is that check really required?","commit_id":"c66988d900b30b397bf38f139311717c1079f51d"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"66f9812b22e4cc8eedc6bd21cea7d49b7bc1abf5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Checking if system uses systemd"},{"line_number":3,"context_line":"  become: true"},{"line_number":4,"context_line":"  command: \"ps --no-headers -o comm 1\""},{"line_number":5,"context_line":"  register: init_daemon"},{"line_number":6,"context_line":"  changed_when: false"},{"line_number":7,"context_line":"  when: inventory_hostname in groups[\u0027baremetal\u0027]"}],"source_content_type":"text/x-yaml","patch_set":40,"id":"babc8fdb_5050e24a","line":4,"range":{"start_line":4,"start_character":2,"end_line":4,"end_character":38},"in_reply_to":"f805c706_0c6f9f75","updated":"2022-11-28 10:54:28.000000000","message":"Yes, that\u0027s a better way. Thanks.","commit_id":"c66988d900b30b397bf38f139311717c1079f51d"}],"bindep.txt":[{"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":"747f4f600dd0f57f65233f2687090121093a5526","unresolved":true,"context_lines":[{"line_number":6,"context_line":"python3-devel [platform:rpm]"},{"line_number":7,"context_line":"openssl-devel [platform:rpm]"},{"line_number":8,"context_line":"libssl-dev [platform:dpkg]"},{"line_number":9,"context_line":"libdbus-1-dev [platform:dpkg]"},{"line_number":10,"context_line":"dbus-devel [platform:rpm]"}],"source_content_type":"text/plain","patch_set":10,"id":"244db2b2_d767714f","line":9,"updated":"2022-02-09 15:54:27.000000000","message":"these should also have a testing qualifier or something like that to avoid installing when not testing but I don\u0027t remember it atm, to check later","commit_id":"48c88d3179edecaf36b612a28bd7197e06891792"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"e251f294a32fc0c6ea748af076fc0b618b31604a","unresolved":false,"context_lines":[{"line_number":6,"context_line":"python3-devel [platform:rpm]"},{"line_number":7,"context_line":"openssl-devel [platform:rpm]"},{"line_number":8,"context_line":"libssl-dev [platform:dpkg]"},{"line_number":9,"context_line":"libdbus-1-dev [platform:dpkg]"},{"line_number":10,"context_line":"dbus-devel [platform:rpm]"}],"source_content_type":"text/plain","patch_set":10,"id":"ead3a678_0702356f","line":9,"in_reply_to":"244db2b2_d767714f","updated":"2022-02-17 12:30:16.000000000","message":"Done","commit_id":"48c88d3179edecaf36b612a28bd7197e06891792"}],"releasenotes/notes/add-systemd-container-control-b85dff9ec5fae313.yaml":[{"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":"6307b33fac0d36639f9f448c680e1146c4571181","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    Adds support for container state control through systemd in kolla_docker."},{"line_number":5,"context_line":"    Every container has it\u0027s own unit file in /etc/systemd/system named"},{"line_number":6,"context_line":"    kolla-\u003ccontainer name\u003e-container.service. Systemd control is implemented"},{"line_number":7,"context_line":"    in new file ansible/module_utils/kolla_systemd_worker.py"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"a7ca8b6d_07368ad7","line":7,"updated":"2022-09-12 15:30:17.000000000","message":"missing newline; also use `` `` for things like paths and filenames - they will render much better","commit_id":"1e1e8ac9ffebd652f1c0ce7797bdedccac1a6b1b"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"01ab1e1bd844c8f735a620aca73f438822ef33c8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Adds support for container state control through systemd in kolla_docker."},{"line_number":5,"context_line":"    Every container has it\u0027s own unit file in /etc/systemd/system named"},{"line_number":6,"context_line":"    kolla-\u003ccontainer name\u003e-container.service. Systemd control is implemented"},{"line_number":7,"context_line":"    in new file ansible/module_utils/kolla_systemd_worker.py"}],"source_content_type":"text/x-yaml","patch_set":28,"id":"868ca2e0_a39a70e7","line":7,"in_reply_to":"a7ca8b6d_07368ad7","updated":"2022-09-13 09:45:44.000000000","message":"Done","commit_id":"1e1e8ac9ffebd652f1c0ce7797bdedccac1a6b1b"}],"tools/cleanup-containers":[{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"b16193ccdb88ffadaa795624abf72afbeeb4dc1a","unresolved":true,"context_lines":[{"line_number":47,"context_line":"(sudo rm -f /var/log/kolla 2\u003e\u00261) \u003e /dev/null"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"echo \"Removing unit files...\""},{"line_number":50,"context_line":"units\u003d( $(ls /etc/systemd/system/ | grep \".*-container\\.service\") )"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"for unit in \"${units[@]}\""},{"line_number":53,"context_line":"do"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"47ee49cd_46b12033","line":50,"range":{"start_line":50,"start_character":41,"end_line":50,"end_character":64},"updated":"2022-02-23 12:31:25.000000000","message":"kolla-.*-container\\.service","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":34113,"name":"Martin Hiner","email":"martin.hiner@tietoevry.com","username":"hinermar"},"change_message_id":"ecc2c984f7cb6f46a752994c2c01779ebc48a39c","unresolved":false,"context_lines":[{"line_number":47,"context_line":"(sudo rm -f /var/log/kolla 2\u003e\u00261) \u003e /dev/null"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"echo \"Removing unit files...\""},{"line_number":50,"context_line":"units\u003d( $(ls /etc/systemd/system/ | grep \".*-container\\.service\") )"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"for unit in \"${units[@]}\""},{"line_number":53,"context_line":"do"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"56a5ab4f_171ff9e0","line":50,"range":{"start_line":50,"start_character":41,"end_line":50,"end_character":64},"in_reply_to":"47ee49cd_46b12033","updated":"2022-02-25 12:46:21.000000000","message":"Done","commit_id":"9c7b00ef51b8227e3f6363d7fb20231005710680"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"eacd0ef07c4c1eb5b4fdff26f9510bd923693c70","unresolved":true,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"(sudo docker stop -t 2 ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":25,"id":"a9584795_a4f2fe85","line":33,"updated":"2022-09-07 09:57:26.000000000","message":"Shouldn\u0027t this stop the systemd services instead now?","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"08467fdaaed8da65448380f804d6499aed209ed8","unresolved":false,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"(sudo docker stop -t 2 ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":25,"id":"05d66a0f_f582b9d2","line":33,"in_reply_to":"a9584795_a4f2fe85","updated":"2022-09-07 13:42:25.000000000","message":"Done, but it is somewhat slower than doing it with Docker.","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"eacd0ef07c4c1eb5b4fdff26f9510bd923693c70","unresolved":true,"context_lines":[{"line_number":52,"context_line":"for unit in \"${units[@]}\""},{"line_number":53,"context_line":"do"},{"line_number":54,"context_line":"    sudo rm -f \"/etc/systemd/system/${unit}\""},{"line_number":55,"context_line":"done"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"echo \"All cleaned up!\""}],"source_content_type":"application/octet-stream","patch_set":25,"id":"8c836d10_65422d51","line":55,"updated":"2022-09-07 09:57:26.000000000","message":"Add a \"systemctl daemon-reload\" for good measure?","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"08467fdaaed8da65448380f804d6499aed209ed8","unresolved":false,"context_lines":[{"line_number":52,"context_line":"for unit in \"${units[@]}\""},{"line_number":53,"context_line":"do"},{"line_number":54,"context_line":"    sudo rm -f \"/etc/systemd/system/${unit}\""},{"line_number":55,"context_line":"done"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"echo \"All cleaned up!\""}],"source_content_type":"application/octet-stream","patch_set":25,"id":"62ae4fba_e71525ed","line":55,"in_reply_to":"8c836d10_65422d51","updated":"2022-09-07 13:42:25.000000000","message":"Good idea, done.","commit_id":"e9f8e9cdc86fabf965d88b19d46e19311e66f498"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"8f56c3547fa2cc3276a99b55eac629fdc3f45ec5","unresolved":true,"context_lines":[{"line_number":33,"context_line":"container_units\u003d( $(ls /etc/systemd/system/ | grep \"kolla-.*-container\\.service\") )"},{"line_number":34,"context_line":"for unit in \"${container_units[@]}\""},{"line_number":35,"context_line":"do"},{"line_number":36,"context_line":"    sudo systemctl stop $unit"},{"line_number":37,"context_line":"done"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"echo \"Removing containers...\""}],"source_content_type":"application/octet-stream","patch_set":26,"id":"4000a3c7_7ee037ea","line":36,"range":{"start_line":36,"start_character":4,"end_line":36,"end_character":29},"updated":"2022-09-07 14:18:53.000000000","message":"doesn\u0027t systemctl support wildcards?\nOther option - probably ideal - would be to have kolla.target?","commit_id":"27b20c7f6b0e9022018e4da5f0ce99d847e0502a"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"93d5755ead57d71a604e3954dec9ba8f317de9dd","unresolved":false,"context_lines":[{"line_number":33,"context_line":"container_units\u003d( $(ls /etc/systemd/system/ | grep \"kolla-.*-container\\.service\") )"},{"line_number":34,"context_line":"for unit in \"${container_units[@]}\""},{"line_number":35,"context_line":"do"},{"line_number":36,"context_line":"    sudo systemctl stop $unit"},{"line_number":37,"context_line":"done"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"echo \"Removing containers...\""}],"source_content_type":"application/octet-stream","patch_set":26,"id":"403afcdf_1823c537","line":36,"range":{"start_line":36,"start_character":4,"end_line":36,"end_character":29},"in_reply_to":"4000a3c7_7ee037ea","updated":"2022-09-07 14:56:44.000000000","message":"Yes, it does and it also works for removing unit files.","commit_id":"27b20c7f6b0e9022018e4da5f0ce99d847e0502a"},{"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":"71f486dd98d2cae96547cd7ee70bed299cf4dab8","unresolved":true,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"(sudo docker stop -t 2 ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"77f26137_92572ebe","side":"PARENT","line":33,"range":{"start_line":33,"start_character":25,"end_line":33,"end_character":43},"updated":"2022-09-10 20:55:17.000000000","message":"Seems wasteful to lose track of.","commit_id":"0f2c56ca544ffa0d292e40c06e3039d085b99074"},{"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":"9da37aee6e7ed194a9108a117cc2f206e45f54c5","unresolved":true,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"(sudo docker stop -t 2 ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"de40d561_c0ecdd88","side":"PARENT","line":33,"range":{"start_line":33,"start_character":25,"end_line":33,"end_character":43},"in_reply_to":"1420d4c8_40c77533","updated":"2022-09-12 15:28:54.000000000","message":"I mean we don\u0027t use the list of known containers and rely solely on the pattern.","commit_id":"0f2c56ca544ffa0d292e40c06e3039d085b99074"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"6210f226e3697382362434d52ce33f905acb2b62","unresolved":true,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"(sudo docker stop -t 2 ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"1420d4c8_40c77533","side":"PARENT","line":33,"range":{"start_line":33,"start_character":25,"end_line":33,"end_character":43},"in_reply_to":"77f26137_92572ebe","updated":"2022-09-12 15:18:53.000000000","message":"What do you mean?","commit_id":"0f2c56ca544ffa0d292e40c06e3039d085b99074"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"a8c70a49aaee9cf6e6486ab4bfdb253934e71ec2","unresolved":false,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"(sudo docker stop -t 2 ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"cd46e31b_dbdf5f18","side":"PARENT","line":33,"range":{"start_line":33,"start_character":25,"end_line":33,"end_character":43},"in_reply_to":"de40d561_c0ecdd88","updated":"2022-09-28 08:52:57.000000000","message":"Done","commit_id":"0f2c56ca544ffa0d292e40c06e3039d085b99074"},{"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":"71f486dd98d2cae96547cd7ee70bed299cf4dab8","unresolved":true,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"sudo systemctl stop kolla-*-container.service"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"376ef980_a80e635c","line":33,"updated":"2022-09-10 20:55:17.000000000","message":"We need this done more forcibly regardless of unit setup. As we cleanup anyways, maybe we could get away with sending a SIGKILL via systemd?","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"6210f226e3697382362434d52ce33f905acb2b62","unresolved":true,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"sudo systemctl stop kolla-*-container.service"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"c453701a_bed538b3","line":33,"in_reply_to":"376ef980_a80e635c","updated":"2022-09-12 15:18:53.000000000","message":"I don\u0027t think it\u0027s a good idea. Containers seem to ignore SIGKILL and after receiving SIGTERM, containers restart on their own after some time.","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"432ef1382972a45a58e63c712c9c911c227ccab0","unresolved":false,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"sudo systemctl stop kolla-*-container.service"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"4498e450_4607a414","line":33,"in_reply_to":"4ef42f6d_cce10543","updated":"2023-01-25 16:26:44.000000000","message":"Done","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"470eda97acd8edbea4d65c964b300f1dfdf022c9","unresolved":true,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"sudo systemctl stop kolla-*-container.service"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"7637c4cf_7e9eee05","line":33,"in_reply_to":"589c69d1_02f4f8d6","updated":"2022-09-12 15:58:10.000000000","message":"Duh. I will try to debug it. Thanks for your work.","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":35105,"name":"Ivan Halomi","username":"ihalomi","inactive":true},"change_message_id":"59deb091b16495933f169300de86353877d1c4bd","unresolved":true,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"sudo systemctl stop kolla-*-container.service"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"eb2023a5_80681544","line":33,"in_reply_to":"7637c4cf_7e9eee05","updated":"2022-11-27 12:29:08.000000000","message":"Any news on this?","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"b2ebdb04b8c498205451acef7186111a6a8efec2","unresolved":true,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"sudo systemctl stop kolla-*-container.service"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"589c69d1_02f4f8d6","line":33,"in_reply_to":"8ab1e8fd_6c327edf","updated":"2022-09-12 15:47:56.000000000","message":"Yes, via command sudo systemctl kill -s SIGKILL kolla-*-container.service","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"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":"9da37aee6e7ed194a9108a117cc2f206e45f54c5","unresolved":true,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"sudo systemctl stop kolla-*-container.service"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"8ab1e8fd_6c327edf","line":33,"in_reply_to":"c453701a_bed538b3","updated":"2022-09-12 15:28:54.000000000","message":"Have you sent the signal via systemd? (I have not tested that yet.)","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"a7c340198c6d3688dfad5d7a5c6aa0a6e4fa0ca0","unresolved":true,"context_lines":[{"line_number":30,"context_line":"fi"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"echo \"Stopping containers...\""},{"line_number":33,"context_line":"sudo systemctl stop kolla-*-container.service"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"echo \"Removing containers...\""},{"line_number":36,"context_line":"(sudo docker rm -v -f ${containers_to_kill} 2\u003e\u00261) \u003e /dev/null"}],"source_content_type":"application/octet-stream","patch_set":27,"id":"4ef42f6d_cce10543","line":33,"in_reply_to":"eb2023a5_80681544","updated":"2023-01-25 14:08:42.000000000","message":"Let\u0027s look into that as a followup.","commit_id":"36a702579cfedb91a22b2d6adcb415ac621ab829"}],"tox.ini":[{"author":{"_account_id":29636,"name":"Oliver Horecny","email":"oliver.horecny@tietoevry.com","username":"o.horecny2"},"change_message_id":"fc90a40621644d9a9fccdb36466d18c487a85e0a","unresolved":true,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"[testenv:yamllint]"},{"line_number":153,"context_line":"deps \u003d {[testenv:linters]deps}"},{"line_number":154,"context_line":"commands \u003d yamllint -s ."}],"source_content_type":"text/x-properties","patch_set":22,"id":"10f7fbb9_20c40387","line":154,"updated":"2022-08-22 14:30:48.000000000","message":"Why just empty line was removed? It is better to keep that newline at end of  file.","commit_id":"2e532091836745fcefeff33663d680ac57888b3a"},{"author":{"_account_id":34911,"name":"Martin Hiner","email":"m.hiner@partner.samsung.com","username":"m.hiner"},"change_message_id":"8f968dc80986e1107df0809e47b55cc47e844aa3","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"[testenv:yamllint]"},{"line_number":153,"context_line":"deps \u003d {[testenv:linters]deps}"},{"line_number":154,"context_line":"commands \u003d yamllint -s ."}],"source_content_type":"text/x-properties","patch_set":22,"id":"5abdfa14_1ef574c6","line":154,"in_reply_to":"10f7fbb9_20c40387","updated":"2022-08-25 08:31:11.000000000","message":"Done","commit_id":"2e532091836745fcefeff33663d680ac57888b3a"}]}
