Migrate instance from syspanel

Registered by Tres Henry

In the syspanel, I would expect the ability to migrate a single server.

Steps:

0) login as admin
1) go to syspanel
2) go to instances and find the instance you want to migrate
3) click migrate

---

The novaclient library exposes the API:

$ nova help migrate
usage: nova migrate <server>

Migrate a server.

Positional arguments:
  <server> Name or ID of server.

Blueprint information

Status:
Complete
Approver:
Devin Carlen
Priority:
Medium
Drafter:
None
Direction:
Approved
Assignee:
Julie Pichon
Definition:
Approved
Series goal:
Accepted for grizzly
Implementation:
Implemented
Milestone target:
milestone icon 2013.1
Started by
Julie Pichon
Completed by
Gabriel Hurley

Related branches

Sprints

Whiteboard

[jpichon] Uploaded to Gerrit as a work in progress, feedback very welcome.

Gerrit topic: https://review.openstack.org/#q,topic:bp/migrate-instance,n,z

Addressed by: https://review.openstack.org/18720
    Migrate an instance from the admin dashboard

Pending:
- Adding explanations to the confirmation dialog:
   - This is a 2-steps process
   - The auto-confirm configuration option may have been set

I think highlighting that this is a 2-step process in the UX is a very important part of the blueprint, additional ideas in that area are also welcome.

Since I had to look it up initially... 'nova migrate' performs a "dead" migration on a server, essentially creating a snapshot of the drive, transferring it to a new server and rebooting. [0] The new host is selected by the scheduler. [1]

[0] https://lists.launchpad.net/openstack/msg12769.html
[1] https://lists.launchpad.net/openstack/msg12786.html

Some considerations:

- Migrate and resize share a code path (as in, migrate is a special kind of resize or vice-versa...). When the migration begins, the default status messages are "Resize migrating", "Verify resize" etc which could be confusing. Ideally the UI should show migration-specific messages.

- Migrate/resize is a 2-step process. After the resize a resize-confirm or resize-revert command needs to be manually entered. This 2-steps process will need to be reflected in the UI.

Additionally there's an auto-confirm config option (resize_confirm_window) in Nova, which defaults to infinity. If it's set though, the migrate/resize will be automatically confirmed if no action is taken within that timeframe. I don't think we can access nova config options through the API (?) to tell the user about it, but we should at least give a warning that auto-confirm may be enabled (therefore they shouldn't wait too long if they want to revert...)

- By default migrate is an admin-only option. This could be changed by updating nova's policy.json -- taking this into account may be work for another, bigger blueprint though... The confirm/revert step isn't restricted to admins.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.