)]}'
{".zuul.yaml":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ac1394f6e1d4559c99a24329130ceee19167d549","unresolved":true,"context_lines":[{"line_number":16,"context_line":"      # including nova here makes this job reusable by other projects"},{"line_number":17,"context_line":"      - openstack/nova"},{"line_number":18,"context_line":"      - openstack/placement"},{"line_number":19,"context_line":"      - openstack/os-brick"},{"line_number":20,"context_line":"    irrelevant-files: \u0026functional-irrelevant-files"},{"line_number":21,"context_line":"      - ^.*\\.rst$"},{"line_number":22,"context_line":"      - ^api-.*$"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"bb62eb8b_c0a82a03","line":19,"updated":"2022-02-17 11:16:30.000000000","message":"we dont need os-brick here and below as soon as os-brick 5.2 is out and we bump the global requirements","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"}],"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9175d73beba90a77c2e7494578a9de369c0f5173","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"We are glad to join the openstack community and hope to get your"},{"line_number":42,"context_line":"feedback and comments on this driver, and if it is acceptable, to see"},{"line_number":43,"context_line":"it merged into the tree."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Note: the patch depends on os-brick 5.2.0. That version also increased"},{"line_number":46,"context_line":"the lower constraints of several dependencies, thus needs nova to"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"a5d6aa1b_311946b6","line":43,"updated":"2022-02-24 11:00:47.000000000","message":"hehe, we too ;)","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9175d73beba90a77c2e7494578a9de369c0f5173","unresolved":true,"context_lines":[{"line_number":45,"context_line":"Note: the patch depends on os-brick 5.2.0. That version also increased"},{"line_number":46,"context_line":"the lower constraints of several dependencies, thus needs nova to"},{"line_number":47,"context_line":"increase those as well in requirements.txt, lower-constraints.txt and"},{"line_number":48,"context_line":"setup.cfg."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Depends-On: I2e86fa84049053b7c75421d33ad1a1af459ef4e0"},{"line_number":51,"context_line":"Signed-off-by: Yuval Brave  yuval@lightbitslabs.com"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"937c6d2a_072bb7f7","line":48,"updated":"2022-02-24 11:00:47.000000000","message":"Yup, https://review.opendev.org/c/openstack/os-brick/+/821603 is now included in the 5.2.0 version.","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9175d73beba90a77c2e7494578a9de369c0f5173","unresolved":true,"context_lines":[{"line_number":47,"context_line":"increase those as well in requirements.txt, lower-constraints.txt and"},{"line_number":48,"context_line":"setup.cfg."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Depends-On: I2e86fa84049053b7c75421d33ad1a1af459ef4e0"},{"line_number":51,"context_line":"Signed-off-by: Yuval Brave  yuval@lightbitslabs.com"},{"line_number":52,"context_line":"Change-Id: Ic314b26695d9681d31a18adcec0794c2ff41fe71"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"cf539ab3_37d039fe","line":50,"updated":"2022-02-24 11:00:47.000000000","message":"no longer needed, but meh.","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c7b1db8655adc61aa14a05564242b7e54ccbcf10","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"171bf5e3_836a059b","updated":"2022-01-03 23:07:51.000000000","message":" i have not reviewd this yet but procedurally you would need a specless blueprint or a spec to intoduce this new driver. \nfrom a patch perspective you would need to also add a release note as well a unit/functional tests at a minium before this could be merged. ideally you should also have docs.\n\nim not sure if light bits can be tested in integration test have  you any plans to develp a devstack plugin and ci job to test this? long term  i think we would want to see some first or third party ci.\n\nthe last thing that comes to mind is is this all that is reqrued or are there os-brick and cinder changes reqiured?","commit_id":"f452f57d82517efcb58b558274cbefd6c8ac0ea7"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"8aaf9f0608fb8037cde3460306185c8fb07adf71","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fef1cdcf_0eeff739","updated":"2022-01-06 13:43:42.000000000","message":"Added blueprint\nhttps://blueprints.launchpad.net/nova/+spec/nova-support-lightos-driver","commit_id":"f452f57d82517efcb58b558274cbefd6c8ac0ea7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f9405401e5e615228b66ad8f11a8cc29adbca40b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b89d8354_8c9436bf","in_reply_to":"077719f9_cd2fbaa0","updated":"2022-01-11 15:06:10.000000000","message":"thanks although its kind fo light in detail.\n\nideally the spec shoudl explain at a high level all the info that woudl be need to for some else to implement the feature your enableing.\n\nso in this case you should intoduce what lightos is as a stoage system adn descirb how it integrates with botht he vms and underly storage at a high level.\n\nthe spec shoudl refernce the cinder spec for the driver and make it a depency\n\neither the nova or cinder sepc shoudl also detail the changes to os-brick\n\n\nyou also need to do more then coverd in your spec currently.\n\ne.g. write documentation for usign this solution end to end and idally how to deploy and test it.\n\nthat can refernce other docuemnetation \n\ni willl admit that its similar in size to \nhttps://specs.openstack.org/openstack/nova-specs/specs/pike/implemented/veritas-hyperscale-libvirt-volume-driver.html\n\nbut it should have a littel more detail like \nhttps://specs.openstack.org/openstack/nova-specs/specs/victoria/approved/support-volume-local-cache.html\nideally with some ascii diagrams illustrating how each fo the parts interact.\n\n\nif i understand correctly the lightos solution is using nvme storage presumable using NVMEoF presumable using rdma over ethernet as a transport.\n\nif its usign iscisi or sotmthing else it shoudl detail that in the sepc.\n\nyou also have a lot of detail the commit that should be in the spec.","commit_id":"f452f57d82517efcb58b558274cbefd6c8ac0ea7"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"33d58568c43b678ad23fc62c383102b7218eab60","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"eb5e6e84_3df31e8e","in_reply_to":"171bf5e3_836a059b","updated":"2022-01-04 15:05:34.000000000","message":"Hey,\n\nWe have an internal CI testing the driver with queens, rockey, stein and Train.\nlately we started to also test on xena using kolla.\n\nWe are working on a Third party CI and hopefully will be ready soon as possible.\n\nthere are 2 additional patch set:\ncinder: https://review.opendev.org/c/openstack/cinder/+/821602\nos-brick: https://review.opendev.org/c/openstack/os-brick/+/821603\n\nIs there a guide or reference to create a blueprint and unittests?","commit_id":"f452f57d82517efcb58b558274cbefd6c8ac0ea7"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"b6e3cc3cf0922a311c27101d601323e8f1decb83","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f631014d_8ab62710","in_reply_to":"58b66e4c_e9d56afd","updated":"2022-01-06 20:53:17.000000000","message":"Thank you for all the helpful information.\nI added unittests.\nI will go on to create a spec.","commit_id":"f452f57d82517efcb58b558274cbefd6c8ac0ea7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"47259b0d47716a491c1a166ded60b6b8fe5fb1e9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"58b66e4c_e9d56afd","in_reply_to":"d932b605_875eb799","updated":"2022-01-06 14:32:08.000000000","message":"thanks the contib docs have some info on how to create specs and blueprints \n\nhttps://github.com/openstack/nova/blob/master/doc/source/contributor/blueprints.rst\nhttps://github.com/openstack/nova/blob/master/doc/source/contributor/contributing.rst\n\nwe also describe the types of testing we do in nova in \nhttps://github.com/openstack/nova/blob/master/doc/source/contributor/testing.rst\nhttps://opendev.org/openstack/nova/src/branch/master/HACKING.rst also has some relevant info on testing and style guidelines.\n\nin your specific case, you should look at the existing unit test for the other volume drivers\n\nhttps://github.com/openstack/nova/tree/master/nova/tests/unit/virt/libvirt/volume\nand create tests for every function in your new driver mocking calls to functions outside of the lightos module.\n\n\nideally as a final level fo testing you would deploy either a third party or first party integration test job that used tempest with your volume driver to ensure that ti work end to end.\n\nif your solution is a pure software impelemtation you should idally devleop a devstack plugin like https://github.com/openstack/devstack-plugin-ceph to automate the deployment fo the lightos so that the upstream ci can deploy it.\nif it require specific hardware or is not deployable in a vm then you woudl have to create thrid party integration tests to fully test the end to end integration.\n\n\nthe nova specs template descibes how to write a spec\n\nhttps://github.com/openstack/nova-specs/blob/master/specs/yoga-template.rst\nyou submit a spec for review in the same way as code via a gerrit review to the nova-specs repo.\n\ni you wnat to proceed with a specless blueprint you would need to ask for the core team to appove that at the next team meeting on thrusday but i suspect a short spec would be desireable.","commit_id":"f452f57d82517efcb58b558274cbefd6c8ac0ea7"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"8aaf9f0608fb8037cde3460306185c8fb07adf71","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d932b605_875eb799","in_reply_to":"eb5e6e84_3df31e8e","updated":"2022-01-06 13:43:42.000000000","message":"https://blueprints.launchpad.net/nova/+spec/nova-support-lightos-driver","commit_id":"f452f57d82517efcb58b558274cbefd6c8ac0ea7"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"d87b34e6558111881b9176a75f229b997ac6b3eb","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"077719f9_cd2fbaa0","in_reply_to":"f631014d_8ab62710","updated":"2022-01-11 14:49:39.000000000","message":"Hey sean, I have created the spec:\nhttps://review.opendev.org/c/openstack/nova-specs/+/824191","commit_id":"f452f57d82517efcb58b558274cbefd6c8ac0ea7"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"b6e3cc3cf0922a311c27101d601323e8f1decb83","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"efcbb7d1_5bc86f29","updated":"2022-01-06 20:53:17.000000000","message":"Added unittests","commit_id":"c7aefa89c74356fb841d935bbb50cedae37d8909"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"c606fd654a5a4ba77b9092ca7e77a934ea6a5eeb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7d0f8ee4_16b590b7","updated":"2022-01-12 12:55:33.000000000","message":"update topic","commit_id":"c7aefa89c74356fb841d935bbb50cedae37d8909"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"40415a0fc6db9a1d95acf73fa48edce260a60c92","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"fbc6afa7_49d3d17f","updated":"2022-02-21 11:12:37.000000000","message":"Most of the problematic part is removed from the current nova driver. I\u0027m not sure this driver version now works together os-brick 5.2 without the monitoring thread. ","commit_id":"2099847890952e28b79846a2f5c87eeaeed5c4a6"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"9b65beedef0fb7659e14bc9a100cb3da1f6eefcb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"8c539d1b_42e8bea9","in_reply_to":"382748fb_a0c2162b","updated":"2022-02-21 14:48:45.000000000","message":"Thanks, updated","commit_id":"2099847890952e28b79846a2f5c87eeaeed5c4a6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a6d5186382e697fe9859e5d484e5159c3ca93659","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"382748fb_a0c2162b","in_reply_to":"a3cebcfc_ba7ffd24","updated":"2022-02-21 14:37:31.000000000","message":"it failed because novs lower constrait is 4.3.1\nhttps://github.com/openstack/nova/blob/master/lower-constraints.txt#L61\n\nyou will need to increase that to 5.2 in this change and also\nhere https://github.com/openstack/nova/blob/master/requirements.txt#L49","commit_id":"2099847890952e28b79846a2f5c87eeaeed5c4a6"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"bbae611ef89645fd920841b8430d7e89dbc6d0b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a3cebcfc_ba7ffd24","in_reply_to":"fbc6afa7_49d3d17f","updated":"2022-02-21 13:51:15.000000000","message":"the monitor thread is optional, cinder is also using the connector and doesn\u0027t init the monitor thread.\nI see openstack-tox-lower-constraints failed, zuul is using os-brick 5.2?","commit_id":"2099847890952e28b79846a2f5c87eeaeed5c4a6"},{"author":{"_account_id":34470,"name":"Yan Tseitlin","email":"yan@lightbitslabs.com","username":"yants"},"change_message_id":"7e765d81669869c9ef1c7709c470964a1c24a868","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"40385062_3c03a82c","updated":"2022-02-21 15:30:11.000000000","message":"run-Lightbits CI","commit_id":"3c952ac9e71556e351966a0ea725434828f3aa9e"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"744389a07e54ddea528c20e43f86001e5a044347","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"68d6050a_2b26c6a3","updated":"2022-02-21 15:22:35.000000000","message":"run-Lightbits CI","commit_id":"3c952ac9e71556e351966a0ea725434828f3aa9e"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"65a310238963fb917b653e49387c4c00c4f3ae3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"aa1ba16a_a0e67940","updated":"2022-02-21 15:22:02.000000000","message":"run-Lightbits CI","commit_id":"3c952ac9e71556e351966a0ea725434828f3aa9e"},{"author":{"_account_id":34470,"name":"Yan Tseitlin","email":"yan@lightbitslabs.com","username":"yants"},"change_message_id":"7e765d81669869c9ef1c7709c470964a1c24a868","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"73f4d372_da9e6064","in_reply_to":"68d6050a_2b26c6a3","updated":"2022-02-21 15:30:11.000000000","message":"run-Lightbits CI","commit_id":"3c952ac9e71556e351966a0ea725434828f3aa9e"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"2e6af6b0d82101c39889194232c8109a4ff677f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"09934011_fdb93986","updated":"2022-02-22 07:21:02.000000000","message":"run-Lightbits CI","commit_id":"3e474d58554ddd35b26a3fc5ce7d5218176b4ab4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"420efad6edf1d1028404f128444290f4aaae7c94","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"3d338646_9a67924b","updated":"2022-02-22 09:28:20.000000000","message":"I hope the lower constraints job will be green ","commit_id":"0e78c882f8d97fa89451c89ca7f351d4d5c393a1"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"0364b56e473dc97a3e95bda3f2279ad1d31cd6dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"dfa27323_a1286644","updated":"2022-02-22 09:44:17.000000000","message":"There is one dependency conflict, see my comment inline (based on the lower-constraints job log). There might be another conflicts, I haven\u0027t run the job locally yet.","commit_id":"0e78c882f8d97fa89451c89ca7f351d4d5c393a1"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"675180a81ed2ac60691a27b6cc278a845b619c19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"ec1e2a0b_7980d58c","updated":"2022-02-22 14:32:33.000000000","message":"sean, gibi, someone knows how I can test it locally? in my setup this test somehow pass.","commit_id":"9c68a873cb79133ff4a3acc722c6902b43b4b148"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"bae308c631422635cfb047e2acecffbfab07b64d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"a304ce80_db9c3b8a","in_reply_to":"e98379e5_77e06b24","updated":"2022-02-22 21:54:40.000000000","message":"Thanks you!","commit_id":"9c68a873cb79133ff4a3acc722c6902b43b4b148"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a8280812c6b074d383deb641da9905c6ed41e06b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"e98379e5_77e06b24","in_reply_to":"ec1e2a0b_7980d58c","updated":"2022-02-22 15:27:27.000000000","message":"@yuval: locally you should be able to test it with \u0027tox -e lower-constraints\u0027. This unfortunately needs some iteration (or simply diff the lower constraints in os-brick\u0027s requirements.txt with the lower the lower constraints in nova\u0027s lower-constraints.txt and update that are necessary).\n\nThe requirements-check can be fixed by updating these lower constraints changes in nova\u0027s requirements.txt as well (and in this case, setup.cfg, for hyperv deps).\n\nHope this helps.","commit_id":"9c68a873cb79133ff4a3acc722c6902b43b4b148"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"a8280812c6b074d383deb641da9905c6ed41e06b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"f5cf0489_ce8774a1","updated":"2022-02-22 15:27:27.000000000","message":"@yuval: i\u0027ve updated your patch with the necessary lower constraints bumps. Hope it\u0027s not a problem. See the details about how i did it in my comment inline.","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"64108b8af952036d0ed2740ccb16bd7b53615209","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"c32bda14_6fe41685","updated":"2022-02-23 13:05:39.000000000","message":"Looks good. The requirement bump is due to os-brick transitive deps. I think it is safe to bump them.","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f13ef9945e389aa0035e6fa5113e0a7ed97f7e77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"bd3dd702_1c044b7c","updated":"2022-02-24 10:59:26.000000000","message":"Thanks for reworking this to remove the background thread\nthis looks good to me now","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9175d73beba90a77c2e7494578a9de369c0f5173","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"8b661879_b6faa959","updated":"2022-02-24 11:00:47.000000000","message":"Well, it\u0027s already accepted now, but we need a relnote.","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"}],"lower-constraints.txt":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"420efad6edf1d1028404f128444290f4aaae7c94","unresolved":true,"context_lines":[{"line_number":76,"context_line":"oslo.messaging\u003d\u003d10.3.0"},{"line_number":77,"context_line":"oslo.middleware\u003d\u003d3.31.0"},{"line_number":78,"context_line":"oslo.policy\u003d\u003d3.7.0"},{"line_number":79,"context_line":"oslo.privsep\u003d\u003d2.6.2"},{"line_number":80,"context_line":"oslo.reports\u003d\u003d1.18.0"},{"line_number":81,"context_line":"oslo.rootwrap\u003d\u003d5.8.0"},{"line_number":82,"context_line":"oslo.serialization\u003d\u003d4.1.0"}],"source_content_type":"text/plain","patch_set":13,"id":"c4fbda26_85117cbf","line":79,"updated":"2022-02-22 09:28:20.000000000","message":"Yepp, this seems a transitive dep bump from os-brick 5.2","commit_id":"0e78c882f8d97fa89451c89ca7f351d4d5c393a1"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9175d73beba90a77c2e7494578a9de369c0f5173","unresolved":true,"context_lines":[{"line_number":76,"context_line":"oslo.messaging\u003d\u003d10.3.0"},{"line_number":77,"context_line":"oslo.middleware\u003d\u003d3.31.0"},{"line_number":78,"context_line":"oslo.policy\u003d\u003d3.7.0"},{"line_number":79,"context_line":"oslo.privsep\u003d\u003d2.6.2"},{"line_number":80,"context_line":"oslo.reports\u003d\u003d1.18.0"},{"line_number":81,"context_line":"oslo.rootwrap\u003d\u003d5.8.0"},{"line_number":82,"context_line":"oslo.serialization\u003d\u003d4.1.0"}],"source_content_type":"text/plain","patch_set":13,"id":"955260d6_ef039c21","line":79,"in_reply_to":"c4fbda26_85117cbf","updated":"2022-02-24 11:00:47.000000000","message":"Yup","commit_id":"0e78c882f8d97fa89451c89ca7f351d4d5c393a1"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"0364b56e473dc97a3e95bda3f2279ad1d31cd6dd","unresolved":true,"context_lines":[{"line_number":79,"context_line":"oslo.privsep\u003d\u003d2.6.2"},{"line_number":80,"context_line":"oslo.reports\u003d\u003d1.18.0"},{"line_number":81,"context_line":"oslo.rootwrap\u003d\u003d5.8.0"},{"line_number":82,"context_line":"oslo.serialization\u003d\u003d4.1.0"},{"line_number":83,"context_line":"oslo.service\u003d\u003d2.5.0"},{"line_number":84,"context_line":"oslo.upgradecheck\u003d\u003d1.3.0"},{"line_number":85,"context_line":"oslo.utils\u003d\u003d4.8.0"}],"source_content_type":"text/plain","patch_set":13,"id":"d83a05ed_8514daf9","line":82,"range":{"start_line":82,"start_character":20,"end_line":82,"end_character":25},"updated":"2022-02-22 09:44:17.000000000","message":"This needs to be 4.2.0:\n\nos-brick 5.2.0 depends on oslo.serialization\u003e\u003d4.2.0","commit_id":"0e78c882f8d97fa89451c89ca7f351d4d5c393a1"}],"nova/tests/unit/virt/libvirt/volume/test_lightos.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9175d73beba90a77c2e7494578a9de369c0f5173","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    @mock.patch(\u0027os_brick.initiator.connector.InitiatorConnector.factory\u0027)"},{"line_number":26,"context_line":"    def test_libvirt_lightos_driver(self, mock_factory, mock_helper,"},{"line_number":27,"context_line":"                                    queue):"},{"line_number":28,"context_line":"        self.flags(group\u003d\u0027libvirt\u0027)"},{"line_number":29,"context_line":"        mock_helper.return_value \u003d \u0027sudo\u0027"},{"line_number":30,"context_line":"        lightos.LibvirtLightOSVolumeDriver(self.fake_host)"},{"line_number":31,"context_line":"        mock_factory.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":16,"id":"f307de97_98ed5d09","line":28,"updated":"2022-02-24 11:00:47.000000000","message":"hmmmm, what config option do you want to use ? I\u0027m not sure we need this line then.\nTBH, that can be a follow-up patch.","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"},{"author":{"_account_id":33612,"name":"yuval","email":"yuval@lightbitslabs.com","username":"yuval"},"change_message_id":"fd1178bf1d44433d7f0749c133dbb577e013a844","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    @mock.patch(\u0027os_brick.initiator.connector.InitiatorConnector.factory\u0027)"},{"line_number":26,"context_line":"    def test_libvirt_lightos_driver(self, mock_factory, mock_helper,"},{"line_number":27,"context_line":"                                    queue):"},{"line_number":28,"context_line":"        self.flags(group\u003d\u0027libvirt\u0027)"},{"line_number":29,"context_line":"        mock_helper.return_value \u003d \u0027sudo\u0027"},{"line_number":30,"context_line":"        lightos.LibvirtLightOSVolumeDriver(self.fake_host)"},{"line_number":31,"context_line":"        mock_factory.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":16,"id":"3a614129_d0691d74","line":28,"in_reply_to":"f307de97_98ed5d09","updated":"2022-02-24 11:24:27.000000000","message":"ok, let me see if I can erase it","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9175d73beba90a77c2e7494578a9de369c0f5173","unresolved":true,"context_lines":[{"line_number":30,"context_line":"        lightos.LibvirtLightOSVolumeDriver(self.fake_host)"},{"line_number":31,"context_line":"        mock_factory.assert_called_once_with("},{"line_number":32,"context_line":"            initiator.LIGHTOS, root_helper\u003d\u0027sudo\u0027,"},{"line_number":33,"context_line":"            device_scan_attempts\u003d5)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @mock.patch(\u0027os_brick.initiator.connector.InitiatorConnector.factory\u0027,"},{"line_number":36,"context_line":"        new\u003dmock.Mock(return_value\u003dmock.Mock()))"}],"source_content_type":"text/x-python","patch_set":16,"id":"639ea0b4_392d7783","line":33,"updated":"2022-02-24 11:00:47.000000000","message":"++","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9175d73beba90a77c2e7494578a9de369c0f5173","unresolved":true,"context_lines":[{"line_number":51,"context_line":"                assert_called_once_with("},{"line_number":52,"context_line":"                connection_info[\u0027data\u0027]))"},{"line_number":53,"context_line":"            self.assertEqual(\u0027/dev/dms1234567\u0027,"},{"line_number":54,"context_line":"                            connection_info[\u0027data\u0027][\u0027device_path\u0027])"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @mock.patch(\u0027os_brick.initiator.connector.InitiatorConnector.factory\u0027,"},{"line_number":57,"context_line":"        new\u003dmock.Mock(return_value\u003dmock.Mock()))"}],"source_content_type":"text/x-python","patch_set":16,"id":"3df14345_56fe946f","line":54,"updated":"2022-02-24 11:00:47.000000000","message":"++","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"}],"nova/virt/libvirt/volume/lightos.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ac1394f6e1d4559c99a24329130ceee19167d549","unresolved":true,"context_lines":[{"line_number":26,"context_line":"from os_brick.initiator import connector"},{"line_number":27,"context_line":"from oslo_log import log as logging"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# queue in Python3 is Queue in python2"},{"line_number":30,"context_line":"try:"},{"line_number":31,"context_line":"    import queue"},{"line_number":32,"context_line":"except ImportError:"},{"line_number":33,"context_line":"    import Queue as queue"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"f3ea26cb_1c9f6b48","line":33,"range":{"start_line":29,"start_character":0,"end_line":33,"end_character":25},"updated":"2022-02-17 11:16:30.000000000","message":"on master we dropped py2 support so you can drop the conditional","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e3a17523d238cbe547f0d83c011aa8f9a3a09a13","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from os_brick.initiator import connector"},{"line_number":27,"context_line":"from oslo_log import log as logging"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# queue in Python3 is Queue in python2"},{"line_number":30,"context_line":"try:"},{"line_number":31,"context_line":"    import queue"},{"line_number":32,"context_line":"except ImportError:"},{"line_number":33,"context_line":"    import Queue as queue"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"edfc367b_81db355a","line":33,"range":{"start_line":29,"start_character":0,"end_line":33,"end_character":25},"in_reply_to":"f3ea26cb_1c9f6b48","updated":"2022-02-21 14:52:19.000000000","message":"Done","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ac1394f6e1d4559c99a24329130ceee19167d549","unresolved":true,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class LibvirtLightOSVolumeDriver(libvirt_volume.LibvirtVolumeDriver):"},{"line_number":41,"context_line":"    \"\"\"Driver to attach NVMe volumes to libvirt.\"\"\""},{"line_number":42,"context_line":"    VERSION \u003d \u0027__VERSION_PLACEHOLDER__\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def __init__(self, connection):"},{"line_number":45,"context_line":"        super(LibvirtLightOSVolumeDriver, self).__init__(connection)"}],"source_content_type":"text/x-python","patch_set":8,"id":"2b78a75e_e1462c34","line":42,"updated":"2022-02-17 11:16:30.000000000","message":"Do we need this for anything?","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bffba04130546fb18cd6b12eaa42eb8b8cf298e7","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class LibvirtLightOSVolumeDriver(libvirt_volume.LibvirtVolumeDriver):"},{"line_number":41,"context_line":"    \"\"\"Driver to attach NVMe volumes to libvirt.\"\"\""},{"line_number":42,"context_line":"    VERSION \u003d \u0027__VERSION_PLACEHOLDER__\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def __init__(self, connection):"},{"line_number":45,"context_line":"        super(LibvirtLightOSVolumeDriver, self).__init__(connection)"}],"source_content_type":"text/x-python","patch_set":8,"id":"0924690b_dfb08133","line":42,"in_reply_to":"2b78a75e_e1462c34","updated":"2022-02-21 14:51:45.000000000","message":"its also in the latest version so closing this one","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ac1394f6e1d4559c99a24329130ceee19167d549","unresolved":true,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def __init__(self, connection):"},{"line_number":45,"context_line":"        super(LibvirtLightOSVolumeDriver, self).__init__(connection)"},{"line_number":46,"context_line":"        try:"},{"line_number":47,"context_line":"            device_scan_attempts \u003d CONF.libvirt.num_nvme_discover_tries"},{"line_number":48,"context_line":"        except Exception as ex:"},{"line_number":49,"context_line":"            LOG.debug(ex)"},{"line_number":50,"context_line":"            device_scan_attempts \u003d 3"},{"line_number":51,"context_line":"        self.message_queue \u003d queue.Queue()"},{"line_number":52,"context_line":"        self.connector \u003d connector.InitiatorConnector.factory("},{"line_number":53,"context_line":"            initiator.LIGHTOS,"}],"source_content_type":"text/x-python","patch_set":8,"id":"86e90ff2_abb66064","line":50,"range":{"start_line":46,"start_character":8,"end_line":50,"end_character":36},"updated":"2022-02-17 11:16:30.000000000","message":"you don\u0027t need the exception handling. The config is defaulted so even if it is not provided in the config file it will have a proper value (5)","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bffba04130546fb18cd6b12eaa42eb8b8cf298e7","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def __init__(self, connection):"},{"line_number":45,"context_line":"        super(LibvirtLightOSVolumeDriver, self).__init__(connection)"},{"line_number":46,"context_line":"        try:"},{"line_number":47,"context_line":"            device_scan_attempts \u003d CONF.libvirt.num_nvme_discover_tries"},{"line_number":48,"context_line":"        except Exception as ex:"},{"line_number":49,"context_line":"            LOG.debug(ex)"},{"line_number":50,"context_line":"            device_scan_attempts \u003d 3"},{"line_number":51,"context_line":"        self.message_queue \u003d queue.Queue()"},{"line_number":52,"context_line":"        self.connector \u003d connector.InitiatorConnector.factory("},{"line_number":53,"context_line":"            initiator.LIGHTOS,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1cf5ad33_8cd7ff69","line":50,"range":{"start_line":46,"start_character":8,"end_line":50,"end_character":36},"in_reply_to":"86e90ff2_abb66064","updated":"2022-02-21 14:51:45.000000000","message":"Done","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ac1394f6e1d4559c99a24329130ceee19167d549","unresolved":true,"context_lines":[{"line_number":54,"context_line":"            root_helper\u003dutils.get_root_helper(),"},{"line_number":55,"context_line":"            device_scan_attempts\u003ddevice_scan_attempts,"},{"line_number":56,"context_line":"            message_queue\u003dself.message_queue)"},{"line_number":57,"context_line":"        self.lightos_db \u003d self._build_lightos_db(connection)"},{"line_number":58,"context_line":"        self.monitor_thread \u003d executor.Thread("},{"line_number":59,"context_line":"            target\u003dself.connector.lightos_monitor, args\u003d("},{"line_number":60,"context_line":"                self.lightos_db, self.message_queue))"}],"source_content_type":"text/x-python","patch_set":8,"id":"c8af20f6_092038f5","line":57,"range":{"start_line":57,"start_character":8,"end_line":57,"end_character":13},"updated":"2022-02-17 11:16:30.000000000","message":"you don\u0027t use it in this class after it is created so you don\u0027t need to store it in self.","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bffba04130546fb18cd6b12eaa42eb8b8cf298e7","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            root_helper\u003dutils.get_root_helper(),"},{"line_number":55,"context_line":"            device_scan_attempts\u003ddevice_scan_attempts,"},{"line_number":56,"context_line":"            message_queue\u003dself.message_queue)"},{"line_number":57,"context_line":"        self.lightos_db \u003d self._build_lightos_db(connection)"},{"line_number":58,"context_line":"        self.monitor_thread \u003d executor.Thread("},{"line_number":59,"context_line":"            target\u003dself.connector.lightos_monitor, args\u003d("},{"line_number":60,"context_line":"                self.lightos_db, self.message_queue))"}],"source_content_type":"text/x-python","patch_set":8,"id":"cda3fdd2_b0da7112","line":57,"range":{"start_line":57,"start_character":8,"end_line":57,"end_character":13},"in_reply_to":"c8af20f6_092038f5","updated":"2022-02-21 14:51:45.000000000","message":"Done","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ac1394f6e1d4559c99a24329130ceee19167d549","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            device_scan_attempts\u003ddevice_scan_attempts,"},{"line_number":56,"context_line":"            message_queue\u003dself.message_queue)"},{"line_number":57,"context_line":"        self.lightos_db \u003d self._build_lightos_db(connection)"},{"line_number":58,"context_line":"        self.monitor_thread \u003d executor.Thread("},{"line_number":59,"context_line":"            target\u003dself.connector.lightos_monitor, args\u003d("},{"line_number":60,"context_line":"                self.lightos_db, self.message_queue))"},{"line_number":61,"context_line":"        self.monitor_thread.start()"}],"source_content_type":"text/x-python","patch_set":8,"id":"16abc08e_a6b9c66a","line":58,"range":{"start_line":58,"start_character":30,"end_line":58,"end_character":45},"updated":"2022-02-17 11:16:30.000000000","message":"In general it is problematic to mix eventlet and native Threads. However it seems that the iscsi connector also uses Threads in os-brick so this probably work too.","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ce6cbf399b4a5c03d472a1b4a0e4b30651a0e341","unresolved":true,"context_lines":[{"line_number":55,"context_line":"            device_scan_attempts\u003ddevice_scan_attempts,"},{"line_number":56,"context_line":"            message_queue\u003dself.message_queue)"},{"line_number":57,"context_line":"        self.lightos_db \u003d self._build_lightos_db(connection)"},{"line_number":58,"context_line":"        self.monitor_thread \u003d executor.Thread("},{"line_number":59,"context_line":"            target\u003dself.connector.lightos_monitor, args\u003d("},{"line_number":60,"context_line":"                self.lightos_db, self.message_queue))"},{"line_number":61,"context_line":"        self.monitor_thread.start()"}],"source_content_type":"text/x-python","patch_set":8,"id":"c86652bc_57b4b124","line":58,"range":{"start_line":58,"start_character":30,"end_line":58,"end_character":45},"in_reply_to":"16abc08e_a6b9c66a","updated":"2022-02-17 11:55:51.000000000","message":"this is not a native thread\nit derives form it but os-brick is exeucting in a monkey patched context since we monkeypatch before we import it in nova.\nhttps://github.com/openstack/os-brick/blob/master/os_brick/executor.py#L69\nso this has been monkeypatch\n\nso while that looks like a native thread it is not. any operation that blocks or never yeilds in that thread will block the nova compute agent.","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bffba04130546fb18cd6b12eaa42eb8b8cf298e7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            device_scan_attempts\u003ddevice_scan_attempts,"},{"line_number":56,"context_line":"            message_queue\u003dself.message_queue)"},{"line_number":57,"context_line":"        self.lightos_db \u003d self._build_lightos_db(connection)"},{"line_number":58,"context_line":"        self.monitor_thread \u003d executor.Thread("},{"line_number":59,"context_line":"            target\u003dself.connector.lightos_monitor, args\u003d("},{"line_number":60,"context_line":"                self.lightos_db, self.message_queue))"},{"line_number":61,"context_line":"        self.monitor_thread.start()"}],"source_content_type":"text/x-python","patch_set":8,"id":"00c52d0f_c76b284a","line":58,"range":{"start_line":58,"start_character":30,"end_line":58,"end_character":45},"in_reply_to":"c86652bc_57b4b124","updated":"2022-02-21 14:51:45.000000000","message":"Done","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ac1394f6e1d4559c99a24329130ceee19167d549","unresolved":true,"context_lines":[{"line_number":56,"context_line":"            message_queue\u003dself.message_queue)"},{"line_number":57,"context_line":"        self.lightos_db \u003d self._build_lightos_db(connection)"},{"line_number":58,"context_line":"        self.monitor_thread \u003d executor.Thread("},{"line_number":59,"context_line":"            target\u003dself.connector.lightos_monitor, args\u003d("},{"line_number":60,"context_line":"                self.lightos_db, self.message_queue))"},{"line_number":61,"context_line":"        self.monitor_thread.start()"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"e0cba938_4cc553bb","line":59,"range":{"start_line":59,"start_character":19,"end_line":59,"end_character":49},"updated":"2022-02-17 11:16:30.000000000","message":"Wondering if this setup of the connector and the monitoring thread really needs to be in nova. I see the need to pass the existing devices to the connect from nova, but the actual connection between the monitoring thread an the connector can be hidden inside the connector. The connector __init__ can spawn the monitoring thread as that thread running the connector\u0027s function anyhow. This way nova does not need to know about the existence of the queue or the thread.\n\nI can be convinced to let this land as is, but I would like to ask for a refactor later to clean this up.","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bffba04130546fb18cd6b12eaa42eb8b8cf298e7","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            message_queue\u003dself.message_queue)"},{"line_number":57,"context_line":"        self.lightos_db \u003d self._build_lightos_db(connection)"},{"line_number":58,"context_line":"        self.monitor_thread \u003d executor.Thread("},{"line_number":59,"context_line":"            target\u003dself.connector.lightos_monitor, args\u003d("},{"line_number":60,"context_line":"                self.lightos_db, self.message_queue))"},{"line_number":61,"context_line":"        self.monitor_thread.start()"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"e143ef99_0df64967","line":59,"range":{"start_line":59,"start_character":19,"end_line":59,"end_character":49},"in_reply_to":"cfe6928c_6e214457","updated":"2022-02-21 14:51:45.000000000","message":"Done","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"daec3364111fa0c8ab596388f646a02fb525685a","unresolved":true,"context_lines":[{"line_number":56,"context_line":"            message_queue\u003dself.message_queue)"},{"line_number":57,"context_line":"        self.lightos_db \u003d self._build_lightos_db(connection)"},{"line_number":58,"context_line":"        self.monitor_thread \u003d executor.Thread("},{"line_number":59,"context_line":"            target\u003dself.connector.lightos_monitor, args\u003d("},{"line_number":60,"context_line":"                self.lightos_db, self.message_queue))"},{"line_number":61,"context_line":"        self.monitor_thread.start()"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"cfe6928c_6e214457","line":59,"range":{"start_line":59,"start_character":19,"end_line":59,"end_character":49},"in_reply_to":"e0cba938_4cc553bb","updated":"2022-02-17 11:32:05.000000000","message":"well we shoudl not be spawing an monitor thread in the nova process at all really\ncertenlay not a long runing one that runs in the background as part of the nova-compute agent processs.\n\nwe have seen how that can cause the agent to dead lock in the past with the thread we have for libvirt and ovs so i dont think we shoudl add another one for this driver.\n\nnova should ideally act as a client for the monitor whcih si deployed as a sepreate agent on the host which we then connect too.\n\nso idally we would only interact with it over a unix socket, cli  or other ipc mechiumn, not directly as is done here with an inmemeoy queue.","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ac1394f6e1d4559c99a24329130ceee19167d549","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        self.lightos_db \u003d self._build_lightos_db(connection)"},{"line_number":58,"context_line":"        self.monitor_thread \u003d executor.Thread("},{"line_number":59,"context_line":"            target\u003dself.connector.lightos_monitor, args\u003d("},{"line_number":60,"context_line":"                self.lightos_db, self.message_queue))"},{"line_number":61,"context_line":"        self.monitor_thread.start()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _build_lightos_db(self, connection):"}],"source_content_type":"text/x-python","patch_set":8,"id":"594ffc46_4d12ec18","line":60,"range":{"start_line":60,"start_character":16,"end_line":60,"end_character":31},"updated":"2022-02-17 11:16:30.000000000","message":"OK lightos_db this is a locally created value that is not access here any more so no need to synchronize it","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ac1394f6e1d4559c99a24329130ceee19167d549","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        self.lightos_db \u003d self._build_lightos_db(connection)"},{"line_number":58,"context_line":"        self.monitor_thread \u003d executor.Thread("},{"line_number":59,"context_line":"            target\u003dself.connector.lightos_monitor, args\u003d("},{"line_number":60,"context_line":"                self.lightos_db, self.message_queue))"},{"line_number":61,"context_line":"        self.monitor_thread.start()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _build_lightos_db(self, connection):"}],"source_content_type":"text/x-python","patch_set":8,"id":"7ad7fc06_f59ff123","line":60,"range":{"start_line":60,"start_character":33,"end_line":60,"end_character":51},"updated":"2022-02-17 11:16:30.000000000","message":"OK this is a synchronized queue.","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ac1394f6e1d4559c99a24329130ceee19167d549","unresolved":true,"context_lines":[{"line_number":99,"context_line":"                    db[vol[\u0027connection_info\u0027][\u0027data\u0027][\u0027device_path\u0027]] \u003d ("},{"line_number":100,"context_line":"                        vol[\u0027connection_info\u0027][\u0027data\u0027])"},{"line_number":101,"context_line":"                except Exception as ex:"},{"line_number":102,"context_line":"                    logging.warning(ex)"},{"line_number":103,"context_line":"                LOG.info(\"connection_info: %s\", vol[\u0027connection_info\u0027])"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        return db"}],"source_content_type":"text/x-python","patch_set":8,"id":"e43c5bda_4b24d976","line":102,"updated":"2022-02-17 11:16:30.000000000","message":"please use LOG.warn() and add some message that helps the troubleshooting.","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bffba04130546fb18cd6b12eaa42eb8b8cf298e7","unresolved":false,"context_lines":[{"line_number":99,"context_line":"                    db[vol[\u0027connection_info\u0027][\u0027data\u0027][\u0027device_path\u0027]] \u003d ("},{"line_number":100,"context_line":"                        vol[\u0027connection_info\u0027][\u0027data\u0027])"},{"line_number":101,"context_line":"                except Exception as ex:"},{"line_number":102,"context_line":"                    logging.warning(ex)"},{"line_number":103,"context_line":"                LOG.info(\"connection_info: %s\", vol[\u0027connection_info\u0027])"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        return db"}],"source_content_type":"text/x-python","patch_set":8,"id":"80216111_24c2ba81","line":102,"in_reply_to":"e43c5bda_4b24d976","updated":"2022-02-21 14:51:45.000000000","message":"Done","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ac1394f6e1d4559c99a24329130ceee19167d549","unresolved":true,"context_lines":[{"line_number":100,"context_line":"                        vol[\u0027connection_info\u0027][\u0027data\u0027])"},{"line_number":101,"context_line":"                except Exception as ex:"},{"line_number":102,"context_line":"                    logging.warning(ex)"},{"line_number":103,"context_line":"                LOG.info(\"connection_info: %s\", vol[\u0027connection_info\u0027])"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        return db"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fdc97b68_4e6ed092","line":103,"updated":"2022-02-17 11:16:30.000000000","message":"This could be potentially spam the logs on a compute with a lot of instances and volume. Do we really need this on INFO level?","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bffba04130546fb18cd6b12eaa42eb8b8cf298e7","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                        vol[\u0027connection_info\u0027][\u0027data\u0027])"},{"line_number":101,"context_line":"                except Exception as ex:"},{"line_number":102,"context_line":"                    logging.warning(ex)"},{"line_number":103,"context_line":"                LOG.info(\"connection_info: %s\", vol[\u0027connection_info\u0027])"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        return db"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"12be1bab_26ce1b3e","line":103,"in_reply_to":"fdc97b68_4e6ed092","updated":"2022-02-21 14:51:45.000000000","message":"Done","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ac1394f6e1d4559c99a24329130ceee19167d549","unresolved":true,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def disconnect_volume(self, connection_info, instance):"},{"line_number":113,"context_line":"        \"\"\"Detach the volume from the instance.\"\"\""},{"line_number":114,"context_line":"        LOG.debug(\"Disconnecting NVMe disk\")"},{"line_number":115,"context_line":"        self.connector.disconnect_volume(connection_info[\u0027data\u0027], None)"},{"line_number":116,"context_line":"        super(LibvirtLightOSVolumeDriver, self).disconnect_volume("},{"line_number":117,"context_line":"            connection_info, instance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff10708e_ede0d42a","line":114,"updated":"2022-02-17 11:16:30.000000000","message":"Please add some info about the instance / device being disconnected","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bffba04130546fb18cd6b12eaa42eb8b8cf298e7","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def disconnect_volume(self, connection_info, instance):"},{"line_number":113,"context_line":"        \"\"\"Detach the volume from the instance.\"\"\""},{"line_number":114,"context_line":"        LOG.debug(\"Disconnecting NVMe disk\")"},{"line_number":115,"context_line":"        self.connector.disconnect_volume(connection_info[\u0027data\u0027], None)"},{"line_number":116,"context_line":"        super(LibvirtLightOSVolumeDriver, self).disconnect_volume("},{"line_number":117,"context_line":"            connection_info, instance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"e27d15ae_11bc6102","line":114,"in_reply_to":"ff10708e_ede0d42a","updated":"2022-02-21 14:51:45.000000000","message":"Done","commit_id":"688ad12461c1b3ff3aabc5429214912045bd1d7c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"0948dc706c7dc3c8796dc44015b4ced36bf0879a","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class LibvirtLightOSVolumeDriver(libvirt_volume.LibvirtVolumeDriver):"},{"line_number":30,"context_line":"    \"\"\"Driver to attach NVMe volumes to libvirt.\"\"\""},{"line_number":31,"context_line":"    VERSION \u003d \u0027__VERSION_PLACEHOLDER__\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def __init__(self, connection):"},{"line_number":34,"context_line":"        super(LibvirtLightOSVolumeDriver, self).__init__(connection)"}],"source_content_type":"text/x-python","patch_set":10,"id":"a9f67d9b_7dd66a6a","line":31,"range":{"start_line":31,"start_character":14,"end_line":31,"end_character":39},"updated":"2022-02-21 11:11:02.000000000","message":"Do we need this for anything?","commit_id":"2099847890952e28b79846a2f5c87eeaeed5c4a6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"420efad6edf1d1028404f128444290f4aaae7c94","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class LibvirtLightOSVolumeDriver(libvirt_volume.LibvirtVolumeDriver):"},{"line_number":30,"context_line":"    \"\"\"Driver to attach NVMe volumes to libvirt.\"\"\""},{"line_number":31,"context_line":"    VERSION \u003d \u0027__VERSION_PLACEHOLDER__\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def __init__(self, connection):"},{"line_number":34,"context_line":"        super(LibvirtLightOSVolumeDriver, self).__init__(connection)"}],"source_content_type":"text/x-python","patch_set":10,"id":"72d89f57_aa502b0c","line":31,"range":{"start_line":31,"start_character":14,"end_line":31,"end_character":39},"in_reply_to":"5db1b0eb_9921e96c","updated":"2022-02-22 09:28:20.000000000","message":"Ack","commit_id":"2099847890952e28b79846a2f5c87eeaeed5c4a6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bffba04130546fb18cd6b12eaa42eb8b8cf298e7","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class LibvirtLightOSVolumeDriver(libvirt_volume.LibvirtVolumeDriver):"},{"line_number":30,"context_line":"    \"\"\"Driver to attach NVMe volumes to libvirt.\"\"\""},{"line_number":31,"context_line":"    VERSION \u003d \u0027__VERSION_PLACEHOLDER__\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def __init__(self, connection):"},{"line_number":34,"context_line":"        super(LibvirtLightOSVolumeDriver, self).__init__(connection)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5db1b0eb_9921e96c","line":31,"range":{"start_line":31,"start_character":14,"end_line":31,"end_character":39},"in_reply_to":"a9f67d9b_7dd66a6a","updated":"2022-02-21 14:51:45.000000000","message":"i dont really think so it does not appear to be used via inheritance and changing this to a semver sting would be a backwards incopatible change so either this shoudl be a real version string like 1.0 or i think it should be removed.","commit_id":"2099847890952e28b79846a2f5c87eeaeed5c4a6"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9175d73beba90a77c2e7494578a9de369c0f5173","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class LibvirtLightOSVolumeDriver(libvirt_volume.LibvirtVolumeDriver):"},{"line_number":30,"context_line":"    \"\"\"Driver to attach NVMe volumes to libvirt.\"\"\""},{"line_number":31,"context_line":"    VERSION \u003d \u00272.3.12\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def __init__(self, connection):"},{"line_number":34,"context_line":"        super(LibvirtLightOSVolumeDriver, self).__init__(connection)"}],"source_content_type":"text/x-python","patch_set":16,"id":"9d172c9c_627fde50","line":31,"updated":"2022-02-24 11:00:47.000000000","message":"thanks for this","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9175d73beba90a77c2e7494578a9de369c0f5173","unresolved":true,"context_lines":[{"line_number":35,"context_line":"        self.connector \u003d connector.InitiatorConnector.factory("},{"line_number":36,"context_line":"            initiator.LIGHTOS,"},{"line_number":37,"context_line":"            root_helper\u003dutils.get_root_helper(),"},{"line_number":38,"context_line":"            device_scan_attempts\u003dCONF.libvirt.num_nvme_discover_tries)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def connect_volume(self, connection_info, instance):"},{"line_number":41,"context_line":"        device_info \u003d self.connector.connect_volume(connection_info[\u0027data\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"3c07c582_ea406387","line":38,"updated":"2022-02-24 11:00:47.000000000","message":"hehe, then self.flags(num_nvme_discover_tries\u003d\u003csomething\u003e, group\u003dlibvirt) in the test ;)\n\nFWIW, the default is 5.","commit_id":"b5e2128f3847d444a808a2b0f89e6f1e4ffb77fc"}]}
