)]}'
{"novaclient/v2/servers.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"5584952a650169ed20dd7b891135307bbbbb7b61","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        \"\"\""},{"line_number":389,"context_line":"        return self.manager.list_security_group(self)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    def evacuate(self, host\u003dNone, on_shared_storage\u003dTrue, password\u003dNone):"},{"line_number":392,"context_line":"        \"\"\""},{"line_number":393,"context_line":"        Evacuate an instance from failed host to specified host."},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_56611304","line":391,"range":{"start_line":391,"start_character":52,"end_line":391,"end_character":56},"updated":"2015-12-28 13:44:49.000000000","message":"let\u0027s change default value to None and handle old value in the code.","commit_id":"d563d1705f4794b6036793c78ef516e89ddc93ae"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"74e449d8b2c6ecb068a710cc9a343aa115f7f0a1","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        \"\"\""},{"line_number":389,"context_line":"        return self.manager.list_security_group(self)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"    def evacuate(self, host\u003dNone, on_shared_storage\u003dTrue, password\u003dNone):"},{"line_number":392,"context_line":"        \"\"\""},{"line_number":393,"context_line":"        Evacuate an instance from failed host to specified host."},{"line_number":394,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_f1da72e7","line":391,"range":{"start_line":391,"start_character":52,"end_line":391,"end_character":56},"in_reply_to":"1a7b0d38_56611304","updated":"2015-12-29 11:00:59.000000000","message":"Done","commit_id":"d563d1705f4794b6036793c78ef516e89ddc93ae"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"5584952a650169ed20dd7b891135307bbbbb7b61","unresolved":false,"context_lines":[{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        :param host: Name of the target host"},{"line_number":396,"context_line":"        :param on_shared_storage: Specifies whether instance files located"},{"line_number":397,"context_line":"                        on shared storage. None value indicates that it is not"},{"line_number":398,"context_line":"                        specified."},{"line_number":399,"context_line":"        :param password: string to set as admin password on the evacuated"},{"line_number":400,"context_line":"                         server."},{"line_number":401,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_7689afc8","line":398,"range":{"start_line":397,"start_character":43,"end_line":398,"end_character":34},"updated":"2015-12-28 13:44:49.000000000","message":"It is true only for 2.14. Please note it in docstring.","commit_id":"d563d1705f4794b6036793c78ef516e89ddc93ae"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"74e449d8b2c6ecb068a710cc9a343aa115f7f0a1","unresolved":false,"context_lines":[{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        :param host: Name of the target host"},{"line_number":396,"context_line":"        :param on_shared_storage: Specifies whether instance files located"},{"line_number":397,"context_line":"                        on shared storage. None value indicates that it is not"},{"line_number":398,"context_line":"                        specified."},{"line_number":399,"context_line":"        :param password: string to set as admin password on the evacuated"},{"line_number":400,"context_line":"                         server."},{"line_number":401,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_372d4fa8","line":398,"range":{"start_line":397,"start_character":43,"end_line":398,"end_character":34},"in_reply_to":"1a7b0d38_7689afc8","updated":"2015-12-29 11:00:59.000000000","message":"Done","commit_id":"d563d1705f4794b6036793c78ef516e89ddc93ae"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"5584952a650169ed20dd7b891135307bbbbb7b61","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        :param password: string to set as admin password on the evacuated"},{"line_number":400,"context_line":"                         server."},{"line_number":401,"context_line":"        \"\"\""},{"line_number":402,"context_line":"        if on_shared_storage is None:"},{"line_number":403,"context_line":"            return self.manager.evacuate(self, host, password)"},{"line_number":404,"context_line":"        else:"},{"line_number":405,"context_line":"            return self.manager.evacuate(self, host, on_shared_storage,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_79968094","line":402,"updated":"2015-12-28 13:44:49.000000000","message":"Users can set `on_shared_storage` to None with 2.0-2.13 microversions. In this case call `self.manager.evacuate(self, host, password)` will be wrong.\n\nlet\u0027s make this check more \"versioning\"(it should look more clear):\n\n    if api_version.APIVersion(\"2.14) \u003c\u003d self.manager.api_version:\n        if on_shared_storage is not None:\n            # NOTE(andreykurilin): should we raise an exception or just print warning and ignore this parameter?!\n            raise ValueError(\"Setting \u0027on_shared_storage\u0027 argument is restricted in 2.14 microversion\")\n        self.manager...\n    else:\n        # 2.0 - 2.13 microversions\n        if on_shared_storage is None:\n            on_shared_storage \u003d True\n        self.manager....","commit_id":"d563d1705f4794b6036793c78ef516e89ddc93ae"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"74e449d8b2c6ecb068a710cc9a343aa115f7f0a1","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        :param password: string to set as admin password on the evacuated"},{"line_number":400,"context_line":"                         server."},{"line_number":401,"context_line":"        \"\"\""},{"line_number":402,"context_line":"        if on_shared_storage is None:"},{"line_number":403,"context_line":"            return self.manager.evacuate(self, host, password)"},{"line_number":404,"context_line":"        else:"},{"line_number":405,"context_line":"            return self.manager.evacuate(self, host, on_shared_storage,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_572a5b91","line":402,"in_reply_to":"1a7b0d38_79968094","updated":"2015-12-29 11:00:59.000000000","message":"Done","commit_id":"d563d1705f4794b6036793c78ef516e89ddc93ae"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"0c0a8e98a7013592f0f58fd4b37834e86224b3f0","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        :param host: Name of the target host"},{"line_number":396,"context_line":"        :param on_shared_storage: Specifies whether instance files located"},{"line_number":397,"context_line":"                        on shared storage. From 2.14 microversion None value"},{"line_number":398,"context_line":"                        indicates that it is not specified."},{"line_number":399,"context_line":"        :param password: string to set as admin password on the evacuated"},{"line_number":400,"context_line":"                         server."},{"line_number":401,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_99118760","line":398,"updated":"2015-12-29 18:53:04.000000000","message":"English suggestion (femtonit):\n\n    After microversion 2.14, this parameter must have its\n    default value of None.","commit_id":"fe251f5c94967422417bd04d9a9dd7dd059518d0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a82a1c22052658982bc2008864ab3a42afd2ffc2","unresolved":false,"context_lines":[{"line_number":395,"context_line":"        :param host: Name of the target host"},{"line_number":396,"context_line":"        :param on_shared_storage: Specifies whether instance files located"},{"line_number":397,"context_line":"                        on shared storage. From 2.14 microversion None value"},{"line_number":398,"context_line":"                        indicates that it is not specified."},{"line_number":399,"context_line":"        :param password: string to set as admin password on the evacuated"},{"line_number":400,"context_line":"                         server."},{"line_number":401,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_91e9291d","line":398,"in_reply_to":"fa69d971_99118760","updated":"2015-12-31 11:52:16.000000000","message":"Done","commit_id":"fe251f5c94967422417bd04d9a9dd7dd059518d0"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"0c0a8e98a7013592f0f58fd4b37834e86224b3f0","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        if api_versions.APIVersion(\"2.14\") \u003c\u003d self.manager.api_version:"},{"line_number":403,"context_line":"            if on_shared_storage is not None:"},{"line_number":404,"context_line":"                raise ValueError(\"Setting \u0027on_shared_storage\u0027 argument is \""},{"line_number":405,"context_line":"                                 \"restricted from 2.14 microversion\")"},{"line_number":406,"context_line":"            return self.manager.evacuate(self, host, password)"},{"line_number":407,"context_line":"        else:"},{"line_number":408,"context_line":"            # 2.0 - 2.13 microversions"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_84103a50","line":405,"updated":"2015-12-29 18:53:04.000000000","message":"s/from/after/.  I\u0027d also suggest swapping the \"2.14\" and \"microversion\", making this read:\n\n    Setting \u0027on_shared_storage\u0027 argument is restricted\n    after microversion 2.14.\n\nMight also consider s/restricted/prohibited/.","commit_id":"fe251f5c94967422417bd04d9a9dd7dd059518d0"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a82a1c22052658982bc2008864ab3a42afd2ffc2","unresolved":false,"context_lines":[{"line_number":402,"context_line":"        if api_versions.APIVersion(\"2.14\") \u003c\u003d self.manager.api_version:"},{"line_number":403,"context_line":"            if on_shared_storage is not None:"},{"line_number":404,"context_line":"                raise ValueError(\"Setting \u0027on_shared_storage\u0027 argument is \""},{"line_number":405,"context_line":"                                 \"restricted from 2.14 microversion\")"},{"line_number":406,"context_line":"            return self.manager.evacuate(self, host, password)"},{"line_number":407,"context_line":"        else:"},{"line_number":408,"context_line":"            # 2.0 - 2.13 microversions"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_b1eead20","line":405,"in_reply_to":"fa69d971_84103a50","updated":"2015-12-31 11:52:16.000000000","message":"Done","commit_id":"fe251f5c94967422417bd04d9a9dd7dd059518d0"}],"novaclient/v2/shell.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"5584952a650169ed20dd7b891135307bbbbb7b61","unresolved":false,"context_lines":[{"line_number":4462,"context_line":"    action\u003d\"store_true\","},{"line_number":4463,"context_line":"    default\u003dFalse,"},{"line_number":4464,"context_line":"    help\u003d_(\u0027Specifies whether server files are located on shared storage.\u0027),"},{"line_number":4465,"context_line":"    end_version\u003d\u00272.13\u0027)"},{"line_number":4466,"context_line":"def do_evacuate(cs, args):"},{"line_number":4467,"context_line":"    \"\"\"Evacuate server from failed host.\"\"\""},{"line_number":4468,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_b901486c","line":4465,"range":{"start_line":4465,"start_character":4,"end_line":4465,"end_character":22},"updated":"2015-12-28 13:44:49.000000000","message":"\u0027end_version\u0027 will be ignored, if there is no start_version[*].\nBtw, there are no reasons to duplicate do_evacuate method. \nfirst step - specify start and end version for \"on-shared-storage\" argument. Then, you have two options:\n\n1) check `\"on-shared-storage\" in args` and make a proper call\n2) create two _do_evacuate methods with wraps decorator and call it.\n\n[*] - https://github.com/openstack/python-novaclient/blob/3.1.0/novaclient/shell.py#L506-L508","commit_id":"d563d1705f4794b6036793c78ef516e89ddc93ae"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"74e449d8b2c6ecb068a710cc9a343aa115f7f0a1","unresolved":false,"context_lines":[{"line_number":4462,"context_line":"    action\u003d\"store_true\","},{"line_number":4463,"context_line":"    default\u003dFalse,"},{"line_number":4464,"context_line":"    help\u003d_(\u0027Specifies whether server files are located on shared storage.\u0027),"},{"line_number":4465,"context_line":"    end_version\u003d\u00272.13\u0027)"},{"line_number":4466,"context_line":"def do_evacuate(cs, args):"},{"line_number":4467,"context_line":"    \"\"\"Evacuate server from failed host.\"\"\""},{"line_number":4468,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_52fee9ae","line":4465,"range":{"start_line":4465,"start_character":4,"end_line":4465,"end_character":22},"in_reply_to":"1a7b0d38_b901486c","updated":"2015-12-29 11:00:59.000000000","message":"Done","commit_id":"d563d1705f4794b6036793c78ef516e89ddc93ae"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"5584952a650169ed20dd7b891135307bbbbb7b61","unresolved":false,"context_lines":[{"line_number":4491,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":4492,"context_line":""},{"line_number":4493,"context_line":"    server.evacuate(args.host, on_shared_storage\u003dNone, password\u003dargs.password)"},{"line_number":4494,"context_line":""},{"line_number":4495,"context_line":""},{"line_number":4496,"context_line":"def _print_interfaces(interfaces):"},{"line_number":4497,"context_line":"    columns \u003d [\u0027Port State\u0027, \u0027Port ID\u0027, \u0027Net ID\u0027, \u0027IP addresses\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_196bbc86","line":4494,"updated":"2015-12-28 13:44:49.000000000","message":"why you do not have a print here like at L4472-L4473?","commit_id":"d563d1705f4794b6036793c78ef516e89ddc93ae"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"74e449d8b2c6ecb068a710cc9a343aa115f7f0a1","unresolved":false,"context_lines":[{"line_number":4491,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":4492,"context_line":""},{"line_number":4493,"context_line":"    server.evacuate(args.host, on_shared_storage\u003dNone, password\u003dargs.password)"},{"line_number":4494,"context_line":""},{"line_number":4495,"context_line":""},{"line_number":4496,"context_line":"def _print_interfaces(interfaces):"},{"line_number":4497,"context_line":"    columns \u003d [\u0027Port State\u0027, \u0027Port ID\u0027, \u0027Net ID\u0027, \u0027IP addresses\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_b27f0d16","line":4494,"in_reply_to":"1a7b0d38_196bbc86","updated":"2015-12-29 11:00:59.000000000","message":"The response body also removed in 2.14. See https://review.openstack.org/#/c/243562/12/nova/api/openstack/rest_api_version_history.rst","commit_id":"d563d1705f4794b6036793c78ef516e89ddc93ae"}]}
