)]}'
{"storlets/agent/daemon_factory/server.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"21588aa56a6e4d0ed0d60d68f35bde9a55851e17","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    def get_python_args(self, daemon_language, storlet_path, storlet_name,"},{"line_number":103,"context_line":"                        pool_size, uds_path, log_level, language_version):"},{"line_number":104,"context_line":"        language_version \u003d language_version or 2"},{"line_number":105,"context_line":"        if int(float(language_version)) \u003d\u003d 3:"},{"line_number":106,"context_line":"            language_version \u003d DEFAULT_PY3"},{"line_number":107,"context_line":"        else:"},{"line_number":108,"context_line":"            language_version \u003d DEFAULT_PY2"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_c090e398","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":45},"updated":"2019-03-06 06:35:46.000000000","message":"For example when language version 3.3 is passed, this let storlets to ignore microversion and run app with 3.5.\nI think it is better to return error if the specified version is not available.\n\nAlso, could we catch value error here and raise SDaemonError instead?","commit_id":"b5051c7b01ada2367b7c818f5e3effd017044b9d"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c97dde6c7775fc66bdc1ee381e8c42d5fe4158e1","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    def get_python_args(self, daemon_language, storlet_path, storlet_name,"},{"line_number":103,"context_line":"                        pool_size, uds_path, log_level, language_version):"},{"line_number":104,"context_line":"        language_version \u003d language_version or 2"},{"line_number":105,"context_line":"        if int(float(language_version)) \u003d\u003d 3:"},{"line_number":106,"context_line":"            language_version \u003d DEFAULT_PY3"},{"line_number":107,"context_line":"        else:"},{"line_number":108,"context_line":"            language_version \u003d DEFAULT_PY2"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_bb1aaa14","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":45},"in_reply_to":"5fc1f717_00a26b9b","updated":"2019-03-06 07:29:42.000000000","message":"just a question\n\nCan we pass the float value here directly?\nI believe that we can expect that we have /usr/bin/python2.7 and /usr/bin/python3.5 on the server, and it is not necessary to call /usr/bin/python2 and /usr/bin/python3 instead.","commit_id":"b5051c7b01ada2367b7c818f5e3effd017044b9d"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"c7376d057099fac0eb3f2301f22749055dfabf59","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    def get_python_args(self, daemon_language, storlet_path, storlet_name,"},{"line_number":103,"context_line":"                        pool_size, uds_path, log_level, language_version):"},{"line_number":104,"context_line":"        language_version \u003d language_version or 2"},{"line_number":105,"context_line":"        if int(float(language_version)) \u003d\u003d 3:"},{"line_number":106,"context_line":"            language_version \u003d DEFAULT_PY3"},{"line_number":107,"context_line":"        else:"},{"line_number":108,"context_line":"            language_version \u003d DEFAULT_PY2"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_3f3aef33","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":45},"in_reply_to":"5fc1f717_bb1aaa14","updated":"2019-03-08 06:59:22.000000000","message":"Possible but I\u0027m not sure if it\u0027s completely safe.\nIf we have the strict version check in the gateway, we could trust the incoming value here then just pass it w/o DEFUALT_PY cast. However, it\u0027s still dangerous in current implementation so I\u0027d like to handle it here.\n\ncasting to *int* is just a simplification to handle py2 or py3.  comparing via \u003c\u003d, \u003c is also fine though.","commit_id":"b5051c7b01ada2367b7c818f5e3effd017044b9d"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"52239111a0c1bf62f9d0caac8f03faefed56093f","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    def get_python_args(self, daemon_language, storlet_path, storlet_name,"},{"line_number":103,"context_line":"                        pool_size, uds_path, log_level, language_version):"},{"line_number":104,"context_line":"        language_version \u003d language_version or 2"},{"line_number":105,"context_line":"        if int(float(language_version)) \u003d\u003d 3:"},{"line_number":106,"context_line":"            language_version \u003d DEFAULT_PY3"},{"line_number":107,"context_line":"        else:"},{"line_number":108,"context_line":"            language_version \u003d DEFAULT_PY2"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_00a26b9b","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":45},"in_reply_to":"5fc1f717_c090e398","updated":"2019-03-06 06:47:13.000000000","message":"See https://review.openstack.org/#/c/640990/5/storlets/gateway/gateways/docker/gateway.py@136\n\nExactly, we should consider the version check for py3 more strictly but this is still experimental so I just put TODO comment there. I think the check should be at gateway but if we consider the version check, we need more various changes (configuration, container check, etc...) so as the first step, I just check py2 or py3 as relax approach.\n\nThe reason I choose py35 as default is that py35 is default python3 envrionment in Ubuntu xenial so we could change the default in the future tho.","commit_id":"b5051c7b01ada2367b7c818f5e3effd017044b9d"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"21588aa56a6e4d0ed0d60d68f35bde9a55851e17","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                    params[\u0027daemon_language\u0027], params[\u0027storlet_path\u0027],"},{"line_number":451,"context_line":"                    storlet_name, params[\u0027pool_size\u0027],"},{"line_number":452,"context_line":"                    params[\u0027uds_path\u0027], params[\u0027log_level\u0027],"},{"line_number":453,"context_line":"                    language_version\u003dparams.get(\"language_version\")):"},{"line_number":454,"context_line":"                msg \u003d \u0027OK\u0027"},{"line_number":455,"context_line":"            else:"},{"line_number":456,"context_line":"                msg \u003d \u0027{0} is already running\u0027.format(storlet_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_80e89b16","line":453,"range":{"start_line":453,"start_character":49,"end_line":453,"end_character":65},"updated":"2019-03-06 06:35:46.000000000","message":"Does it make sense to rename this to \"deamon_language_version\" as we have daemon_ for language parameter?","commit_id":"b5051c7b01ada2367b7c818f5e3effd017044b9d"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c97dde6c7775fc66bdc1ee381e8c42d5fe4158e1","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                    params[\u0027daemon_language\u0027], params[\u0027storlet_path\u0027],"},{"line_number":451,"context_line":"                    storlet_name, params[\u0027pool_size\u0027],"},{"line_number":452,"context_line":"                    params[\u0027uds_path\u0027], params[\u0027log_level\u0027],"},{"line_number":453,"context_line":"                    language_version\u003dparams.get(\"language_version\")):"},{"line_number":454,"context_line":"                msg \u003d \u0027OK\u0027"},{"line_number":455,"context_line":"            else:"},{"line_number":456,"context_line":"                msg \u003d \u0027{0} is already running\u0027.format(storlet_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_5baf0694","line":453,"range":{"start_line":453,"start_character":49,"end_line":453,"end_character":65},"in_reply_to":"5fc1f717_00cb4b53","updated":"2019-03-06 07:29:42.000000000","message":"I\u0027d like to have daemon_language_version, as we can be consistent about Daemon-Language.","commit_id":"b5051c7b01ada2367b7c818f5e3effd017044b9d"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"c7376d057099fac0eb3f2301f22749055dfabf59","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                    params[\u0027daemon_language\u0027], params[\u0027storlet_path\u0027],"},{"line_number":451,"context_line":"                    storlet_name, params[\u0027pool_size\u0027],"},{"line_number":452,"context_line":"                    params[\u0027uds_path\u0027], params[\u0027log_level\u0027],"},{"line_number":453,"context_line":"                    language_version\u003dparams.get(\"language_version\")):"},{"line_number":454,"context_line":"                msg \u003d \u0027OK\u0027"},{"line_number":455,"context_line":"            else:"},{"line_number":456,"context_line":"                msg \u003d \u0027{0} is already running\u0027.format(storlet_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_1f6db331","line":453,"range":{"start_line":453,"start_character":49,"end_line":453,"end_character":65},"in_reply_to":"5fc1f717_5baf0694","updated":"2019-03-08 06:59:22.000000000","message":"See https://review.openstack.org/#/c/641940/","commit_id":"b5051c7b01ada2367b7c818f5e3effd017044b9d"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"52239111a0c1bf62f9d0caac8f03faefed56093f","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                    params[\u0027daemon_language\u0027], params[\u0027storlet_path\u0027],"},{"line_number":451,"context_line":"                    storlet_name, params[\u0027pool_size\u0027],"},{"line_number":452,"context_line":"                    params[\u0027uds_path\u0027], params[\u0027log_level\u0027],"},{"line_number":453,"context_line":"                    language_version\u003dparams.get(\"language_version\")):"},{"line_number":454,"context_line":"                msg \u003d \u0027OK\u0027"},{"line_number":455,"context_line":"            else:"},{"line_number":456,"context_line":"                msg \u003d \u0027{0} is already running\u0027.format(storlet_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5fc1f717_00cb4b53","line":453,"range":{"start_line":453,"start_character":49,"end_line":453,"end_character":65},"in_reply_to":"5fc1f717_80e89b16","updated":"2019-03-06 06:47:13.000000000","message":"Either is fine. Do you want to change it?","commit_id":"b5051c7b01ada2367b7c818f5e3effd017044b9d"}]}
