public string GetOriginalLvm(int profileId, string clientHd, string hdToGet, string partitionPrefix)
{
string result = null;
var imageProfile = BLL.ImageProfile.ReadProfile(profileId);
var hdNumberToGet = Convert.ToInt32(hdToGet);
var partitionHelper = new ClientPartitionHelper(imageProfile);
var imageSchema = partitionHelper.GetImageSchema();
foreach (var part in from part in imageSchema.HardDrives[hdNumberToGet].Partitions
where part.Active
where part.VolumeGroup != null
where part.VolumeGroup.LogicalVolumes != null
select part)
{
result = "pvcreate -u " + part.Uuid + " --norestorefile -yf " +
clientHd + partitionPrefix + part.VolumeGroup.PhysicalVolume[part.VolumeGroup.PhysicalVolume.Length - 1] + "\r\n";
result += "vgcreate " + part.VolumeGroup.Name + " " + clientHd + partitionPrefix +
part.VolumeGroup.PhysicalVolume[part.VolumeGroup.PhysicalVolume.Length - 1] + " -yf" + "\r\n";
result += "echo \"" + part.VolumeGroup.Uuid + "\" >>/tmp/vg-" + part.VolumeGroup.Name +
"\r\n";
foreach (var lv in part.VolumeGroup.LogicalVolumes.Where(lv => lv.Active))
{
result += "lvcreate --yes -L " + lv.Size + "s -n " + lv.Name + " " +
lv.VolumeGroup + "\r\n";
result += "echo \"" + lv.Uuid + "\" >>/tmp/" + lv.VolumeGroup + "-" +
lv.Name + "\r\n";
}
result += "vgcfgbackup -f /tmp/lvm-" + part.VolumeGroup.Name + "\r\n";
}
return result;
}