)]}'
{"doc/source/cli/command-objects/hypervisor.rst":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af802d0017bce55d918c29070606188cd7fa47b","unresolved":false,"context_lines":[{"line_number":12,"context_line":".. program:: hypervisor evacuate"},{"line_number":13,"context_line":".. code:: bash"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"    openstack hypervisor evacuate"},{"line_number":16,"context_line":"        [--live]"},{"line_number":17,"context_line":"        [--target \u003ctarget-hypervisor\u003e]"},{"line_number":18,"context_line":"        \u003chypervisor\u003e"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":".. option:: --live"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"df3967d1_abcc0ebc","line":18,"range":{"start_line":15,"start_character":0,"end_line":18,"end_character":20},"updated":"2017-08-02 17:06:22.000000000","message":"missing the other options like force, disk-overcommit, block and shared migration, etc","commit_id":"4b36cedba0ca6f56f54cec8b8f81b429cb35412f"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"0febeaacdc56b72088b41a33fa35ea41ba3f9d55","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":".. option:: --target \u003ctarget-hypervisor\u003e"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    Migrate all servers to this specific target"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":".. option:: --force"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f287b81_7ab51731","line":45,"updated":"2017-08-23 20:10:53.000000000","message":"(name or ID)","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":25600,"name":"Ebbex","display_name":"ebbex","email":"openstack@slipsprogrammor.no","username":"ebbex"},"change_message_id":"4301bf6ee5105915751d67aefd168d5a7ccc8d62","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":".. option:: --target \u003ctarget-hypervisor\u003e"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    Migrate all servers to this specific target"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":".. option:: --force"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f287b81_db719f0e","line":45,"in_reply_to":"7f287b81_7ab51731","updated":"2017-08-24 10:27:45.000000000","message":"Done","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"0febeaacdc56b72088b41a33fa35ea41ba3f9d55","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":".. describe:: \u003chypervisor\u003e"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    Move all servers off this hypervisor"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"hypervisor list"},{"line_number":56,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f287b81_9ab8c32a","line":53,"updated":"2017-08-23 20:10:53.000000000","message":"(name or ID)","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":25600,"name":"Ebbex","display_name":"ebbex","email":"openstack@slipsprogrammor.no","username":"ebbex"},"change_message_id":"4301bf6ee5105915751d67aefd168d5a7ccc8d62","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":".. describe:: \u003chypervisor\u003e"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    Move all servers off this hypervisor"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"hypervisor list"},{"line_number":56,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7f287b81_9b655748","line":53,"in_reply_to":"7f287b81_9ab8c32a","updated":"2017-08-24 10:27:45.000000000","message":"Done","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"}],"openstackclient/compute/v2/hypervisor.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af802d0017bce55d918c29070606188cd7fa47b","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        return parser"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def take_action(self, parsed_args):"},{"line_number":95,"context_line":"        self.validate_os_beta_command_enabled()"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":98,"context_line":"        hypervisors \u003d compute_client.hypervisors.search("}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_0b50bad3","line":95,"range":{"start_line":95,"start_character":8,"end_line":95,"end_character":47},"updated":"2017-08-02 17:06:22.000000000","message":"did you want this here? the command will only show up if the user specifies --beta, we only used it when migrating for nova-net to neutron commands","commit_id":"4b36cedba0ca6f56f54cec8b8f81b429cb35412f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af802d0017bce55d918c29070606188cd7fa47b","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        results \u003d []"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        for hypervisor in hypervisors:"},{"line_number":106,"context_line":"            for q in getattr(hypervisor, \u0027servers\u0027, []):"},{"line_number":107,"context_line":"                q[\u0027success\u0027] \u003d True"},{"line_number":108,"context_line":"                q[\u0027error\u0027] \u003d \"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_6b22a654","line":105,"range":{"start_line":105,"start_character":8,"end_line":105,"end_character":38},"updated":"2017-08-02 17:06:22.000000000","message":"not sure why there is a loop here, does the API return multiple hypervisors (maybe they can have the same name?)","commit_id":"4b36cedba0ca6f56f54cec8b8f81b429cb35412f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af802d0017bce55d918c29070606188cd7fa47b","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        results \u003d []"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        for hypervisor in hypervisors:"},{"line_number":106,"context_line":"            for q in getattr(hypervisor, \u0027servers\u0027, []):"},{"line_number":107,"context_line":"                q[\u0027success\u0027] \u003d True"},{"line_number":108,"context_line":"                q[\u0027error\u0027] \u003d \"\""},{"line_number":109,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_ebd33637","line":106,"range":{"start_line":106,"start_character":16,"end_line":106,"end_character":17},"updated":"2017-08-02 17:06:22.000000000","message":"nit: no need to call it \"q\", \"server\" is just 5 more characters :)","commit_id":"4b36cedba0ca6f56f54cec8b8f81b429cb35412f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af802d0017bce55d918c29070606188cd7fa47b","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                if parsed_args.live:"},{"line_number":114,"context_line":"                    if server.status !\u003d \"ACTIVE\":"},{"line_number":115,"context_line":"                        q[\u0027success\u0027] \u003d False"},{"line_number":116,"context_line":"                        q[\u0027error\u0027] \u003d \"Can\u0027t live-migrate %s server\" \\"},{"line_number":117,"context_line":"                            % server.status"},{"line_number":118,"context_line":"                        results.append(q)"},{"line_number":119,"context_line":"                        continue"},{"line_number":120,"context_line":"                    try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_6b3f4625","line":117,"range":{"start_line":116,"start_character":24,"end_line":117,"end_character":43},"updated":"2017-08-02 17:06:22.000000000","message":"nit: could add the UUID here\n\nedit: nevermind, it\u0027ll appear in the table","commit_id":"4b36cedba0ca6f56f54cec8b8f81b429cb35412f"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0af802d0017bce55d918c29070606188cd7fa47b","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"                results.append(q)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        column_headers \u003d (\u0027UUID\u0027, \u0027Name\u0027, \u0027Success\u0027, \u0027Message\u0027)"},{"line_number":147,"context_line":"        columns \u003d (\u0027uuid\u0027, \u0027name\u0027, \u0027success\u0027, \u0027error\u0027)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        return (column_headers,"},{"line_number":150,"context_line":"                (utils.get_dict_properties("}],"source_content_type":"text/x-python","patch_set":1,"id":"df3967d1_2be5bea8","line":147,"range":{"start_line":146,"start_character":8,"end_line":147,"end_character":54},"updated":"2017-08-02 17:06:22.000000000","message":"add \"State\"?","commit_id":"4b36cedba0ca6f56f54cec8b8f81b429cb35412f"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"0febeaacdc56b72088b41a33fa35ea41ba3f9d55","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class EvacuateHypervisor(command.Lister):"},{"line_number":29,"context_line":"    _description \u003d _(\"Move servers from this hypervisor to anywhere, or a \""},{"line_number":30,"context_line":"                     \"particular destination.\")"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def get_parser(self, prog_name):"},{"line_number":33,"context_line":"        parser \u003d super(EvacuateHypervisor, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_7532c8f3","line":30,"updated":"2017-08-23 20:10:53.000000000","message":"\"Move servers from this hypervisor to another hypervisor\"","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":25600,"name":"Ebbex","display_name":"ebbex","email":"openstack@slipsprogrammor.no","username":"ebbex"},"change_message_id":"4301bf6ee5105915751d67aefd168d5a7ccc8d62","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class EvacuateHypervisor(command.Lister):"},{"line_number":29,"context_line":"    _description \u003d _(\"Move servers from this hypervisor to anywhere, or a \""},{"line_number":30,"context_line":"                     \"particular destination.\")"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def get_parser(self, prog_name):"},{"line_number":33,"context_line":"        parser \u003d super(EvacuateHypervisor, self).get_parser(prog_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_e0d5c6e6","line":30,"in_reply_to":"7f287b81_7532c8f3","updated":"2017-08-24 10:27:45.000000000","message":"Done","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"0febeaacdc56b72088b41a33fa35ea41ba3f9d55","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        parser.add_argument("},{"line_number":35,"context_line":"            \u0027hypervisor\u0027,"},{"line_number":36,"context_line":"            metavar\u003d\u0027\u003chypervisor\u003e\u0027,"},{"line_number":37,"context_line":"            help\u003d_(\u0027Name/ID of hypervisor\u0027)"},{"line_number":38,"context_line":"        )"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_5a849b5e","line":37,"updated":"2017-08-23 20:10:53.000000000","message":"These help strings need to match the first line in the documentation.","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":25600,"name":"Ebbex","display_name":"ebbex","email":"openstack@slipsprogrammor.no","username":"ebbex"},"change_message_id":"4301bf6ee5105915751d67aefd168d5a7ccc8d62","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        parser.add_argument("},{"line_number":35,"context_line":"            \u0027hypervisor\u0027,"},{"line_number":36,"context_line":"            metavar\u003d\u0027\u003chypervisor\u003e\u0027,"},{"line_number":37,"context_line":"            help\u003d_(\u0027Name/ID of hypervisor\u0027)"},{"line_number":38,"context_line":"        )"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        parser.add_argument("}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_00db321b","line":37,"in_reply_to":"7f287b81_5a849b5e","updated":"2017-08-24 10:27:45.000000000","message":"Done","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4251768c2e17efe8750422930a350b79eb818ef7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        )"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        parser.add_argument("},{"line_number":41,"context_line":"            \u0027--live\u0027,"},{"line_number":42,"context_line":"            dest\u003d\u0027live\u0027,"},{"line_number":43,"context_line":"            action\u003d\u0027store_const\u0027,"},{"line_number":44,"context_line":"            const\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_e8ed5b25","line":41,"updated":"2018-06-08 14:23:57.000000000","message":"So this is live migration instead of evacuate? The novaclient command host-evacuate-live is already really confusingly named, we shouldn\u0027t continue that in OSC, see this really nice blog post from dansmith:\n\nhttp://www.danplanet.com/blog/2016/03/03/evacuate-in-nova-one-command-to-confuse-us-all/\n\nI would not call this command evacuate in any way, since evacuate is rebuilding instances off of a down (dead) host.\n\nA better name for this would be something \"openstack hypervisor migrate --all-servers\" or something? Something to note that it\u0027s a batch operation rather than per-server which is what \"openstack server migrate --live\" does.","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ce909b160a4537a54071515427e05e74e8c9824d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        )"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        parser.add_argument("},{"line_number":41,"context_line":"            \u0027--live\u0027,"},{"line_number":42,"context_line":"            dest\u003d\u0027live\u0027,"},{"line_number":43,"context_line":"            action\u003d\u0027store_const\u0027,"},{"line_number":44,"context_line":"            const\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_8b1dc163","line":41,"in_reply_to":"5f7c97a3_e8ed5b25","updated":"2018-06-08 14:50:21.000000000","message":"Yeah nova has a (very stupidly named) operation called \"evacuate\" and calling this by that name will further confuse the already super confusing issue.\n\nMigrate also has a specific meaning, which is not live. What if we go for something generic that can handle these cases with flags, but not be encumbered by baggage? A proposal:\n\n openstack hypervisor vacate            # Cold migration\n openstack hypervisor vacate --live     # Live migration\n openstack hypervisor vacate --rebuild  # Rebuild (nova evacuate)","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4251768c2e17efe8750422930a350b79eb818ef7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            \u0027--force\u0027,"},{"line_number":56,"context_line":"            action\u003d\u0027store_const\u0027,"},{"line_number":57,"context_line":"            const\u003dTrue,"},{"line_number":58,"context_line":"            help\u003d_(\u0027Target hypervisor\u0027),"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        migration_group \u003d parser.add_mutually_exclusive_group()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_6894eb8b","line":58,"updated":"2018-06-08 14:23:57.000000000","message":"This needs a big fat warning that forcing a destination host during live migration can cause all sorts of problems with resource tracking, like in the compute API reference:\n\nhttps://developer.openstack.org/api-ref/compute/#live-migrate-server-os-migratelive-action","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"0febeaacdc56b72088b41a33fa35ea41ba3f9d55","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            help\u003d_(\u0027Target hypervisor\u0027),"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        migration_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":62,"context_line":"        migration_group.add_argument("},{"line_number":63,"context_line":"            \u0027--shared-migration\u0027,"},{"line_number":64,"context_line":"            dest\u003d\u0027block_migration\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_55846c5e","line":61,"updated":"2017-08-23 20:10:53.000000000","message":"Please follow our convention for mutex options like this of using two boolean destination vars.  Since this is essentially a copy of \u0027servicer migrate\u0027 look there for the correct pattern\n\nhttps://docs.openstack.org/python-openstackclient/latest/contributor/command-options.html#boolean-options","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":25600,"name":"Ebbex","display_name":"ebbex","email":"openstack@slipsprogrammor.no","username":"ebbex"},"change_message_id":"4301bf6ee5105915751d67aefd168d5a7ccc8d62","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            help\u003d_(\u0027Target hypervisor\u0027),"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        migration_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":62,"context_line":"        migration_group.add_argument("},{"line_number":63,"context_line":"            \u0027--shared-migration\u0027,"},{"line_number":64,"context_line":"            dest\u003d\u0027block_migration\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_c08aca19","line":61,"in_reply_to":"7f287b81_55846c5e","updated":"2017-08-24 10:27:45.000000000","message":"This code is actually just a verbatim copy from the option parsing in the \"server migrate\" you mention, but I guess I can adapt it to this new style, and probably submit a patch to update \"server migrate\" to this new style aswell?","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"9dda0ad73c8fb1918fecb9bb35df062bdd43eae7","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            help\u003d_(\u0027Target hypervisor\u0027),"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        migration_group \u003d parser.add_mutually_exclusive_group()"},{"line_number":62,"context_line":"        migration_group.add_argument("},{"line_number":63,"context_line":"            \u0027--shared-migration\u0027,"},{"line_number":64,"context_line":"            dest\u003d\u0027block_migration\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_170373ba","line":61,"in_reply_to":"7f287b81_c08aca19","updated":"2017-08-24 14:13:14.000000000","message":"Ugh, I didn\u0027t look at the options in server migrate, so they are.  Fix these, I\u0027ll go back and fix that separately.  This BTW is why I want the same pattern.  In some cases, it actually does matter.","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"0febeaacdc56b72088b41a33fa35ea41ba3f9d55","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                        continue"},{"line_number":122,"context_line":"                    try:"},{"line_number":123,"context_line":"                        srv.live_migrate("},{"line_number":124,"context_line":"                            parsed_args.target,"},{"line_number":125,"context_line":"                            parsed_args.block_migration,"},{"line_number":126,"context_line":"                            parsed_args.disk_overcommit,"},{"line_number":127,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_b5d95084","line":124,"updated":"2017-08-23 20:10:53.000000000","message":"What happens if --target is not specified?\n\nserver migrate --live requires the destination name, we should be consistent.","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"9dda0ad73c8fb1918fecb9bb35df062bdd43eae7","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                        continue"},{"line_number":122,"context_line":"                    try:"},{"line_number":123,"context_line":"                        srv.live_migrate("},{"line_number":124,"context_line":"                            parsed_args.target,"},{"line_number":125,"context_line":"                            parsed_args.block_migration,"},{"line_number":126,"context_line":"                            parsed_args.disk_overcommit,"},{"line_number":127,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_37cc2f60","line":124,"in_reply_to":"7f287b81_a97691a3","updated":"2017-08-24 14:13:14.000000000","message":"Hm, ok, so server migrate isn\u0027t quite right either then, correct?  Let\u0027s get this one the way we want and we can use (or follow-up) 460059 to handle server migrate.  I had some questions there I\u0027m not sure if are answered yet, will loop back and check this afternoon.\n\nIn my quick reading, --host seems like a better option name than --target since it is a hostname being supplied.  I think then --live is pretty clear.","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":25600,"name":"Ebbex","display_name":"ebbex","email":"openstack@slipsprogrammor.no","username":"ebbex"},"change_message_id":"4301bf6ee5105915751d67aefd168d5a7ccc8d62","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                        continue"},{"line_number":122,"context_line":"                    try:"},{"line_number":123,"context_line":"                        srv.live_migrate("},{"line_number":124,"context_line":"                            parsed_args.target,"},{"line_number":125,"context_line":"                            parsed_args.block_migration,"},{"line_number":126,"context_line":"                            parsed_args.disk_overcommit,"},{"line_number":127,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_a97691a3","line":124,"in_reply_to":"7f287b81_b5d95084","updated":"2017-08-24 10:27:45.000000000","message":"If \"--target\" is not specified, the scheduler just picks a different hypervisor. (https://developer.openstack.org/api-ref/compute/#live-migrate-server-os-migratelive-action)\n\nWe might want to rename this to \"--host\" for consistency, since that\u0027s what the API calls this option.\n\nI could also change \"--target\" to \"--live \u003ctarget\u003e\" and \"--live\" to \"--live-auto\" as a previous patch for \"server migrate --live-auto\" command. (https://review.openstack.org/#/c/460059) It\u0027s a bit messy, but would make it consistent if that patch is applied.\n\nOr the that patch could be changed to \"--live\" and with the optional \"--target\", since live-migration doesn\u0027t actually require a target according to server.migrate() call. Which will break existing behavior, but for the better.","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"0febeaacdc56b72088b41a33fa35ea41ba3f9d55","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"                results.append(q)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        column_headers \u003d (\u0027UUID\u0027, \u0027Name\u0027, \u0027Status\u0027, \u0027Success\u0027, \u0027Message\u0027)"},{"line_number":149,"context_line":"        columns \u003d (\u0027uuid\u0027, \u0027name\u0027, \u0027status\u0027, \u0027success\u0027, \u0027error\u0027)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        return (column_headers,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_faf7c7f4","line":148,"updated":"2017-08-23 20:10:53.000000000","message":"ID","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"},{"author":{"_account_id":25600,"name":"Ebbex","display_name":"ebbex","email":"openstack@slipsprogrammor.no","username":"ebbex"},"change_message_id":"4301bf6ee5105915751d67aefd168d5a7ccc8d62","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"                results.append(q)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        column_headers \u003d (\u0027UUID\u0027, \u0027Name\u0027, \u0027Status\u0027, \u0027Success\u0027, \u0027Message\u0027)"},{"line_number":149,"context_line":"        columns \u003d (\u0027uuid\u0027, \u0027name\u0027, \u0027status\u0027, \u0027success\u0027, \u0027error\u0027)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        return (column_headers,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f287b81_60eaf6ac","line":148,"in_reply_to":"7f287b81_faf7c7f4","updated":"2017-08-24 10:27:45.000000000","message":"Done","commit_id":"35dee8e8d379afb0ce66836d9226ac37d703d58c"}]}
