2013-09-15 13:19:45 +02:00
|
|
|
|
|
|
|
|
2014-01-19 01:02:29 +01:00
|
|
|
def load_volume(data, bootloader):
|
2013-09-15 13:19:45 +02:00
|
|
|
from common.fs.loopbackvolume import LoopbackVolume
|
2013-10-09 00:09:34 +02:00
|
|
|
from providers.ec2.ebsvolume import EBSVolume
|
2013-12-28 14:01:34 +01:00
|
|
|
from common.fs.virtualdiskimage import VirtualDiskImage
|
2013-12-28 14:02:28 +01:00
|
|
|
from common.fs.virtualmachinedisk import VirtualMachineDisk
|
2013-09-18 00:46:58 +02:00
|
|
|
from partitionmaps.gpt import GPTPartitionMap
|
2014-01-18 21:23:54 +00:00
|
|
|
from partitionmaps.msdos import MSDOSPartitionMap
|
2013-09-18 00:46:58 +02:00
|
|
|
from partitionmaps.none import NoPartitions
|
2013-09-15 13:19:45 +02:00
|
|
|
partition_maps = {'none': NoPartitions,
|
2013-09-18 00:46:58 +02:00
|
|
|
'gpt': GPTPartitionMap,
|
2014-01-18 21:23:54 +00:00
|
|
|
'msdos': MSDOSPartitionMap,
|
2013-09-15 13:19:45 +02:00
|
|
|
}
|
2014-01-19 01:02:29 +01:00
|
|
|
partition_map = partition_maps.get(data['partitions']['type'])(data['partitions'], bootloader)
|
2013-09-15 13:19:45 +02:00
|
|
|
volume_backings = {'raw': LoopbackVolume,
|
2013-10-27 12:55:03 +01:00
|
|
|
's3': LoopbackVolume,
|
2013-12-28 14:01:34 +01:00
|
|
|
'vdi': VirtualDiskImage,
|
2013-12-28 14:02:28 +01:00
|
|
|
'vmdk': VirtualMachineDisk,
|
2013-09-15 13:19:45 +02:00
|
|
|
'ebs': EBSVolume
|
|
|
|
}
|
|
|
|
return volume_backings.get(data['backing'])(partition_map)
|