)]}'
{"openstackclient/compute/v2/server_group.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"c1cc29ad9977d24e96133ad4c8ad956a0e012ae7","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import logging"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from novaclient import api_versions"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from osc_lib.command import command"},{"line_number":23,"context_line":"from osc_lib import exceptions"},{"line_number":24,"context_line":"from osc_lib import utils"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_3a610b38","line":21,"updated":"2020-06-17 08:09:12.000000000","message":"This blank line should be removed to avoid I201 error in pep8","commit_id":"d55075c70374684153f92aaff3df303c30e7173f"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"a22a9d427034268c056e95f04d26d570afcbccd8","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":70,"context_line":"        info \u003d {}"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        if compute_client.api_version \u003c api_versions.APIVersion(\"2.64\"):"},{"line_number":73,"context_line":"            server_group \u003d compute_client.server_groups.create("},{"line_number":74,"context_line":"                name\u003dparsed_args.name,"},{"line_number":75,"context_line":"                policies\u003d[parsed_args.policy])"},{"line_number":76,"context_line":"        else:"},{"line_number":77,"context_line":"            server_group \u003d compute_client.server_groups.create("},{"line_number":78,"context_line":"                name\u003dparsed_args.name,"},{"line_number":79,"context_line":"                policy\u003dparsed_args.policy)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        info.update(server_group._info)"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_4bfbd345","line":79,"range":{"start_line":72,"start_character":6,"end_line":79,"end_character":42},"updated":"2020-06-24 10:08:48.000000000","message":"What do you think about the following code:\n\n```\npolicies \u003d parsed_args.policy\nif compute_client.api_version \u003c api_versions.APIVersion(\"2.64\"):\n    policies \u003d [parsed_args.policy]\nserver_group \u003d compute_client.server_groups.create(\n                name\u003dparsed_args.name,\n                policies\u003dpolicies)\n```\n\nIt could allow us to reduce a bit the code size and reduce a bit the technical debt too, also it allow us to drop a condition.\n\nDefault policies format is this one from the `else` section.","commit_id":"3f9643aec67f126f49e87d06da0b88f47c18634d"},{"author":{"_account_id":32114,"name":"Lewis Denny","email":"ldenny@redhat.com","username":"ldenny"},"change_message_id":"b15d2deaf7fa2838a9f3e315ef163c1491c36c5b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":70,"context_line":"        info \u003d {}"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        if compute_client.api_version \u003c api_versions.APIVersion(\"2.64\"):"},{"line_number":73,"context_line":"            server_group \u003d compute_client.server_groups.create("},{"line_number":74,"context_line":"                name\u003dparsed_args.name,"},{"line_number":75,"context_line":"                policies\u003d[parsed_args.policy])"},{"line_number":76,"context_line":"        else:"},{"line_number":77,"context_line":"            server_group \u003d compute_client.server_groups.create("},{"line_number":78,"context_line":"                name\u003dparsed_args.name,"},{"line_number":79,"context_line":"                policy\u003dparsed_args.policy)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        info.update(server_group._info)"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_37f50fee","line":79,"range":{"start_line":72,"start_character":6,"end_line":79,"end_character":42},"in_reply_to":"bf51134e_4bfbd345","updated":"2020-06-25 04:46:08.000000000","message":"Hi Hervé,\n\nFirstly, thank you for taking the time to review this change.\n\nI do not understand your code suggestion, we need to change between \"policies\" and \"policy\" depending on the API version. I have tested your code and it is still passing \"policies\" to the compute API rather then \"policy\" and I get the same bug as before ref: https://storyboard.openstack.org/#!/story/2007822","commit_id":"3f9643aec67f126f49e87d06da0b88f47c18634d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"280c7473e77e754a2d80d9c979515345e5b1184f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        if compute_client.api_version \u003c api_versions.APIVersion(\"2.64\"):"},{"line_number":74,"context_line":"            policy_arg \u003d {\u0027policies\u0027: [parsed_args.policy]}"},{"line_number":75,"context_line":"        server_group \u003d compute_client.server_groups.create("},{"line_number":76,"context_line":"                name\u003dparsed_args.name, **policy_arg)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        info.update(server_group._info)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_a75d4d7a","line":76,"updated":"2020-06-27 12:02:15.000000000","message":"pep8: E126 continuation line over-indented for hanging indent","commit_id":"253796c2729c918985f2b35ca2c9dd2770317708"},{"author":{"_account_id":32114,"name":"Lewis Denny","email":"ldenny@redhat.com","username":"ldenny"},"change_message_id":"9dd9ac4491d02a0a491762c9cf25f98e85920157","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        if compute_client.api_version \u003c api_versions.APIVersion(\"2.64\"):"},{"line_number":74,"context_line":"            policy_arg \u003d {\u0027policies\u0027: [parsed_args.policy]}"},{"line_number":75,"context_line":"        server_group \u003d compute_client.server_groups.create("},{"line_number":76,"context_line":"                name\u003dparsed_args.name, **policy_arg)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        info.update(server_group._info)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bf51134e_216c869a","line":76,"in_reply_to":"bf51134e_a75d4d7a","updated":"2020-08-26 07:22:46.000000000","message":"Done","commit_id":"253796c2729c918985f2b35ca2c9dd2770317708"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"1e0ed2c6174841e9b565bcbb562e95c39db97792","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        policy_arg \u003d {\u0027policy\u0027: parsed_args.policy}"},{"line_number":73,"context_line":"        if compute_client.api_version \u003c api_versions.APIVersion(\"2.64\"):"},{"line_number":74,"context_line":"            policy_arg \u003d {\u0027policies\u0027: [parsed_args.policy]}"},{"line_number":75,"context_line":"        server_group \u003d compute_client.server_groups.create("},{"line_number":76,"context_line":"            name\u003dparsed_args.name, **policy_arg)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_fb8f3027","line":74,"range":{"start_line":74,"start_character":12,"end_line":74,"end_character":59},"updated":"2020-08-21 14:24:12.000000000","message":"I think it\u0027s better to make this default, as we do in the other patch to fix list[1]\n\n[1] https://review.opendev.org/#/c/747135/","commit_id":"b9b29eedc23fcf971224c6ec0a037adbefab6f66"},{"author":{"_account_id":32114,"name":"Lewis Denny","email":"ldenny@redhat.com","username":"ldenny"},"change_message_id":"9dd9ac4491d02a0a491762c9cf25f98e85920157","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        policy_arg \u003d {\u0027policy\u0027: parsed_args.policy}"},{"line_number":73,"context_line":"        if compute_client.api_version \u003c api_versions.APIVersion(\"2.64\"):"},{"line_number":74,"context_line":"            policy_arg \u003d {\u0027policies\u0027: [parsed_args.policy]}"},{"line_number":75,"context_line":"        server_group \u003d compute_client.server_groups.create("},{"line_number":76,"context_line":"            name\u003dparsed_args.name, **policy_arg)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_40c26d86","line":74,"range":{"start_line":74,"start_character":12,"end_line":74,"end_character":59},"in_reply_to":"9f560f44_565433fe","updated":"2020-08-26 07:22:46.000000000","message":"Done","commit_id":"b9b29eedc23fcf971224c6ec0a037adbefab6f66"},{"author":{"_account_id":32114,"name":"Lewis Denny","email":"ldenny@redhat.com","username":"ldenny"},"change_message_id":"9dd9ac4491d02a0a491762c9cf25f98e85920157","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        policy_arg \u003d {\u0027policy\u0027: parsed_args.policy}"},{"line_number":73,"context_line":"        if compute_client.api_version \u003c api_versions.APIVersion(\"2.64\"):"},{"line_number":74,"context_line":"            policy_arg \u003d {\u0027policies\u0027: [parsed_args.policy]}"},{"line_number":75,"context_line":"        server_group \u003d compute_client.server_groups.create("},{"line_number":76,"context_line":"            name\u003dparsed_args.name, **policy_arg)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_60c7b197","line":74,"range":{"start_line":74,"start_character":12,"end_line":74,"end_character":59},"in_reply_to":"9f560f44_fb8f3027","updated":"2020-08-26 07:22:46.000000000","message":"Done","commit_id":"b9b29eedc23fcf971224c6ec0a037adbefab6f66"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"67e5a12f148d07ae714b371e86e813aa70457f38","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        policy_arg \u003d {\u0027policy\u0027: parsed_args.policy}"},{"line_number":73,"context_line":"        if compute_client.api_version \u003c api_versions.APIVersion(\"2.64\"):"},{"line_number":74,"context_line":"            policy_arg \u003d {\u0027policies\u0027: [parsed_args.policy]}"},{"line_number":75,"context_line":"        server_group \u003d compute_client.server_groups.create("},{"line_number":76,"context_line":"            name\u003dparsed_args.name, **policy_arg)"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9f560f44_565433fe","line":74,"range":{"start_line":74,"start_character":12,"end_line":74,"end_character":59},"in_reply_to":"9f560f44_fb8f3027","updated":"2020-08-21 14:45:59.000000000","message":"In current case, for example if any changes is needed for 2.65,\nwe need to make changes for 3 lines\n\n```\n- policy_arg \u003d {\u0027policy\u0027: parsed_args.policy}\n+ policy_arg \u003d \u003csomething new\u003e\n  if compute_client.api_version \u003c api_versions.APIVersion(\"2.64\"):\n      policy_arg \u003d {\u0027policies\u0027: [parsed_args.policy]}\n+ elif compute_client.api_version \u003c api_versions.APIVersion(\"2.65\"):\n+     policy_arg \u003d {\u0027policy\u0027: parsed_args.policy}\n```\n\nWe can make the change like this but this makes the code more redundant.\n\n```\n+ policy_arg \u003d \u003csomething new\u003e\n+ if compute_client.api_version \u003c api_versions.APIVersion(\"2.65\"):\n+     policy_arg \u003d {\u0027policy\u0027: parsed_args.policy}\n- policy_arg \u003d {\u0027policy\u0027: parsed_args.policy}\n  if compute_client.api_version \u003c api_versions.APIVersion(\"2.64\"):\n      policy_arg \u003d {\u0027policies\u0027: [parsed_args.policy]}\n```\n\nHowever, if we use opposite solutions then we can implement the change like this. We need to make changes for 3 lines but in one of them we only replace if by elif.\n\n```\n  policy_arg \u003d {\u0027policies\u0027: [parsed_args.policy]}\n+ if compute_client.api_version \u003e\u003d api_versions.APIVersion(\"2.65\"):\n+     policy_arg \u003d \u003csomething new\u003e\n+ elif compute_client.api_version \u003e\u003d api_versions.APIVersion(\"2.64\"):\n- if compute_client.api_version \u003e\u003d api_versions.APIVersion(\"2.64\"):\n      policy_arg \u003d {\u0027policies\u0027: [parsed_args.policy]}\n\n```","commit_id":"b9b29eedc23fcf971224c6ec0a037adbefab6f66"}]}
