Advanced partition manager

Registered by Lucas Alvares Gomes

As part a deployment in Ironic disk of the target machine needs to be partitioned, right now Ironic is using sfdisk to do it but there's many downsides using this approach:

* Do not support GPT (MBR only)
* Layouts are pretty much hardcoded in the code
* Hard to get information about partitions (e.g trying to know which partition is marked as bootable would required a lot of cmd line parsing)

This blueprint propose is to create a more advanced partition manager to Ironic in order to have a more flexible, easy-to-manage and to support to more than one partition technology (MBR and GPT at least).

Implementation should _NOT_ attempt to write yet another partitioning application from scratch, we should rely on something that already exist and encapsulate the logic into well defined classes so that it can be used by Ironic and the Ironic deploy agent. This blueprint suggest using uDisks[1][2] as the main technology behind it, or to use libraries with python binds to do the work, for e.g PyParted[3]

[1] http://www.freedesktop.org/wiki/Software/udisks/
[2] https://github.com/umago/python-udisks/
[3] https://fedorahosted.org/pyparted/

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Lucas Alvares Gomes
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Lucas Alvares Gomes
Completed by
Lucas Alvares Gomes

Related branches

Sprints

Whiteboard

I don't really follow the issue here. Using sgdisk to make gpt partitions should be a pretty trivial (few lines) patch (separate to the logic for deciding *when* to use gpt vs mbr which is probably an image hint + pass that down thing). Also this needs an etherpad for the design work; the blueprint page is a horrible format to collaborate in :) -- RobertCollins

Lucas, is this still something we want to do?
// jroll 2015-10-15

Hi Jim. No, I think it's all done already, this blueprint was writing a long time ago I had forgot about it already! I will mark it as Implemented already
// lucasagomes 2015-10-16

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.