protected void ValidateParameters()
{
if (ParameterSetName.Equals("CreateService", StringComparison.OrdinalIgnoreCase))
{
if (string.IsNullOrEmpty(Location) && string.IsNullOrEmpty(AffinityGroup))
{
throw new ArgumentException("Location or AffinityGroup is required when creating a new Cloud Service.");
}
}
else
{
if (!string.IsNullOrEmpty(Location) && !string.IsNullOrEmpty(AffinityGroup))
{
throw new ArgumentException("Location or AffinityGroup can only be specified when creating a new cloud service.");
}
}
if (this.ParameterSetName.Equals("CreateService", StringComparison.OrdinalIgnoreCase) == true)
{
if (!string.IsNullOrEmpty(this.VNetName) && string.IsNullOrEmpty(this.AffinityGroup))
{
throw new ArgumentException("Must specify the same affinity group as the virtual network is deployed to.");
}
}
if (this.ParameterSetName.Equals("CreateService", StringComparison.OrdinalIgnoreCase) == true || this.ParameterSetName.Equals("CreateDeployment", StringComparison.OrdinalIgnoreCase) == true)
{
if (this.DnsSettings != null && string.IsNullOrEmpty(this.VNetName))
{
throw new ArgumentException("VNetName is required when specifying DNS Settings.");
}
}
foreach (PersistentVM pVM in this.VMs)
{
var provisioningConfiguration = pVM.ConfigurationSets
.OfType<ProvisioningConfigurationSet>()
.SingleOrDefault();
if (provisioningConfiguration == null && pVM.OSVirtualHardDisk.SourceImageName != null)
{
throw new ArgumentException(string.Format("Virtual Machine {0} is missing provisioning configuration", pVM.RoleName));
}
}
}