)]}'
{"ceilometer/cmd/polling.py":[{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"ef02c51e979c0e21d5800b84517f6e3cdbd63b2a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    # On Windows, we can only initialize conf objects in the subprocess."},{"line_number":91,"context_line":"    # As a consequence, we can\u0027t use oslo_config_glue.setup() on Windows,"},{"line_number":92,"context_line":"    # because cotyledon.ServiceManager objects are not picklable."},{"line_number":93,"context_line":"    if os.name \u003d\u003d \u0027nt\u0027:"},{"line_number":94,"context_line":"        sm.add(create_polling_service)"},{"line_number":95,"context_line":"    else:"},{"line_number":96,"context_line":"        conf \u003d _prepare_config()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_c5f23d6b","line":93,"updated":"2018-12-12 10:28:26.000000000","message":"Just do the same for all OS","commit_id":"7e43fcf865c34158db5544097c62e8e6a88f4108"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"a1797cd39440299b92dbdfd7c6d82f5dd41f6021","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    # On Windows, we can only initialize conf objects in the subprocess."},{"line_number":91,"context_line":"    # As a consequence, we can\u0027t use oslo_config_glue.setup() on Windows,"},{"line_number":92,"context_line":"    # because cotyledon.ServiceManager objects are not picklable."},{"line_number":93,"context_line":"    if os.name \u003d\u003d \u0027nt\u0027:"},{"line_number":94,"context_line":"        sm.add(create_polling_service)"},{"line_number":95,"context_line":"    else:"},{"line_number":96,"context_line":"        conf \u003d _prepare_config()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_09912f51","line":93,"in_reply_to":"3f79a3b5_86ed2c25","updated":"2018-12-12 12:07:10.000000000","message":"Hmm, I think that may affect the config reload functionality. The reason is that you\u0027re setting up the hooks for a config object in oslo_config_glue.setup, but then the child process creates a separate config object in \u0027create_polling_service\u0027.","commit_id":"7e43fcf865c34158db5544097c62e8e6a88f4108"},{"author":{"_account_id":29335,"name":"Daniel Vincze","email":"dvincze@cloudbasesolutions.com","username":"dvincze"},"change_message_id":"39e2d6ee7f20e749e2d761890fe1bcfb497a646a","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    # On Windows, we can only initialize conf objects in the subprocess."},{"line_number":91,"context_line":"    # As a consequence, we can\u0027t use oslo_config_glue.setup() on Windows,"},{"line_number":92,"context_line":"    # because cotyledon.ServiceManager objects are not picklable."},{"line_number":93,"context_line":"    if os.name \u003d\u003d \u0027nt\u0027:"},{"line_number":94,"context_line":"        sm.add(create_polling_service)"},{"line_number":95,"context_line":"    else:"},{"line_number":96,"context_line":"        conf \u003d _prepare_config()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_c02a2b78","line":93,"in_reply_to":"3f79a3b5_c5f23d6b","updated":"2018-12-12 10:36:06.000000000","message":"If I do that, I lose hook registration on ServiceManager on Linux platforms. \n\nhttps://github.com/sileht/cotyledon/blob/master/cotyledon/oslo_config_glue.py#L104","commit_id":"7e43fcf865c34158db5544097c62e8e6a88f4108"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"4f9c45866052862119c15ef164e2b186a3e10b97","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    # On Windows, we can only initialize conf objects in the subprocess."},{"line_number":91,"context_line":"    # As a consequence, we can\u0027t use oslo_config_glue.setup() on Windows,"},{"line_number":92,"context_line":"    # because cotyledon.ServiceManager objects are not picklable."},{"line_number":93,"context_line":"    if os.name \u003d\u003d \u0027nt\u0027:"},{"line_number":94,"context_line":"        sm.add(create_polling_service)"},{"line_number":95,"context_line":"    else:"},{"line_number":96,"context_line":"        conf \u003d _prepare_config()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_e083a74e","line":93,"in_reply_to":"3f79a3b5_c5f23d6b","updated":"2018-12-12 10:40:31.000000000","message":"We\u0027re completely skipping the \u0027oslo_config_glue.setup\u0027 call on Windows, wouldn\u0027t do that on Linux. Plus, this function as well as service.prepare_service are setting some signal hooks, which we\u0027d probably want to have in the main process (doesn\u0027t apply to Windows, where we have limited signal support).","commit_id":"7e43fcf865c34158db5544097c62e8e6a88f4108"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"bf93dd74db1872cdabe8fd894ade4433cb8905d9","unresolved":false,"context_lines":[{"line_number":90,"context_line":"    # On Windows, we can only initialize conf objects in the subprocess."},{"line_number":91,"context_line":"    # As a consequence, we can\u0027t use oslo_config_glue.setup() on Windows,"},{"line_number":92,"context_line":"    # because cotyledon.ServiceManager objects are not picklable."},{"line_number":93,"context_line":"    if os.name \u003d\u003d \u0027nt\u0027:"},{"line_number":94,"context_line":"        sm.add(create_polling_service)"},{"line_number":95,"context_line":"    else:"},{"line_number":96,"context_line":"        conf \u003d _prepare_config()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_86ed2c25","line":93,"in_reply_to":"3f79a3b5_e083a74e","updated":"2018-12-12 11:16:37.000000000","message":"you can use oslo_config_glue.setup on windows, it\u0027s safe:\n\nhttps://github.com/sileht/cotyledon/blob/master/cotyledon/oslo_config_glue.py#L99\n\nSo remove conf parameter from create_polling_service() and here the code will just be:\n\n  sm \u003d cotyledon.ServiceManager()\n  oslo_config_glue.setup(sm, _prepare_config())\n  sm.add(create_polling_service)\n  sm.run()","commit_id":"7e43fcf865c34158db5544097c62e8e6a88f4108"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"c4e09ba80f4f0a4a9e3ca55d79204c2cdc7489e7","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        sm.add(create_polling_service)"},{"line_number":98,"context_line":"    else:"},{"line_number":99,"context_line":"        conf \u003d _prepare_config()"},{"line_number":100,"context_line":"        priv_context.init(root_helper\u003dshlex.split(utils._get_root_helper()))"},{"line_number":101,"context_line":"        oslo_config_glue.setup(sm, conf)"},{"line_number":102,"context_line":"        sm.add(create_polling_service, args\u003d(conf,))"},{"line_number":103,"context_line":"    sm.run()"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfb3d3c7_bb56df5b","line":100,"range":{"start_line":100,"start_character":8,"end_line":100,"end_character":76},"updated":"2019-05-23 00:56:25.000000000","message":"Put the priv_context mean when os.name is nt can not use oslo rootwrap","commit_id":"28f0a70da99b2fde2479ce6a5c62128ab75554af"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"c0bff7524d873c56327defcf117b3af182e65b1a","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        sm.add(create_polling_service)"},{"line_number":98,"context_line":"    else:"},{"line_number":99,"context_line":"        conf \u003d _prepare_config()"},{"line_number":100,"context_line":"        priv_context.init(root_helper\u003dshlex.split(utils._get_root_helper()))"},{"line_number":101,"context_line":"        oslo_config_glue.setup(sm, conf)"},{"line_number":102,"context_line":"        sm.add(create_polling_service, args\u003d(conf,))"},{"line_number":103,"context_line":"    sm.run()"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfb3d3c7_53b9c72b","line":100,"range":{"start_line":100,"start_character":8,"end_line":100,"end_character":76},"in_reply_to":"bfb3d3c7_bb56df5b","updated":"2019-05-23 05:19:03.000000000","message":"Correct, neither oslo.rootwrap or oslo.privsep are actually used on Windows. That\u0027s intended and it applies to all other Openstack projects that can run on Windows.","commit_id":"28f0a70da99b2fde2479ce6a5c62128ab75554af"}]}
