public static DeveloperParameters LoadItemsFromManifest(DeveloperParameters parameters, AddonManifest manifest)
{
try
{
var manifestProperties = manifest.GetProperties();
foreach (var manifestProperty in manifestProperties)
{
switch (manifestProperty.Key.Trim().ToLowerInvariant())
{
case ("vserver"):
parameters.VServer = manifestProperty.Value;
break;
case ("adminusername"):
parameters.AdminUserName = manifestProperty.Value;
break;
case ("adminpassword"):
parameters.AdminPassword = manifestProperty.Value;
break;
case ("clustermgtendpoint"):
parameters.ClusterMgtEndpoint = manifestProperty.Value;
break;
case ("defaultprotocol"):
parameters.VolumeToProvision.Protocol = manifestProperty.Value;
break;
case ("defaultaggregate"):
parameters.VolumeToProvision.AggregateName = manifestProperty.Value;
break;
case ("defaultrootpath"):
parameters.VolumeToProvision.JunctionPath = manifestProperty.Value;
break;
case ("snapenable"):
bool snaptest;
bool.TryParse(manifestProperty.Value, out snaptest);
parameters.VolumeToProvision.SnapEnable = snaptest;
break;
case ("vaultenable"):
bool test;
bool.TryParse(manifestProperty.Value, out test);
parameters.VolumeToProvision.VaultEnable = test;
break;
case ("snapshotschedule"):
parameters.VolumeToProvision.SnapshotSchedule = manifestProperty.Value;
break;
case ("defaultacl"):
break;
case ("snapmirrorpolicyname"):
parameters.VolumeToProvision.SnapMirrorPolicyName = manifestProperty.Value;
break;
case ("snapvaultpolicyname"):
parameters.VolumeToProvision.SnapVaultPolicyName = manifestProperty.Value;
break;
case ("snapmirrorschedule"):
parameters.VolumeToProvision.SnapMirrorSchedule = manifestProperty.Value;
break;
case ("snapvaultschedule"):
parameters.VolumeToProvision.SnapVaultSchedule = manifestProperty.Value;
break;
case ("snaptype"):
parameters.VolumeToProvision.SnapType = manifestProperty.Value;
break;
case ("shareendpoint"):
parameters.VolumeToProvision.CifsRootServer = manifestProperty.Value;
break;
case ("scriptrepotype"):
parameters.ScriptRepositoryType = manifestProperty.Value;
break;
case ("scriptrepo"):
parameters.ScriptRepository = manifestProperty.Value;
break;
case ("maxallocatedstorage"):
parameters.MaxAllocatedStorage = manifestProperty.Value;
break;
default: // means there are other manifest properties we don't need.
Console.WriteLine("Parse failed on key: " + manifestProperty.Key);
break;
}
}
return parameters;
}
catch (Exception e)
{
throw new Exception(e.Message + "\n Debug information: " + manifest.GetProperties());
}
}
}