)]}'
{".zuul.yaml":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"ac331ab0ca835eb617a76feef7014d815d3cda49","unresolved":false,"context_lines":[{"line_number":619,"context_line":"    check:"},{"line_number":620,"context_line":"      jobs:"},{"line_number":621,"context_line":"        - devstack:"},{"line_number":622,"context_line":"            vars:"},{"line_number":623,"context_line":"              devstack_openstack_service: true"},{"line_number":624,"context_line":"        - devstack-xenial:"},{"line_number":625,"context_line":"            vars:"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"7faddb67_70f8607b","line":622,"updated":"2019-08-30 06:20:47.000000000","message":"nit; it might be clearer to make a separate parent base job with this enabled, and then inherit these jobs from that","commit_id":"bbda906e5dfc4c7509ab9e95c8d90480ebfb1e8d"}],"/COMMIT_MSG":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"3e996f97e0bcf8b3f8331eea7bb66ec4ab6bd8fd","unresolved":false,"context_lines":[{"line_number":25,"context_line":"copy of the original path variable and use that when devstack makes"},{"line_number":26,"context_line":"\"openstack image create\" calls. It works, but it feels a little hacky"},{"line_number":27,"context_line":"to me so I\u0027m open to other solutions. It does have the advantage of"},{"line_number":28,"context_line":"providing a standard way to use the original OSC when necessary."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Since the devstack job definitions are used as the base job for many"},{"line_number":31,"context_line":"other jobs, the ansible var is set in the check and gate sections"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"7faddb67_57a097a5","line":28,"updated":"2019-08-16 16:30:16.000000000","message":"Another approach might be to have your openstack command shim exec openstackclient when image upload commands are called. This has the advantage of avoiding a fragile reliance on PATH which other users might not be aware of.\n\nBut if the shim handles those cases directly it should mostly just work regardless of path.","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"17b5320337c7627ca87bbe583520c754ee2bc8ed","unresolved":false,"context_lines":[{"line_number":25,"context_line":"copy of the original path variable and use that when devstack makes"},{"line_number":26,"context_line":"\"openstack image create\" calls. It works, but it feels a little hacky"},{"line_number":27,"context_line":"to me so I\u0027m open to other solutions. It does have the advantage of"},{"line_number":28,"context_line":"providing a standard way to use the original OSC when necessary."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Since the devstack job definitions are used as the base job for many"},{"line_number":31,"context_line":"other jobs, the ansible var is set in the check and gate sections"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"7faddb67_047700d6","line":28,"in_reply_to":"7faddb67_57a097a5","updated":"2019-08-21 21:22:19.000000000","message":"Done","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"676e9d1eb89d1e9169a0675d6238d6391f04b5bd","unresolved":false,"context_lines":[{"line_number":25,"context_line":"copy of the original path variable and use that when devstack makes"},{"line_number":26,"context_line":"\"openstack image create\" calls. It works, but it feels a little hacky"},{"line_number":27,"context_line":"to me so I\u0027m open to other solutions. It does have the advantage of"},{"line_number":28,"context_line":"providing a standard way to use the original OSC when necessary."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Since the devstack job definitions are used as the base job for many"},{"line_number":31,"context_line":"other jobs, the ansible var is set in the check and gate sections"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"7faddb67_3255db50","line":28,"in_reply_to":"7faddb67_57a097a5","updated":"2019-08-19 10:21:40.000000000","message":"I agree that this should be handled in the wrapper.","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"676e9d1eb89d1e9169a0675d6238d6391f04b5bd","unresolved":false,"context_lines":[{"line_number":33,"context_line":"running in devstack itself."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Change-Id: I28e6159944746abe2d320369249b87f1c4b9e24e"},{"line_number":36,"context_line":"0: http://lists.openstack.org/pipermail/openstack-dev/2016-April/092546.html"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"7faddb67_7257d35b","line":36,"updated":"2019-08-19 10:21:40.000000000","message":"The code in that mail doesn\u0027t have any license statement and from the text of the mail I\u0027m not sure that one can deduce that this is intended to be in the public domain. So to be on the safe side, could you verify with Daniel that he agrees to adopt this code into devstack?","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"17b5320337c7627ca87bbe583520c754ee2bc8ed","unresolved":false,"context_lines":[{"line_number":33,"context_line":"running in devstack itself."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Change-Id: I28e6159944746abe2d320369249b87f1c4b9e24e"},{"line_number":36,"context_line":"0: http://lists.openstack.org/pipermail/openstack-dev/2016-April/092546.html"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"7faddb67_4442d869","line":36,"in_reply_to":"7faddb67_7257d35b","updated":"2019-08-21 21:22:19.000000000","message":"Yes, I\u0027ve reached out to him. I will WIP this until I hear back.","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d2b95f1d0534cd79f05001885c0022053f9f5c30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"99bf3933_8b8177c9","updated":"2022-07-01 14:17:06.000000000","message":"This is failing because of some uses of \u0027openstack\u0027 instead of \u0027oscwrap\u0027 for things like setting up glance quotas. I wonder what bonehead did that?","commit_id":"9ecda595fb17e70d939f7a1d57281147dd3e3a21"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"481d1efa31a826ddd298fe21c8b116981b4d0324","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"a7761a4c_0efceb9f","updated":"2022-06-30 16:43:59.000000000","message":"recheck I still think we should at least have this in the tree","commit_id":"9ecda595fb17e70d939f7a1d57281147dd3e3a21"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2d3cc58a16a754a23e138bff1732267bb752fa8a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"49426726_34535b8d","updated":"2022-06-30 16:45:07.000000000","message":"recheck I still think we should do this","commit_id":"9ecda595fb17e70d939f7a1d57281147dd3e3a21"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bf87a2351a08136ce0303b2cd029806fda4327a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"2e75e38b_e8311f41","updated":"2024-05-08 14:21:59.000000000","message":"Ah I bet this needs global-venv treatment. I\u0027ll have a look","commit_id":"7c92165219b3a564260020ed87bf687c3b49a3ef"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"f744931cd4d727f8499006d7b9d8dbbe9bf903ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"86618937_1710acc3","updated":"2024-05-14 12:01:36.000000000","message":"I support any \"speed up\" efforts, it still needs 2 depends-on patches to be merged","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"59850e84e0ed3b99ad53b3ec2fb12b5decbb48d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"4f094445_a9262ff2","updated":"2024-05-13 15:22:16.000000000","message":"I\u0027m in favor of this. It appears to be disabled by default and there are indications it will save us resources. We have to consider that the status quo isn\u0027t perfect either (and is extremely user unfriendly with how slow it can be). This improves the user experience and we can improve it along the way without having it be perfect upfront.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"aaa5a89fcefef8af0a754c84d6d9365ad27436ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"dd067248_280e9359","updated":"2024-05-13 13:36:19.000000000","message":"I\u0027ve been asking for this to","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"ab40600c81643e0174b6b935948189732d030b52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"6d1316ea_129dd8a6","updated":"2024-05-13 08:59:38.000000000","message":"So I\u0027m not sure what exactly the plan is for this patch. If you just want to test around with it, please mark it as wip to avoid wasting reviewer time. If you intend for this to be merged, the code should not be too hacky and any remaining open issues should be marked with TODO comments, because otherwise this will not be maintainable,","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"2365211d9c591bde885f517eb92b4d0db428e7bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"317ece6b_47d9cba7","updated":"2024-05-10 12:00:30.000000000","message":"wow, long time since I looked at this. some initial comments, for a full review I\u0027d still need to take a deeper look at the socket handling code (that\u0027s more of a note to myself)","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"16e79e675ac6a711e9e5959f9cc3623603b11ebc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"e3e88a82_4d342d56","in_reply_to":"317ece6b_47d9cba7","updated":"2024-05-10 14:32:59.000000000","message":"I used it quite a bit a year or so ago when I was doing some stuff that required a bunch of stacking. I don\u0027t normally keep it in place since I have to patch it on top, which is really annoying.\n\nUntil/unless we make it a default, do we really need to scrutinize it (the python code I mean) deeply prior to merge? It clearly works...","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"aaa5a89fcefef8af0a754c84d6d9365ad27436ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"f5c57402_e6ab134f","in_reply_to":"6d1316ea_129dd8a6","updated":"2024-05-13 13:36:19.000000000","message":"I\u0027ve been asking to have this merged for a long time, even if it\u0027s not the default. I\u0027d like to be able to use it locally at *least* and it\u0027s not convenient to do that if I have to patch it on top of whatever I\u0027m working on. I\u0027d also advocate for nova and glance jobs to use it where possible as I\u0027ve never seen it cause a problem. The only thing I\u0027ve ever known wasn\u0027t working was the global venv thing I just fixed, and that pretty much broke everything anyway.\n\nThe entire thing is a hack, so I\u0027m not sure what things you want to see changed or marked as TODO, but if you can list them I can consider working on them.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"29f66fa25415ba1c7031d0bba7c2fe8f5ded13ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"e2324d05_942ee632","in_reply_to":"86618937_1710acc3","updated":"2024-05-14 14:26:05.000000000","message":"Yep, I just want to make sure this is *palatable* to be merged, so thanks for your support.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"59850e84e0ed3b99ad53b3ec2fb12b5decbb48d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"519d086f_3db714eb","in_reply_to":"f5c57402_e6ab134f","updated":"2024-05-13 15:22:16.000000000","message":"Part of the motivation behind this is it allows us to cache keystone tokens in the server/osc shell as well as avoid repeated python startup costs with starting a new osc each run. This in theory will cut minutes off of every devstack job that uses it saving time and resources.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"1726f924e28da19a749357910369d8ae71755c7e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"90f45fcb_b55f18cc","updated":"2024-05-14 19:46:47.000000000","message":"thanks","commit_id":"9a97326c3f3b04728cf4484df37ce7260f6367af"}],"files/openstack-cli-server/openstack":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f1105cb562b5adca209b583d9e62707c3c54f413","unresolved":true,"context_lines":[{"line_number":86,"context_line":"        \"env\": env,"},{"line_number":87,"context_line":"        \"argv\": sys.argv[1:]"},{"line_number":88,"context_line":"    }"},{"line_number":89,"context_line":"    # Image create commands don\u0027t work correctly on the server for some reason."},{"line_number":90,"context_line":"    # Run them directly in the client."},{"line_number":91,"context_line":"    image_last \u003d False"},{"line_number":92,"context_line":"    call_direct \u003d False"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"906808a6_838412d4","line":89,"updated":"2024-05-08 16:49:59.000000000","message":"This is because we pass the image data to osc via stdin in devstack. There\u0027s no reason we need to do that, and if we just pass `--file \u003cfilename\u003e` then we can drop this hack. I\u0027ll do that and also add a check here to fail gracefully with a \"you can\u0027t do that\" error if someone tries.","commit_id":"7c92165219b3a564260020ed87bf687c3b49a3ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a774d9af326f2aeed55550545942ee48e5374c6f","unresolved":false,"context_lines":[{"line_number":86,"context_line":"        \"env\": env,"},{"line_number":87,"context_line":"        \"argv\": sys.argv[1:]"},{"line_number":88,"context_line":"    }"},{"line_number":89,"context_line":"    # Image create commands don\u0027t work correctly on the server for some reason."},{"line_number":90,"context_line":"    # Run them directly in the client."},{"line_number":91,"context_line":"    image_last \u003d False"},{"line_number":92,"context_line":"    call_direct \u003d False"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"91ce5a1b_a6c42cae","line":89,"in_reply_to":"906808a6_838412d4","updated":"2024-05-08 17:13:32.000000000","message":"Done","commit_id":"7c92165219b3a564260020ed87bf687c3b49a3ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f1105cb562b5adca209b583d9e62707c3c54f413","unresolved":true,"context_lines":[{"line_number":102,"context_line":"        # We\u0027ve already connected to the server, we need to send it some dummy"},{"line_number":103,"context_line":"        # data so it doesn\u0027t wait forever."},{"line_number":104,"context_line":"        send(sock, {})"},{"line_number":105,"context_line":"        from openstackclient import shell as osc_shell"},{"line_number":106,"context_line":"        sh \u003d osc_shell.OpenStackShell()"},{"line_number":107,"context_line":"        sys.exit(sh.run(cmd[\"argv\"]))"},{"line_number":108,"context_line":"    else:"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"90a81a2d_f841acf1","line":105,"updated":"2024-05-08 16:49:59.000000000","message":"This will fail if we\u0027re not running with the global venv python, or `PYTHONPATH` set accordingly. However, the easier fix (per above) is to just remove this hack and avoid the need to handle the complexity of making `openstackclient` importable here.","commit_id":"7c92165219b3a564260020ed87bf687c3b49a3ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a774d9af326f2aeed55550545942ee48e5374c6f","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        # We\u0027ve already connected to the server, we need to send it some dummy"},{"line_number":103,"context_line":"        # data so it doesn\u0027t wait forever."},{"line_number":104,"context_line":"        send(sock, {})"},{"line_number":105,"context_line":"        from openstackclient import shell as osc_shell"},{"line_number":106,"context_line":"        sh \u003d osc_shell.OpenStackShell()"},{"line_number":107,"context_line":"        sys.exit(sh.run(cmd[\"argv\"]))"},{"line_number":108,"context_line":"    else:"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"b419905d_2bf7c5ab","line":105,"in_reply_to":"90a81a2d_f841acf1","updated":"2024-05-08 17:13:32.000000000","message":"Done","commit_id":"7c92165219b3a564260020ed87bf687c3b49a3ef"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"2365211d9c591bde885f517eb92b4d0db428e7bb","unresolved":true,"context_lines":[{"line_number":76,"context_line":"               \"OS_TENANT_NAME\","},{"line_number":77,"context_line":"               \"OS_USERNAME\","},{"line_number":78,"context_line":"               \"OS_VOLUME_API_VERSION\","},{"line_number":79,"context_line":"               \"OS_CLOUD\"]"},{"line_number":80,"context_line":"    for name in passenv:"},{"line_number":81,"context_line":"        if name in os.environ:"},{"line_number":82,"context_line":"            env[name] \u003d os.environ[name]"}],"source_content_type":"application/octet-stream","patch_set":29,"id":"8c4b696c_46543539","line":79,"updated":"2024-05-10 12:00:30.000000000","message":"this list looks pretty random, which I think can lead to surprises. in theory we should be able to only rely on OS_CLOUD by now, maybe a good opportunity to clean up legacy uses?","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"16e79e675ac6a711e9e5959f9cc3623603b11ebc","unresolved":true,"context_lines":[{"line_number":76,"context_line":"               \"OS_TENANT_NAME\","},{"line_number":77,"context_line":"               \"OS_USERNAME\","},{"line_number":78,"context_line":"               \"OS_VOLUME_API_VERSION\","},{"line_number":79,"context_line":"               \"OS_CLOUD\"]"},{"line_number":80,"context_line":"    for name in passenv:"},{"line_number":81,"context_line":"        if name in os.environ:"},{"line_number":82,"context_line":"            env[name] \u003d os.environ[name]"}],"source_content_type":"application/octet-stream","patch_set":29,"id":"4ff621b3_eae3dc89","line":79,"in_reply_to":"8c4b696c_46543539","updated":"2024-05-10 14:32:59.000000000","message":"Yeah, I dunno, I\u0027d have to try to see if everything works. The potential for breaking someone\u0027s devstack plugin also exists, as I found a couple (like ironic) that needed tweaking.\n\nI don\u0027t think this really hurts anything given the hack job that this is in general :)","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"59850e84e0ed3b99ad53b3ec2fb12b5decbb48d2","unresolved":true,"context_lines":[{"line_number":99,"context_line":"        # data so it doesn\u0027t wait forever."},{"line_number":100,"context_line":"        send(sock, {})"},{"line_number":101,"context_line":"        print(\u0027Image create without --file is not allowed in server mode\u0027,"},{"line_number":102,"context_line":"              file\u003dsys.stderr)"},{"line_number":103,"context_line":"        sys.exit(1)"},{"line_number":104,"context_line":"    else:"},{"line_number":105,"context_line":"        send(sock, cmd)"}],"source_content_type":"application/octet-stream","patch_set":29,"id":"247428de_f52645d8","line":102,"updated":"2024-05-13 15:22:16.000000000","message":"Is there some reason the osc shell in the server can\u0027t report this error and we have to catch it early here? That might be worth a comment if so.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1a72cf0985d9c849fce5c53148260b7f73c0e82c","unresolved":true,"context_lines":[{"line_number":99,"context_line":"        # data so it doesn\u0027t wait forever."},{"line_number":100,"context_line":"        send(sock, {})"},{"line_number":101,"context_line":"        print(\u0027Image create without --file is not allowed in server mode\u0027,"},{"line_number":102,"context_line":"              file\u003dsys.stderr)"},{"line_number":103,"context_line":"        sys.exit(1)"},{"line_number":104,"context_line":"    else:"},{"line_number":105,"context_line":"        send(sock, cmd)"}],"source_content_type":"application/octet-stream","patch_set":29,"id":"9281e64b_ae22fce4","line":102,"in_reply_to":"247428de_f52645d8","updated":"2024-05-13 15:49:46.000000000","message":"Why does it matter? The exceptional case (which used to be different) was always handled here. I think it\u0027s reasonable to keep the server clean and straightforward and consider this to be the \"wedge\" that provides whatever glue the caller needs to see the behavior they expect.\n\nIn case it\u0027s not clear, the problem is that you can\u0027t upload an image by passing the image data to stdin on this client wedge, so we require the file argument as a result. To me, that\u0027s client-based glue/policy, which could be different in the future, without the server needing to know. If there was something specific about the environment, or how it was called that mattered, it\u0027d be this client wedge that would be best positioned to figure out what to do.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c432f152d5cc01c0fcf1079de67ae8917f35a966","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        # data so it doesn\u0027t wait forever."},{"line_number":100,"context_line":"        send(sock, {})"},{"line_number":101,"context_line":"        print(\u0027Image create without --file is not allowed in server mode\u0027,"},{"line_number":102,"context_line":"              file\u003dsys.stderr)"},{"line_number":103,"context_line":"        sys.exit(1)"},{"line_number":104,"context_line":"    else:"},{"line_number":105,"context_line":"        send(sock, cmd)"}],"source_content_type":"application/octet-stream","patch_set":29,"id":"78b83e46_7e529268","line":102,"in_reply_to":"9281e64b_ae22fce4","updated":"2024-05-14 14:31:09.000000000","message":"Added more context.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"}],"files/openstack-cli-server/openstack-cli-server":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5fa236e88ecc1a3d5b57f2bbce97fa7f177a593d","unresolved":true,"context_lines":[{"line_number":63,"context_line":"    return doc"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"while True:"},{"line_number":66,"context_line":"    csock, client_address \u003d sock.accept()"},{"line_number":67,"context_line":"    try:"},{"line_number":68,"context_line":"        doc \u003d recv(csock)"},{"line_number":69,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":21,"id":"c45f7ced_b090ec32","line":66,"updated":"2021-02-10 19:41:44.000000000","message":"So I think this will end up serializing all the would-be-parallel osc commands that I run in parallel right? Maybe that won\u0027t matter if the startup overhead is nearly zero, but I\u0027m pretty sure we\u0027re overlapping more than just startup time right now based on my seat-of-the-pants feelings. Not just OSC overhead, but also waiting on slow replies from servers. Parallelizing the execution of those not only helps with OSC overhead, but also latency due to slowness in the servers.\n\nPresumably we could just use a queue in here to fork off some workers and let one handle each accept? Not sure how much complexity you want to build into a server written in devstack to speed up a slow python program, but I also don\u0027t want to lose the benefit we get by doing things like flavor and volume type creation in parallel.","commit_id":"45b9646d104c23e37b32cdcea6a9b3f32866eaee"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d2b95f1d0534cd79f05001885c0022053f9f5c30","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    return doc"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"while True:"},{"line_number":66,"context_line":"    csock, client_address \u003d sock.accept()"},{"line_number":67,"context_line":"    try:"},{"line_number":68,"context_line":"        doc \u003d recv(csock)"},{"line_number":69,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":21,"id":"07bda6a9_01f72ec7","line":66,"in_reply_to":"140d55e4_7bdb3aa1","updated":"2022-07-01 14:17:06.000000000","message":"Done","commit_id":"45b9646d104c23e37b32cdcea6a9b3f32866eaee"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"b524dae657329f958c99767769450a30ca526ff4","unresolved":true,"context_lines":[{"line_number":63,"context_line":"    return doc"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"while True:"},{"line_number":66,"context_line":"    csock, client_address \u003d sock.accept()"},{"line_number":67,"context_line":"    try:"},{"line_number":68,"context_line":"        doc \u003d recv(csock)"},{"line_number":69,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":21,"id":"140d55e4_7bdb3aa1","line":66,"in_reply_to":"c45f7ced_b090ec32","updated":"2021-02-10 19:55:58.000000000","message":"Yeah, I think you\u0027re right. I just replied to the mailing list thread too, but even with with this limitation it\u0027s still faster than the regular client. Parallel execution does make the osc waits worse, but it\u0027s still less than half what it is without the service. If we could get it back to what it was with serial execution we might save about another minute.","commit_id":"45b9646d104c23e37b32cdcea6a9b3f32866eaee"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b5aca0829645d3ed7fc93f5af443c51752f6abc8","unresolved":true,"context_lines":[{"line_number":86,"context_line":"            def noexit(stat):"},{"line_number":87,"context_line":"                raise Exit(stat)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"            sys.exit \u003d noexit"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"            if doc[\"app\"] \u003d\u003d \"openstack\":"},{"line_number":92,"context_line":"                sh \u003d osc_shell.OpenStackShell()"}],"source_content_type":"application/octet-stream","patch_set":21,"id":"20b42fa7_07ccc9a5","line":89,"updated":"2021-02-10 20:06:59.000000000","message":"This is unbelievably heinous and you should be ashamed of yourself. \n\nI say that because...I didn\u0027t think of it. I had built something like this to wrap the internals, but the status code didn\u0027t seem to be exposed anywhere so I just kinda gave up :)","commit_id":"45b9646d104c23e37b32cdcea6a9b3f32866eaee"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"9e626173507ffbd401b2e4173335dd0072ef2f45","unresolved":true,"context_lines":[{"line_number":86,"context_line":"            def noexit(stat):"},{"line_number":87,"context_line":"                raise Exit(stat)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"            sys.exit \u003d noexit"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"            if doc[\"app\"] \u003d\u003d \"openstack\":"},{"line_number":92,"context_line":"                sh \u003d osc_shell.OpenStackShell()"}],"source_content_type":"application/octet-stream","patch_set":21,"id":"6706a868_8ba2fefe","line":89,"in_reply_to":"20b42fa7_07ccc9a5","updated":"2021-02-10 20:42:13.000000000","message":"I can\u0027t take credit or blame. This was all written by Dan Berrange years ago. :-)","commit_id":"45b9646d104c23e37b32cdcea6a9b3f32866eaee"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d2b95f1d0534cd79f05001885c0022053f9f5c30","unresolved":false,"context_lines":[{"line_number":86,"context_line":"            def noexit(stat):"},{"line_number":87,"context_line":"                raise Exit(stat)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"            sys.exit \u003d noexit"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"            if doc[\"app\"] \u003d\u003d \"openstack\":"},{"line_number":92,"context_line":"                sh \u003d osc_shell.OpenStackShell()"}],"source_content_type":"application/octet-stream","patch_set":21,"id":"833222ef_f4bea412","line":89,"in_reply_to":"6706a868_8ba2fefe","updated":"2022-07-01 14:17:06.000000000","message":"Done","commit_id":"45b9646d104c23e37b32cdcea6a9b3f32866eaee"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"2365211d9c591bde885f517eb92b4d0db428e7bb","unresolved":true,"context_lines":[{"line_number":19,"context_line":"import json"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from openstackclient import shell as osc_shell"},{"line_number":22,"context_line":"from six import StringIO"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"server_address \u003d \"/tmp/openstack.sock\""},{"line_number":25,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":29,"id":"327dad19_adb5b41d","line":22,"updated":"2024-05-10 12:00:30.000000000","message":"this seems outdated?","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"16e79e675ac6a711e9e5959f9cc3623603b11ebc","unresolved":true,"context_lines":[{"line_number":19,"context_line":"import json"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from openstackclient import shell as osc_shell"},{"line_number":22,"context_line":"from six import StringIO"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"server_address \u003d \"/tmp/openstack.sock\""},{"line_number":25,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":29,"id":"ff451fa5_9efacde1","line":22,"in_reply_to":"327dad19_adb5b41d","updated":"2024-05-10 14:32:59.000000000","message":"Clearly :)","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"29f66fa25415ba1c7031d0bba7c2fe8f5ded13ab","unresolved":true,"context_lines":[{"line_number":19,"context_line":"import json"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from openstackclient import shell as osc_shell"},{"line_number":22,"context_line":"from six import StringIO"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"server_address \u003d \"/tmp/openstack.sock\""},{"line_number":25,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":29,"id":"e0a418a8_7898ca75","line":22,"in_reply_to":"520ed454_fd172dd3","updated":"2024-05-14 14:26:05.000000000","message":"Yep, I will.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bbda9a345d13518fc198bf0f92c8391b52d234e3","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import json"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from openstackclient import shell as osc_shell"},{"line_number":22,"context_line":"from six import StringIO"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"server_address \u003d \"/tmp/openstack.sock\""},{"line_number":25,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":29,"id":"547630e3_0f028b60","line":22,"in_reply_to":"e0a418a8_7898ca75","updated":"2024-05-14 14:29:13.000000000","message":"Done","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":22873,"name":"Martin Kopec","email":"mkopec@redhat.com","username":"mkopec"},"change_message_id":"f744931cd4d727f8499006d7b9d8dbbe9bf903ac","unresolved":true,"context_lines":[{"line_number":19,"context_line":"import json"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from openstackclient import shell as osc_shell"},{"line_number":22,"context_line":"from six import StringIO"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"server_address \u003d \"/tmp/openstack.sock\""},{"line_number":25,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":29,"id":"520ed454_fd172dd3","line":22,"in_reply_to":"ff451fa5_9efacde1","updated":"2024-05-14 12:01:36.000000000","message":"maybe this could be updated while we\u0027re waiting on depends-on patches","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"}],"functions-common":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f1105cb562b5adca209b583d9e62707c3c54f413","unresolved":true,"context_lines":[{"line_number":2440,"context_line":""},{"line_number":2441,"context_line":"function install_openstack_cli_server {"},{"line_number":2442,"context_line":"    export PATH\u003d$TOP_DIR/files/openstack-cli-server:$PATH"},{"line_number":2443,"context_line":"    run_process openstack-cli-server $TOP_DIR/files/openstack-cli-server/openstack-cli-server"},{"line_number":2444,"context_line":"}"},{"line_number":2445,"context_line":""},{"line_number":2446,"context_line":"function oscwrap {"}],"source_content_type":"application/x-shellscript","patch_set":24,"id":"6d5c3d57_df28326e","line":2443,"updated":"2024-05-08 16:49:59.000000000","message":"This needs to run the server with the python from global venv.","commit_id":"7c92165219b3a564260020ed87bf687c3b49a3ef"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a774d9af326f2aeed55550545942ee48e5374c6f","unresolved":false,"context_lines":[{"line_number":2440,"context_line":""},{"line_number":2441,"context_line":"function install_openstack_cli_server {"},{"line_number":2442,"context_line":"    export PATH\u003d$TOP_DIR/files/openstack-cli-server:$PATH"},{"line_number":2443,"context_line":"    run_process openstack-cli-server $TOP_DIR/files/openstack-cli-server/openstack-cli-server"},{"line_number":2444,"context_line":"}"},{"line_number":2445,"context_line":""},{"line_number":2446,"context_line":"function oscwrap {"}],"source_content_type":"application/x-shellscript","patch_set":24,"id":"f13ffc19_27e741e9","line":2443,"in_reply_to":"6d5c3d57_df28326e","updated":"2024-05-08 17:13:32.000000000","message":"Done","commit_id":"7c92165219b3a564260020ed87bf687c3b49a3ef"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"2365211d9c591bde885f517eb92b4d0db428e7bb","unresolved":true,"context_lines":[{"line_number":2439,"context_line":"}"},{"line_number":2440,"context_line":""},{"line_number":2441,"context_line":"function install_openstack_cli_server {"},{"line_number":2442,"context_line":"    export PATH\u003d$TOP_DIR/files/openstack-cli-server:$PATH"},{"line_number":2443,"context_line":"    run_process openstack-cli-server \"$PYTHON $TOP_DIR/files/openstack-cli-server/openstack-cli-server\""},{"line_number":2444,"context_line":"}"},{"line_number":2445,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":29,"id":"46c8cd48_4563586e","line":2442,"updated":"2024-05-10 12:00:30.000000000","message":"not sure this is needed if the command below uses the full path to the script?","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"16e79e675ac6a711e9e5959f9cc3623603b11ebc","unresolved":true,"context_lines":[{"line_number":2439,"context_line":"}"},{"line_number":2440,"context_line":""},{"line_number":2441,"context_line":"function install_openstack_cli_server {"},{"line_number":2442,"context_line":"    export PATH\u003d$TOP_DIR/files/openstack-cli-server:$PATH"},{"line_number":2443,"context_line":"    run_process openstack-cli-server \"$PYTHON $TOP_DIR/files/openstack-cli-server/openstack-cli-server\""},{"line_number":2444,"context_line":"}"},{"line_number":2445,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":29,"id":"b6a121ab_1c3eefc8","line":2442,"in_reply_to":"46c8cd48_4563586e","updated":"2024-05-10 14:32:59.000000000","message":"This is for the client invocation, so that from here on we find \"openstack\" as the one in `devstack/files/openstack-cli-server` instead of `/usr/local/bin` or `/opt/...`.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bbda9a345d13518fc198bf0f92c8391b52d234e3","unresolved":true,"context_lines":[{"line_number":2439,"context_line":"}"},{"line_number":2440,"context_line":""},{"line_number":2441,"context_line":"function install_openstack_cli_server {"},{"line_number":2442,"context_line":"    export PATH\u003d$TOP_DIR/files/openstack-cli-server:$PATH"},{"line_number":2443,"context_line":"    run_process openstack-cli-server \"$PYTHON $TOP_DIR/files/openstack-cli-server/openstack-cli-server\""},{"line_number":2444,"context_line":"}"},{"line_number":2445,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":29,"id":"77a036a4_d3c70613","line":2442,"in_reply_to":"733c908e_64d89767","updated":"2024-05-14 14:29:13.000000000","message":"But.. you only want to do this if you\u0027re in this mode. If you don\u0027t start the server then putting this in the path will break everything afterwards because you\u0027ll then be running the special client with no server to talk to.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"ab40600c81643e0174b6b935948189732d030b52","unresolved":true,"context_lines":[{"line_number":2439,"context_line":"}"},{"line_number":2440,"context_line":""},{"line_number":2441,"context_line":"function install_openstack_cli_server {"},{"line_number":2442,"context_line":"    export PATH\u003d$TOP_DIR/files/openstack-cli-server:$PATH"},{"line_number":2443,"context_line":"    run_process openstack-cli-server \"$PYTHON $TOP_DIR/files/openstack-cli-server/openstack-cli-server\""},{"line_number":2444,"context_line":"}"},{"line_number":2445,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":29,"id":"733c908e_64d89767","line":2442,"in_reply_to":"b6a121ab_1c3eefc8","updated":"2024-05-13 08:59:38.000000000","message":"Hmm, I would suggest to move it outside of this function, then, to give it more visibility.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"}],"roles/run-devstack/tasks/main.yaml":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"676e9d1eb89d1e9169a0675d6238d6391f04b5bd","unresolved":false,"context_lines":[{"line_number":2,"context_line":"  shell:"},{"line_number":3,"context_line":"    cmd: |"},{"line_number":4,"context_line":"      export ORIG_PATH\u003d$PATH"},{"line_number":5,"context_line":"      export PATH\u003d/home/stack/bin:$PATH"},{"line_number":6,"context_line":"      ./stack.sh 2\u003e\u00261"},{"line_number":7,"context_line":"      rc\u003d$?"},{"line_number":8,"context_line":"      echo \"*** FINISHED ***\""}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7faddb67_d2cb271b","line":5,"updated":"2019-08-19 10:21:40.000000000","message":"Maybe make this conditional, too?","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"17b5320337c7627ca87bbe583520c754ee2bc8ed","unresolved":false,"context_lines":[{"line_number":2,"context_line":"  shell:"},{"line_number":3,"context_line":"    cmd: |"},{"line_number":4,"context_line":"      export ORIG_PATH\u003d$PATH"},{"line_number":5,"context_line":"      export PATH\u003d/home/stack/bin:$PATH"},{"line_number":6,"context_line":"      ./stack.sh 2\u003e\u00261"},{"line_number":7,"context_line":"      rc\u003d$?"},{"line_number":8,"context_line":"      echo \"*** FINISHED ***\""}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7faddb67_5f21459d","line":5,"in_reply_to":"7faddb67_d2cb271b","updated":"2019-08-21 21:22:19.000000000","message":"I will try that.","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"}],"roles/setup-osc-service/files/openstack":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"676e9d1eb89d1e9169a0675d6238d6391f04b5bd","unresolved":false,"context_lines":[{"line_number":62,"context_line":"               \"OS_REGION_NAME\","},{"line_number":63,"context_line":"               \"OS_TENANT_NAME\","},{"line_number":64,"context_line":"               \"OS_USERNAME\","},{"line_number":65,"context_line":"               \"OS_VOLUME_API_VERSION\"]"},{"line_number":66,"context_line":"    for name in passenv:"},{"line_number":67,"context_line":"        if name in os.environ:"},{"line_number":68,"context_line":"            env[name] \u003d os.environ[name]"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"7faddb67_72e593a3","line":65,"updated":"2019-08-19 10:21:40.000000000","message":"This selection of variables looks pretty random to me, or maybe pretty outdated, we\u0027d need things like OS_*_DOMAIN_NAME and more if someone really uses environment vars. Luckily today all calls in devstack seem to use the \"--os-cloud\" parameter, so maybe just drop this and be explicit that all parameters must be included on the command line?","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"17b5320337c7627ca87bbe583520c754ee2bc8ed","unresolved":false,"context_lines":[{"line_number":62,"context_line":"               \"OS_REGION_NAME\","},{"line_number":63,"context_line":"               \"OS_TENANT_NAME\","},{"line_number":64,"context_line":"               \"OS_USERNAME\","},{"line_number":65,"context_line":"               \"OS_VOLUME_API_VERSION\"]"},{"line_number":66,"context_line":"    for name in passenv:"},{"line_number":67,"context_line":"        if name in os.environ:"},{"line_number":68,"context_line":"            env[name] \u003d os.environ[name]"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"7faddb67_1fd8ad7c","line":65,"in_reply_to":"7faddb67_72e593a3","updated":"2019-08-21 21:22:19.000000000","message":"Interestingly, this still works for me if I source openrc. It actually doesn\u0027t work if I export OS_CLOUD, so I think that should get added here. I don\u0027t have strong feelings about the others, but since they\u0027re not hurting anything I\u0027m kind of inclined to leave it. For interactive use (which I realize isn\u0027t the main purpose of this) I\u0027m not all that fond of having to always specify --os-cloud.","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"17b5320337c7627ca87bbe583520c754ee2bc8ed","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    }"},{"line_number":78,"context_line":"    # Image create commands don\u0027t work correctly on the server for some reason."},{"line_number":79,"context_line":"    # Run them directly in the client."},{"line_number":80,"context_line":"    if len(cmd[\"argv\"]) \u003e\u003d 2 and cmd[\"argv\"][0] \u003d\u003d \"image\" and cmd[\"argv\"][0] \u003d\u003d \"create\":"},{"line_number":81,"context_line":"        from openstackclient import shell as osc_shell"},{"line_number":82,"context_line":"        sh \u003d osc_shell.OpenStackShell()"},{"line_number":83,"context_line":"        sys.exit(sh.run(cmd[\"argv\"]))"}],"source_content_type":"application/octet-stream","patch_set":18,"id":"7faddb67_aa4fd58f","line":80,"updated":"2019-08-21 21:22:19.000000000","message":"This is all kinds of wrong. Not sure how it worked when I tested it locally. :-/","commit_id":"bae80f6ca2c8f3f8ac67e9ce70c77b21fd410986"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"9c09e51555ebcf57e04c81e8659f90f0b5327582","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/python"},{"line_number":2,"context_line":"# Copyright 2016 Red Hat, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"# not use this file except in compliance with the License. You may obtain"}],"source_content_type":"application/octet-stream","patch_set":19,"id":"7faddb67_c300e905","line":2,"updated":"2019-08-22 16:59:19.000000000","message":"Daniel confirmed to me that he intended to license this as Apache 2. He also pointed out that since he wrote it for Red Hat they own the copyright and can re-license it if they like. I think I can safely say they would like to.","commit_id":"bbda906e5dfc4c7509ab9e95c8d90480ebfb1e8d"}],"roles/setup-osc-service/files/openstack-server":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"676e9d1eb89d1e9169a0675d6238d6391f04b5bd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# TODO(bnemec): Make this python 3 compatible"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"import socket"},{"line_number":6,"context_line":"import sys"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"7faddb67_d299e71e","line":3,"updated":"2019-08-19 10:21:40.000000000","message":"With the current development speed of devstack, I think we cannot afford to merge code now that doesn\u0027t work with python3 and would need someone to dedicate to updating it before the end of the year. So I\u0027d consider not running with python3 here a hard blocker.","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"17b5320337c7627ca87bbe583520c754ee2bc8ed","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/python"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# TODO(bnemec): Make this python 3 compatible"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"import socket"},{"line_number":6,"context_line":"import sys"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"7faddb67_7fd2015e","line":3,"in_reply_to":"7faddb67_d299e71e","updated":"2019-08-21 21:22:19.000000000","message":"Yeah, fair enough. The next PS is py3-compatible.","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"}],"roles/setup-osc-service/files/openstack-server.service":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"676e9d1eb89d1e9169a0675d6238d6391f04b5bd","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Description\u003dOpenStackClient server"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"[Service]"},{"line_number":5,"context_line":"ExecStart\u003d/home/stack/bin/openstack-server"},{"line_number":6,"context_line":"StandardOutput\u003dsyslog"},{"line_number":7,"context_line":"StandardError\u003dsyslog"},{"line_number":8,"context_line":"User\u003dstack"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"7faddb67_f28d03d4","line":5,"updated":"2019-08-19 10:21:40.000000000","message":"Maybe call this \"openstack-cli-server\" in order to be more explicit about its purpose?","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"17b5320337c7627ca87bbe583520c754ee2bc8ed","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Description\u003dOpenStackClient server"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"[Service]"},{"line_number":5,"context_line":"ExecStart\u003d/home/stack/bin/openstack-server"},{"line_number":6,"context_line":"StandardOutput\u003dsyslog"},{"line_number":7,"context_line":"StandardError\u003dsyslog"},{"line_number":8,"context_line":"User\u003dstack"}],"source_content_type":"application/octet-stream","patch_set":17,"id":"7faddb67_3fc809a6","line":5,"in_reply_to":"7faddb67_f28d03d4","updated":"2019-08-21 21:22:19.000000000","message":"Good idea.","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"}],"roles/setup-osc-service/files/override_path.sh":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"17b5320337c7627ca87bbe583520c754ee2bc8ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"7faddb67_fcbc31bc","updated":"2019-08-21 21:22:19.000000000","message":"This file is not currently used and should be removed.","commit_id":"609db27bd3a97ba9468bd556a3a4c7d9c329c6d0"}],"roles/setup-osc-service/tasks/main.yaml":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"676e9d1eb89d1e9169a0675d6238d6391f04b5bd","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  become: yes"},{"line_number":29,"context_line":"- name: Create openstack-server log file"},{"line_number":30,"context_line":"  file:"},{"line_number":31,"context_line":"    path: /var/log/openstack-server.log"},{"line_number":32,"context_line":"    state: touch"},{"line_number":33,"context_line":"    owner: stack"},{"line_number":34,"context_line":"    group: stack"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7faddb67_72b3539b","line":31,"updated":"2019-08-19 10:21:40.000000000","message":"Where is this needed? I would expect the log from the systemd service to be collected via journalctl. Probably needs to be added to the post stage somewhere?","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"17b5320337c7627ca87bbe583520c754ee2bc8ed","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  become: yes"},{"line_number":29,"context_line":"- name: Create openstack-server log file"},{"line_number":30,"context_line":"  file:"},{"line_number":31,"context_line":"    path: /var/log/openstack-server.log"},{"line_number":32,"context_line":"    state: touch"},{"line_number":33,"context_line":"    owner: stack"},{"line_number":34,"context_line":"    group: stack"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7faddb67_bfbb990c","line":31,"in_reply_to":"7faddb67_72b3539b","updated":"2019-08-21 21:22:19.000000000","message":"Oops, leftover debugging cruft. The service should log to syslog now.","commit_id":"28e3c80e0eb2abf310c492cb114404c91df33ba1"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"ac331ab0ca835eb617a76feef7014d815d3cda49","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    group: stack"},{"line_number":23,"context_line":"    mode: \u0027775\u0027"},{"line_number":24,"context_line":"  become: yes"},{"line_number":25,"context_line":"- name: Pip install openstackclient"},{"line_number":26,"context_line":"  pip:"},{"line_number":27,"context_line":"    name: python-openstackclient"},{"line_number":28,"context_line":"  become: yes"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"7faddb67_10cb2c1e","line":25,"updated":"2019-08-30 06:20:47.000000000","message":"The problem i see here is that we\u0027re using a release version of openstackclient which will mean that our usual Depends-On type logical for testing changes in it is broken.  I really hate breaking things like that, because it\u0027s the worst type -- you thought you were testing your changes with a Depends-On: but devstack never installed it, and everything silently passed.\n\nI had at first imagined this service would be started within devstack, after it installs openstackclient.  this would obey all the usual LIBS_FROM_GIT rules and be running the devstack version.  That\u0027s one approach.\n\nI /think/ that you could use the approach write-devstack-local-conf role uses to auto-generate LIBS_FROM_GIT and inspect the required-projects for openstacksdk before doing the pip install in the tasks, and if there install from the zuul checked-out copy here.  I think this would ensure that Depends-On: \"just works\" too.","commit_id":"bbda906e5dfc4c7509ab9e95c8d90480ebfb1e8d"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"7528143555e90242d41775bc773d2ba4bdac5fbe","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    group: stack"},{"line_number":23,"context_line":"    mode: \u0027775\u0027"},{"line_number":24,"context_line":"  become: yes"},{"line_number":25,"context_line":"- name: Pip install openstackclient"},{"line_number":26,"context_line":"  pip:"},{"line_number":27,"context_line":"    name: python-openstackclient"},{"line_number":28,"context_line":"  become: yes"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"7faddb67_6e0a58d1","line":25,"in_reply_to":"7faddb67_10cb2c1e","updated":"2019-09-05 20:26:21.000000000","message":"Oh, I completely forgot to address this. My original intention was actually to disable this entirely if openstackclient was anywhere in the depends-on. I don\u0027t think we should be doing client hacks when the client is under test.\n\nIf I understand your suggestions correctly, that probably fits more with the second option. I hadn\u0027t really considered dependencies though. I guess I\u0027ll see if I can use required-projects to come up with a complete list.","commit_id":"bbda906e5dfc4c7509ab9e95c8d90480ebfb1e8d"}],"stack.sh":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"2365211d9c591bde885f517eb92b4d0db428e7bb","unresolved":true,"context_lines":[{"line_number":1023,"context_line":"else"},{"line_number":1024,"context_line":"    pip_install_gr python-openstackclient"},{"line_number":1025,"context_line":"    if is_service_enabled openstack-cli-server; then"},{"line_number":1026,"context_line":"        install_openstack_cli_server"},{"line_number":1027,"context_line":"    fi"},{"line_number":1028,"context_line":"fi"},{"line_number":1029,"context_line":""}],"source_content_type":"text/x-sh","patch_set":29,"id":"85bda257_ee5a2813","line":1026,"updated":"2024-05-10 12:00:30.000000000","message":"Why is this only done on the else path? Seems it will break testing osc patches in unexpected ways\n\nThere was some discussion about depends-on testing in earlier PSs, but I haven\u0027t found a conclusion about that","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"16e79e675ac6a711e9e5959f9cc3623603b11ebc","unresolved":true,"context_lines":[{"line_number":1023,"context_line":"else"},{"line_number":1024,"context_line":"    pip_install_gr python-openstackclient"},{"line_number":1025,"context_line":"    if is_service_enabled openstack-cli-server; then"},{"line_number":1026,"context_line":"        install_openstack_cli_server"},{"line_number":1027,"context_line":"    fi"},{"line_number":1028,"context_line":"fi"},{"line_number":1029,"context_line":""}],"source_content_type":"text/x-sh","patch_set":29,"id":"6adf7dda_7e0170e2","line":1026,"in_reply_to":"85bda257_ee5a2813","updated":"2024-05-10 14:32:59.000000000","message":"I assume it\u0027s to avoid using this when we\u0027re actually testing osc itself. But, if we ever turned this on by default they could turn it off on some/all of their jobs if desired.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"}],"unstack.sh":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"59850e84e0ed3b99ad53b3ec2fb12b5decbb48d2","unresolved":true,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"if is_service_enabled openstack-cli-server; then"},{"line_number":101,"context_line":"    stop_service devstack@openstack-cli-server"},{"line_number":102,"context_line":"fi"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"if is_service_enabled nova; then"},{"line_number":105,"context_line":"    stop_nova"}],"source_content_type":"text/x-sh","patch_set":29,"id":"b73f9311_97ef123e","line":102,"updated":"2024-05-13 15:22:16.000000000","message":"Nit: Should this be the very last service we stop so that any other services that need to use osc during the stop can take advantage of this longer lived faster service for API interaction?","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"bbda9a345d13518fc198bf0f92c8391b52d234e3","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"if is_service_enabled openstack-cli-server; then"},{"line_number":101,"context_line":"    stop_service devstack@openstack-cli-server"},{"line_number":102,"context_line":"fi"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"if is_service_enabled nova; then"},{"line_number":105,"context_line":"    stop_nova"}],"source_content_type":"text/x-sh","patch_set":29,"id":"dc0f8ba7_129b8acd","line":102,"in_reply_to":"2ca829fb_a1e3c618","updated":"2024-05-14 14:29:13.000000000","message":"Done","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1a72cf0985d9c849fce5c53148260b7f73c0e82c","unresolved":true,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"if is_service_enabled openstack-cli-server; then"},{"line_number":101,"context_line":"    stop_service devstack@openstack-cli-server"},{"line_number":102,"context_line":"fi"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"if is_service_enabled nova; then"},{"line_number":105,"context_line":"    stop_nova"}],"source_content_type":"text/x-sh","patch_set":29,"id":"2ca829fb_a1e3c618","line":102,"in_reply_to":"b73f9311_97ef123e","updated":"2024-05-13 15:49:46.000000000","message":"Yep, sure.","commit_id":"f45f4d121eb7b6fd744e9045b518ee9b12e59064"}]}
