public override void ExecuteCmdlet() { WriteWarning("New-AzureRmVmss: A property of the output of this cmdlet will change in an upcoming breaking change release. " + "The StorageAccountType property for a DataDisk will return Standard_LRS and Premium_LRS"); switch (ParameterSetName) { case SimpleParameterSet: this.StartAndWait(SimpleParameterSetExecuteCmdlet); break; default: ExecuteClientAction(() => { if (ShouldProcess(this.VMScaleSetName, VerbsCommon.New)) { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; VirtualMachineScaleSet parameters = new VirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <PSVirtualMachineScaleSet, VirtualMachineScaleSet>(this.VirtualMachineScaleSet, parameters); var result = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, vmScaleSetName, parameters); var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject); WriteObject(psObject); } }); break; } }
public override void ExecuteCmdlet() { switch (ParameterSetName) { case SimpleParameterSet: this.StartAndWait(SimpleParameterSetExecuteCmdlet); break; default: ExecuteClientAction(() => { if (ShouldProcess(this.VMScaleSetName, VerbsCommon.New)) { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; VirtualMachineScaleSet parameters = new VirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <PSVirtualMachineScaleSet, VirtualMachineScaleSet>(this.VirtualMachineScaleSet, parameters); var result = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, vmScaleSetName, parameters); var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject); WriteObject(psObject); } }); break; } }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); switch (ParameterSetName) { case SimpleParameterSet: this.StartAndWait(SimpleParameterSetExecuteCmdlet); break; default: ExecuteClientAction(() => { if (ShouldProcess(this.VMScaleSetName, VerbsCommon.New)) { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; VirtualMachineScaleSet parameters = new VirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <PSVirtualMachineScaleSet, VirtualMachineScaleSet>(this.VirtualMachineScaleSet, parameters); if (parameters?.VirtualMachineProfile?.StorageProfile?.ImageReference?.Version?.ToLower() != "latest") { WriteWarning("You are deploying VMSS pinned to a specific image version from Azure Marketplace. \n" + "Consider using \"latest\" as the image version. This allows VMSS to auto upgrade when a newer version is available."); } var result = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, vmScaleSetName, parameters); var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject); WriteObject(psObject); } }); break; } }
protected void ExecuteVirtualMachineScaleSetGetMethod(object[] invokeMethodInputParameters) { string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]); string vmScaleSetName = (string)ParseParameter(invokeMethodInputParameters[1]); if (!string.IsNullOrEmpty(resourceGroupName) && !string.IsNullOrEmpty(vmScaleSetName)) { var result = VirtualMachineScaleSetsClient.Get(resourceGroupName, vmScaleSetName); var psObject = new PSVirtualMachineScaleSet(); Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject); WriteObject(psObject); } else if (!string.IsNullOrEmpty(resourceGroupName)) { var result = VirtualMachineScaleSetsClient.List(resourceGroupName); var psObject = new List <PSVirtualMachineScaleSetList>(); foreach (var r in result) { psObject.Add(Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r)); } WriteObject(psObject); } else { var result = VirtualMachineScaleSetsClient.ListAll(); var psObject = new List <PSVirtualMachineScaleSetList>(); foreach (var r in result) { psObject.Add(Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r)); } WriteObject(psObject); } }
async Task SimpleParameterSetExecuteCmdlet(IAsyncCmdlet asyncCmdlet) { bool loadBalancerNamePassedIn = !String.IsNullOrWhiteSpace(LoadBalancerName); ResourceGroupName = ResourceGroupName ?? VMScaleSetName; VirtualNetworkName = VirtualNetworkName ?? VMScaleSetName; SubnetName = SubnetName ?? VMScaleSetName; PublicIpAddressName = PublicIpAddressName ?? VMScaleSetName; SecurityGroupName = SecurityGroupName ?? VMScaleSetName; LoadBalancerName = LoadBalancerName ?? VMScaleSetName; FrontendPoolName = FrontendPoolName ?? VMScaleSetName; BackendPoolName = BackendPoolName ?? VMScaleSetName; var client = new Client(DefaultProfile.DefaultContext); var parameters = new Parameters(this, client); // If the user did not specify a load balancer name, mark the LB setting to ignore // preexisting check. The most common scenario is users will let the cmdlet create and name the LB for them with the default // config. We do not want to block that scenario in case the cmdlet failed mid operation and tthe user kicks it off again. if (!loadBalancerNamePassedIn) { LoadBalancerStrategy.IgnorePreExistingConfigCheck = true; } else { LoadBalancerStrategy.IgnorePreExistingConfigCheck = false; } var result = await client.RunAsync(client.SubscriptionId, parameters, asyncCmdlet); if (result != null) { var fqdn = PublicIPAddressStrategy.Fqdn(DomainNameLabel, Location); var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map(result, psObject); psObject.FullyQualifiedDomainName = fqdn; var port = "<port>"; var connectionString = parameters.ImageAndOsType.GetConnectionString( fqdn, Credential.UserName, port); var range = FirstPortRangeStart.ToString() + ".." + (FirstPortRangeStart + InstanceCount * 2 - 1).ToString(); asyncCmdlet.WriteVerbose( Resources.VmssUseConnectionString, connectionString); asyncCmdlet.WriteVerbose( Resources.VmssPortRange, port, range); asyncCmdlet.WriteObject(psObject); } }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); switch (ParameterSetName) { case SimpleParameterSet: this.StartAndWait(SimpleParameterSetExecuteCmdlet); break; default: ExecuteClientAction(() => { if (ShouldProcess(this.VMScaleSetName, VerbsCommon.New)) { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; VirtualMachineScaleSet parameters = new VirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <PSVirtualMachineScaleSet, VirtualMachineScaleSet>(this.VirtualMachineScaleSet, parameters); if (parameters?.VirtualMachineProfile?.StorageProfile?.ImageReference?.Version?.ToLower() != "latest") { WriteWarning("You are deploying VMSS pinned to a specific image version from Azure Marketplace. \n" + "Consider using \"latest\" as the image version. This allows VMSS to auto upgrade when a newer version is available."); } if (parameters?.OrchestrationMode == "Flexible") { if (parameters?.VirtualMachineProfile?.NetworkProfile?.NetworkInterfaceConfigurations != null) { foreach (var nicConfig in parameters.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations) { if (nicConfig.IpConfigurations != null) { foreach (var ipConfig in nicConfig.IpConfigurations) { ipConfig.LoadBalancerInboundNatPools = null; } } } } parameters.UpgradePolicy = null; flexibleOrchestrationModeDefaultParameters(parameters); checkFlexibleOrchestrationModeParamsDefaultParamSet(parameters); } var result = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, vmScaleSetName, parameters); var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject); WriteObject(psObject); } }); break; } }
protected void ExecuteVirtualMachineScaleSetGetMethod(object[] invokeMethodInputParameters) { string resourceGroupName = (string)ParseParameter(invokeMethodInputParameters[0]); string vmScaleSetName = (string)ParseParameter(invokeMethodInputParameters[1]); if (!string.IsNullOrEmpty(resourceGroupName) && !string.IsNullOrEmpty(vmScaleSetName)) { var result = VirtualMachineScaleSetsClient.Get(resourceGroupName, vmScaleSetName); var psObject = new PSVirtualMachineScaleSet(); Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject); WriteObject(psObject); } else if (!string.IsNullOrEmpty(resourceGroupName)) { var result = VirtualMachineScaleSetsClient.List(resourceGroupName); var resultList = result.ToList(); var nextPageLink = result.NextPageLink; while (!string.IsNullOrEmpty(nextPageLink)) { var pageResult = VirtualMachineScaleSetsClient.ListNext(nextPageLink); foreach (var pageItem in pageResult) { resultList.Add(pageItem); } nextPageLink = pageResult.NextPageLink; } var psObject = new List <PSVirtualMachineScaleSetList>(); foreach (var r in resultList) { psObject.Add(Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r)); } WriteObject(psObject, true); } else { var result = VirtualMachineScaleSetsClient.ListAll(); var resultList = result.ToList(); var nextPageLink = result.NextPageLink; while (!string.IsNullOrEmpty(nextPageLink)) { var pageResult = VirtualMachineScaleSetsClient.ListAllNext(nextPageLink); foreach (var pageItem in pageResult) { resultList.Add(pageItem); } nextPageLink = pageResult.NextPageLink; } var psObject = new List <PSVirtualMachineScaleSetList>(); foreach (var r in resultList) { psObject.Add(Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r)); } WriteObject(psObject, true); } }
async Task SimpleParameterSetExecuteCmdlet(IAsyncCmdlet asyncCmdlet) { ResourceGroupName = ResourceGroupName ?? VMScaleSetName; VirtualNetworkName = VirtualNetworkName ?? VMScaleSetName; SubnetName = SubnetName ?? VMScaleSetName; PublicIpAddressName = PublicIpAddressName ?? VMScaleSetName; SecurityGroupName = SecurityGroupName ?? VMScaleSetName; LoadBalancerName = LoadBalancerName ?? VMScaleSetName; FrontendPoolName = FrontendPoolName ?? VMScaleSetName; BackendPoolName = BackendPoolName ?? VMScaleSetName; var client = new Client(DefaultProfile.DefaultContext); var parameters = new Parameters(this, client); var result = await StrategyCmdlet.RunAsync( client, parameters, asyncCmdlet, new CancellationToken()); if (result != null) { var fqdn = PublicIPAddressStrategy.Fqdn(DomainNameLabel, Location); var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map(result, psObject); psObject.FullyQualifiedDomainName = fqdn; var port = "<port>"; var connectionString = parameters.ImageAndOsType.GetConnectionString( fqdn, Credential.UserName, port); var range = FirstPortRangeStart.ToString() + ".." + (FirstPortRangeStart + InstanceCount * 2).ToString(); asyncCmdlet.WriteVerbose( Resources.VmssUseConnectionString, connectionString); asyncCmdlet.WriteVerbose( Resources.VmssPortRange, port, range); asyncCmdlet.WriteObject(psObject); } }
protected override void ProcessRecord() { ExecuteClientAction(() => { if (ShouldProcess(this.VMScaleSetName, VerbsCommon.New)) { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; VirtualMachineScaleSet parameters = new VirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <PSVirtualMachineScaleSet, VirtualMachineScaleSet>(this.VirtualMachineScaleSet, parameters); var result = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, vmScaleSetName, parameters); var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject); WriteObject(psObject); } }); }
public override void ExecuteCmdlet() { ExecuteClientAction(() => { WriteWarning("Get-AzureRmVmss: A property of the output of this cmdlet will change in an upcoming breaking change release. " + "The StorageAccountType property for a DataDisk will return Standard_LRS and Premium_LRS"); string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; if (!string.IsNullOrEmpty(resourceGroupName) && !string.IsNullOrEmpty(vmScaleSetName)) { if (this.ParameterSetName.Equals("FriendMethod")) { var result = VirtualMachineScaleSetsClient.GetInstanceView(resourceGroupName, vmScaleSetName); var psObject = new PSVirtualMachineScaleSetInstanceView(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSetInstanceView, PSVirtualMachineScaleSetInstanceView>(result, psObject); WriteObject(psObject); } else { var result = VirtualMachineScaleSetsClient.Get(resourceGroupName, vmScaleSetName); var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject); WriteObject(psObject); } } else if (!string.IsNullOrEmpty(resourceGroupName)) { var result = VirtualMachineScaleSetsClient.List(resourceGroupName); var resultList = result.ToList(); var nextPageLink = result.NextPageLink; while (!string.IsNullOrEmpty(nextPageLink)) { var pageResult = VirtualMachineScaleSetsClient.ListNext(nextPageLink); foreach (var pageItem in pageResult) { resultList.Add(pageItem); } nextPageLink = pageResult.NextPageLink; } var psObject = new List <PSVirtualMachineScaleSetList>(); foreach (var r in resultList) { psObject.Add(ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r)); } WriteObject(psObject, true); } else { var result = VirtualMachineScaleSetsClient.ListAll(); var resultList = result.ToList(); var nextPageLink = result.NextPageLink; while (!string.IsNullOrEmpty(nextPageLink)) { var pageResult = VirtualMachineScaleSetsClient.ListAllNext(nextPageLink); foreach (var pageItem in pageResult) { resultList.Add(pageItem); } nextPageLink = pageResult.NextPageLink; } var psObject = new List <PSVirtualMachineScaleSetList>(); foreach (var r in resultList) { psObject.Add(ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r)); } WriteObject(psObject, true); } }); }
async Task SimpleParameterSetExecuteCmdlet(IAsyncCmdlet asyncCmdlet) { ResourceGroupName = ResourceGroupName ?? VMScaleSetName; VirtualNetworkName = VirtualNetworkName ?? VMScaleSetName; SubnetName = SubnetName ?? VMScaleSetName; PublicIpAddressName = PublicIpAddressName ?? VMScaleSetName; SecurityGroupName = SecurityGroupName ?? VMScaleSetName; LoadBalancerName = LoadBalancerName ?? VMScaleSetName; FrontendPoolName = FrontendPoolName ?? VMScaleSetName; BackendPoolName = BackendPoolName ?? VMScaleSetName; var imageAndOsType = new ImageAndOsType(OperatingSystemTypes.Windows, null); var resourceGroup = ResourceGroupStrategy.CreateResourceGroupConfig(ResourceGroupName); var publicIpAddress = resourceGroup.CreatePublicIPAddressConfig( name: PublicIpAddressName, getDomainNameLabel: () => DomainNameLabel, allocationMethod: AllocationMethod); var virtualNetwork = resourceGroup.CreateVirtualNetworkConfig( name: VirtualNetworkName, addressPrefix: VnetAddressPrefix); var subnet = virtualNetwork.CreateSubnet(SubnetName, SubnetAddressPrefix); var loadBalancer = resourceGroup.CreateLoadBalancerConfig( name: LoadBalancerName, froontendPoolName: FrontendPoolName, backendPoolName: BackendPoolName, zones: Zone, publicIPAddress: publicIpAddress, subnet: subnet); var frontendIpConfiguration = loadBalancer.CreateFrontendIPConfiguration( name: FrontendPoolName, zones: Zone, publicIPAddress: publicIpAddress, subnet: subnet); var backendAddressPool = loadBalancer.CreateBackendAddressPool( name: BackendPoolName); var virtualMachineScaleSet = resourceGroup.CreateVirtualMachineScaleSetConfig( name: VMScaleSetName, subnet: subnet, frontendIpConfigurations: new[] { frontendIpConfiguration }, backendAdressPool: backendAddressPool, getImageAndOsType: () => imageAndOsType, adminUsername: Credential.UserName, adminPassword: new NetworkCredential(string.Empty, Credential.Password).Password, vmSize: VmSize, instanceCount: InstanceCount, upgradeMode: MyInvocation.BoundParameters.ContainsKey("UpgradePolicyMode") ? UpgradePolicyMode : (UpgradeMode?)null); var client = new Client(DefaultProfile.DefaultContext); // get current Azure state var current = await virtualMachineScaleSet.GetStateAsync(client, new CancellationToken()); Location = current.UpdateLocation(Location, virtualMachineScaleSet); imageAndOsType = await client.UpdateImageAndOsTypeAsync(ImageName, Location); // generate a domain name label if it's not specified. DomainNameLabel = await PublicIPAddressStrategy.UpdateDomainNameLabelAsync( domainNameLabel : DomainNameLabel, name : VMScaleSetName, location : Location, client : client); var fqdn = PublicIPAddressStrategy.Fqdn(DomainNameLabel, Location); var target = virtualMachineScaleSet.GetTargetState(current, client.SubscriptionId, Location); var newState = await virtualMachineScaleSet .UpdateStateAsync( client, target, new CancellationToken(), new ShouldProcess(asyncCmdlet), asyncCmdlet.ReportTaskProgress); var result = newState.Get(virtualMachineScaleSet); if (result == null) { result = current.Get(virtualMachineScaleSet); } if (result != null) { var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map(result, psObject); psObject.FullyQualifiedDomainName = fqdn; asyncCmdlet.WriteObject(psObject); } }
private void Run() { WriteWarning("New-AzureRmVmssConfig: A property of the output of this cmdlet will change in an upcoming breaking change release. " + "The StorageAccountType property for a DataDisk will return Standard_LRS and Premium_LRS"); // Sku Microsoft.Azure.Management.Compute.Models.Sku vSku = null; // Plan Microsoft.Azure.Management.Compute.Models.Plan vPlan = null; // UpgradePolicy Microsoft.Azure.Management.Compute.Models.UpgradePolicy vUpgradePolicy = null; // VirtualMachineProfile Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile vVirtualMachineProfile = null; // Identity Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetIdentity vIdentity = null; if (this.MyInvocation.BoundParameters.ContainsKey("SkuName")) { if (vSku == null) { vSku = new Microsoft.Azure.Management.Compute.Models.Sku(); } vSku.Name = this.SkuName; } if (this.MyInvocation.BoundParameters.ContainsKey("SkuTier")) { if (vSku == null) { vSku = new Microsoft.Azure.Management.Compute.Models.Sku(); } vSku.Tier = this.SkuTier; } if (this.MyInvocation.BoundParameters.ContainsKey("SkuCapacity")) { if (vSku == null) { vSku = new Microsoft.Azure.Management.Compute.Models.Sku(); } vSku.Capacity = this.SkuCapacity; } if (this.MyInvocation.BoundParameters.ContainsKey("PlanName")) { if (vPlan == null) { vPlan = new Microsoft.Azure.Management.Compute.Models.Plan(); } vPlan.Name = this.PlanName; } if (this.MyInvocation.BoundParameters.ContainsKey("PlanPublisher")) { if (vPlan == null) { vPlan = new Microsoft.Azure.Management.Compute.Models.Plan(); } vPlan.Publisher = this.PlanPublisher; } if (this.MyInvocation.BoundParameters.ContainsKey("PlanProduct")) { if (vPlan == null) { vPlan = new Microsoft.Azure.Management.Compute.Models.Plan(); } vPlan.Product = this.PlanProduct; } if (this.MyInvocation.BoundParameters.ContainsKey("PlanPromotionCode")) { if (vPlan == null) { vPlan = new Microsoft.Azure.Management.Compute.Models.Plan(); } vPlan.PromotionCode = this.PlanPromotionCode; } if (this.MyInvocation.BoundParameters.ContainsKey("UpgradePolicyMode")) { if (vUpgradePolicy == null) { vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy(); } vUpgradePolicy.Mode = this.UpgradePolicyMode; } if (this.MyInvocation.BoundParameters.ContainsKey("RollingUpgradePolicy")) { if (vUpgradePolicy == null) { vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy(); } vUpgradePolicy.RollingUpgradePolicy = this.RollingUpgradePolicy; } if (vUpgradePolicy == null) { vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy(); } vUpgradePolicy.AutomaticOSUpgrade = this.AutoOSUpgrade.IsPresent; if (this.MyInvocation.BoundParameters.ContainsKey("OsProfile")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.OsProfile = this.OsProfile; } if (this.MyInvocation.BoundParameters.ContainsKey("StorageProfile")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.StorageProfile = this.StorageProfile; } if (this.MyInvocation.BoundParameters.ContainsKey("HealthProbeId")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.NetworkProfile == null) { vVirtualMachineProfile.NetworkProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetNetworkProfile(); } if (vVirtualMachineProfile.NetworkProfile.HealthProbe == null) { vVirtualMachineProfile.NetworkProfile.HealthProbe = new Microsoft.Azure.Management.Compute.Models.ApiEntityReference(); } vVirtualMachineProfile.NetworkProfile.HealthProbe.Id = this.HealthProbeId; } if (this.MyInvocation.BoundParameters.ContainsKey("NetworkInterfaceConfiguration")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.NetworkProfile == null) { vVirtualMachineProfile.NetworkProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetNetworkProfile(); } vVirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations = this.NetworkInterfaceConfiguration; } if (this.MyInvocation.BoundParameters.ContainsKey("BootDiagnostic")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.DiagnosticsProfile == null) { vVirtualMachineProfile.DiagnosticsProfile = new Microsoft.Azure.Management.Compute.Models.DiagnosticsProfile(); } vVirtualMachineProfile.DiagnosticsProfile.BootDiagnostics = this.BootDiagnostic; } if (this.MyInvocation.BoundParameters.ContainsKey("Extension")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.ExtensionProfile == null) { vVirtualMachineProfile.ExtensionProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetExtensionProfile(); } vVirtualMachineProfile.ExtensionProfile.Extensions = this.Extension; } if (this.MyInvocation.BoundParameters.ContainsKey("LicenseType")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.LicenseType = this.LicenseType; } if (this.MyInvocation.BoundParameters.ContainsKey("Priority")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.Priority = this.Priority; } if (this.AssignIdentity.IsPresent) { if (vIdentity == null) { vIdentity = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetIdentity(); } vIdentity.Type = ResourceIdentityType.SystemAssigned; } if (this.MyInvocation.BoundParameters.ContainsKey("IdentityType")) { if (vIdentity == null) { vIdentity = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetIdentity(); } vIdentity.Type = this.IdentityType; } if (this.MyInvocation.BoundParameters.ContainsKey("IdentityId")) { if (vIdentity == null) { vIdentity = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetIdentity(); } vIdentity.IdentityIds = this.IdentityId; } var vVirtualMachineScaleSet = new PSVirtualMachineScaleSet { Overprovision = this.MyInvocation.BoundParameters.ContainsKey("Overprovision") ? this.Overprovision : (bool?)null, SinglePlacementGroup = this.MyInvocation.BoundParameters.ContainsKey("SinglePlacementGroup") ? this.SinglePlacementGroup : (bool?)null, ZoneBalance = this.ZoneBalance.IsPresent, PlatformFaultDomainCount = this.MyInvocation.BoundParameters.ContainsKey("PlatformFaultDomainCount") ? this.PlatformFaultDomainCount : (int?)null, Zones = this.MyInvocation.BoundParameters.ContainsKey("Zone") ? this.Zone : null, Location = this.MyInvocation.BoundParameters.ContainsKey("Location") ? this.Location : null, Tags = this.MyInvocation.BoundParameters.ContainsKey("Tag") ? this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value) : null, Sku = vSku, Plan = vPlan, UpgradePolicy = vUpgradePolicy, VirtualMachineProfile = vVirtualMachineProfile, Identity = vIdentity, }; WriteObject(vVirtualMachineScaleSet); }
private void Run() { // Sku Sku vSku = null; // Plan Plan vPlan = null; // UpgradePolicy UpgradePolicy vUpgradePolicy = null; // AutomaticRepairsPolicy AutomaticRepairsPolicy vAutomaticRepairsPolicy = null; // VirtualMachineProfile PSVirtualMachineScaleSetVMProfile vVirtualMachineProfile = null; // ProximityPlacementGroup SubResource vProximityPlacementGroup = null; // AdditionalCapabilities AdditionalCapabilities vAdditionalCapabilities = null; // ScaleInPolicy ScaleInPolicy vScaleInPolicy = null; // Identity VirtualMachineScaleSetIdentity vIdentity = null; if (this.IsParameterBound(c => c.SkuName)) { if (vSku == null) { vSku = new Sku(); } vSku.Name = this.SkuName; } if (this.IsParameterBound(c => c.SkuTier)) { if (vSku == null) { vSku = new Sku(); } vSku.Tier = this.SkuTier; } if (this.IsParameterBound(c => c.SkuCapacity)) { if (vSku == null) { vSku = new Sku(); } vSku.Capacity = this.SkuCapacity; } if (this.IsParameterBound(c => c.PlanName)) { if (vPlan == null) { vPlan = new Plan(); } vPlan.Name = this.PlanName; } if (this.IsParameterBound(c => c.PlanPublisher)) { if (vPlan == null) { vPlan = new Plan(); } vPlan.Publisher = this.PlanPublisher; } if (this.IsParameterBound(c => c.PlanProduct)) { if (vPlan == null) { vPlan = new Plan(); } vPlan.Product = this.PlanProduct; } if (this.IsParameterBound(c => c.PlanPromotionCode)) { if (vPlan == null) { vPlan = new Plan(); } vPlan.PromotionCode = this.PlanPromotionCode; } if (this.IsParameterBound(c => c.UpgradePolicyMode)) { if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } vUpgradePolicy.Mode = this.UpgradePolicyMode; } if (this.IsParameterBound(c => c.RollingUpgradePolicy)) { if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } vUpgradePolicy.RollingUpgradePolicy = this.RollingUpgradePolicy; } if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } if (vUpgradePolicy.AutomaticOSUpgradePolicy == null) { vUpgradePolicy.AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy(); } vUpgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade = this.AutoOSUpgrade.IsPresent; if (this.EnableAutomaticRepair.IsPresent) { if (vAutomaticRepairsPolicy == null) { vAutomaticRepairsPolicy = new AutomaticRepairsPolicy(); } vAutomaticRepairsPolicy.Enabled = this.EnableAutomaticRepair.IsPresent; } if (this.IsParameterBound(c => c.AutomaticRepairGracePeriod)) { if (vAutomaticRepairsPolicy == null) { vAutomaticRepairsPolicy = new AutomaticRepairsPolicy(); } vAutomaticRepairsPolicy.GracePeriod = this.AutomaticRepairGracePeriod; } if (this.IsParameterBound(c => c.DisableAutoRollback)) { if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } if (vUpgradePolicy.AutomaticOSUpgradePolicy == null) { vUpgradePolicy.AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy(); } vUpgradePolicy.AutomaticOSUpgradePolicy.DisableAutomaticRollback = this.DisableAutoRollback; } if (this.IsParameterBound(c => c.OsProfile)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.OsProfile = this.OsProfile; } if (this.IsParameterBound(c => c.StorageProfile)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.StorageProfile = this.StorageProfile; } if (this.IsParameterBound(c => c.HealthProbeId)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.NetworkProfile == null) { vVirtualMachineProfile.NetworkProfile = new VirtualMachineScaleSetNetworkProfile(); } if (vVirtualMachineProfile.NetworkProfile.HealthProbe == null) { vVirtualMachineProfile.NetworkProfile.HealthProbe = new ApiEntityReference(); } vVirtualMachineProfile.NetworkProfile.HealthProbe.Id = this.HealthProbeId; } if (this.IsParameterBound(c => c.NetworkInterfaceConfiguration)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.NetworkProfile == null) { vVirtualMachineProfile.NetworkProfile = new VirtualMachineScaleSetNetworkProfile(); } vVirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations = this.NetworkInterfaceConfiguration; } if (this.IsParameterBound(c => c.BootDiagnostic)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.DiagnosticsProfile == null) { vVirtualMachineProfile.DiagnosticsProfile = new DiagnosticsProfile(); } vVirtualMachineProfile.DiagnosticsProfile.BootDiagnostics = this.BootDiagnostic; } if (this.IsParameterBound(c => c.Extension)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.ExtensionProfile == null) { vVirtualMachineProfile.ExtensionProfile = new PSVirtualMachineScaleSetExtensionProfile(); } vVirtualMachineProfile.ExtensionProfile.Extensions = this.Extension; } if (this.IsParameterBound(c => c.LicenseType)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.LicenseType = this.LicenseType; } if (this.IsParameterBound(c => c.Priority)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.Priority = this.Priority; } if (this.IsParameterBound(c => c.EvictionPolicy)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.EvictionPolicy = this.EvictionPolicy; } if (this.IsParameterBound(c => c.MaxPrice)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.BillingProfile == null) { vVirtualMachineProfile.BillingProfile = new BillingProfile(); } vVirtualMachineProfile.BillingProfile.MaxPrice = this.MaxPrice; } if (this.TerminateScheduledEvents.IsPresent) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.ScheduledEventsProfile == null) { vVirtualMachineProfile.ScheduledEventsProfile = new ScheduledEventsProfile(); } if (vVirtualMachineProfile.ScheduledEventsProfile.TerminateNotificationProfile == null) { vVirtualMachineProfile.ScheduledEventsProfile.TerminateNotificationProfile = new TerminateNotificationProfile(); } vVirtualMachineProfile.ScheduledEventsProfile.TerminateNotificationProfile.Enable = this.TerminateScheduledEvents.IsPresent; } if (this.IsParameterBound(c => c.TerminateScheduledEventNotBeforeTimeoutInMinutes)) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new PSVirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.ScheduledEventsProfile == null) { vVirtualMachineProfile.ScheduledEventsProfile = new ScheduledEventsProfile(); } if (vVirtualMachineProfile.ScheduledEventsProfile.TerminateNotificationProfile == null) { vVirtualMachineProfile.ScheduledEventsProfile.TerminateNotificationProfile = new TerminateNotificationProfile(); } vVirtualMachineProfile.ScheduledEventsProfile.TerminateNotificationProfile.NotBeforeTimeout = XmlConvert.ToString(new TimeSpan(0, this.TerminateScheduledEventNotBeforeTimeoutInMinutes, 0)); } if (this.IsParameterBound(c => c.ProximityPlacementGroupId)) { if (vProximityPlacementGroup == null) { vProximityPlacementGroup = new SubResource(); } vProximityPlacementGroup.Id = this.ProximityPlacementGroupId; } if (this.EnableUltraSSD.IsPresent) { if (vAdditionalCapabilities == null) { vAdditionalCapabilities = new AdditionalCapabilities(true); } } if (this.IsParameterBound(c => c.ScaleInPolicy)) { if (vScaleInPolicy == null) { vScaleInPolicy = new ScaleInPolicy(); } vScaleInPolicy.Rules = this.ScaleInPolicy; } if (this.IsParameterBound(c => c.IdentityType)) { if (vIdentity == null) { vIdentity = new VirtualMachineScaleSetIdentity(); } vIdentity.Type = this.IdentityType; } if (this.IsParameterBound(c => c.IdentityId)) { if (vIdentity == null) { vIdentity = new VirtualMachineScaleSetIdentity(); } vIdentity.UserAssignedIdentities = new Dictionary <string, VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue>(); foreach (var id in this.IdentityId) { vIdentity.UserAssignedIdentities.Add(id, new VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue()); } } var vVirtualMachineScaleSet = new PSVirtualMachineScaleSet { Overprovision = this.IsParameterBound(c => c.Overprovision) ? this.Overprovision : (bool?)null, DoNotRunExtensionsOnOverprovisionedVMs = this.SkipExtensionsOnOverprovisionedVMs.IsPresent ? true : (bool?)null, SinglePlacementGroup = this.IsParameterBound(c => c.SinglePlacementGroup) ? this.SinglePlacementGroup : (bool?)null, ZoneBalance = this.ZoneBalance.IsPresent ? true : (bool?)null, PlatformFaultDomainCount = this.IsParameterBound(c => c.PlatformFaultDomainCount) ? this.PlatformFaultDomainCount : (int?)null, Zones = this.IsParameterBound(c => c.Zone) ? this.Zone : null, Location = this.IsParameterBound(c => c.Location) ? this.Location : null, Tags = this.IsParameterBound(c => c.Tag) ? this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value) : null, Sku = vSku, Plan = vPlan, UpgradePolicy = vUpgradePolicy, AutomaticRepairsPolicy = vAutomaticRepairsPolicy, VirtualMachineProfile = vVirtualMachineProfile, ProximityPlacementGroup = vProximityPlacementGroup, AdditionalCapabilities = vAdditionalCapabilities, ScaleInPolicy = vScaleInPolicy, Identity = vIdentity, }; WriteObject(vVirtualMachineScaleSet); }
protected override void ProcessRecord() { ExecuteClientAction(() => { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; if (!string.IsNullOrEmpty(resourceGroupName) && !string.IsNullOrEmpty(vmScaleSetName)) { if (this.ParameterSetName.Equals("FriendMethod")) { var result = VirtualMachineScaleSetsClient.GetInstanceView(resourceGroupName, vmScaleSetName); var psObject = new PSVirtualMachineScaleSetInstanceView(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSetInstanceView, PSVirtualMachineScaleSetInstanceView>(result, psObject); WriteObject(psObject); } else { var result = VirtualMachineScaleSetsClient.Get(resourceGroupName, vmScaleSetName); var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject); WriteObject(psObject); } } else if (!string.IsNullOrEmpty(resourceGroupName)) { var result = VirtualMachineScaleSetsClient.List(resourceGroupName); var resultList = result.ToList(); var nextPageLink = result.NextPageLink; while (!string.IsNullOrEmpty(nextPageLink)) { var pageResult = VirtualMachineScaleSetsClient.ListNext(nextPageLink); foreach (var pageItem in pageResult) { resultList.Add(pageItem); } nextPageLink = pageResult.NextPageLink; } var psObject = new List <PSVirtualMachineScaleSetList>(); foreach (var r in resultList) { psObject.Add(ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r)); } WriteObject(psObject, true); } else { var result = VirtualMachineScaleSetsClient.ListAll(); var resultList = result.ToList(); var nextPageLink = result.NextPageLink; while (!string.IsNullOrEmpty(nextPageLink)) { var pageResult = VirtualMachineScaleSetsClient.ListAllNext(nextPageLink); foreach (var pageItem in pageResult) { resultList.Add(pageItem); } nextPageLink = pageResult.NextPageLink; } var psObject = new List <PSVirtualMachineScaleSetList>(); foreach (var r in resultList) { psObject.Add(ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r)); } WriteObject(psObject, true); } }); }
private void Run() { // Sku Sku vSku = null; // Plan Plan vPlan = null; // UpgradePolicy UpgradePolicy vUpgradePolicy = null; // VirtualMachineProfile VirtualMachineScaleSetVMProfile vVirtualMachineProfile = null; // Identity VirtualMachineScaleSetIdentity vIdentity = null; if (this.MyInvocation.BoundParameters.ContainsKey("SkuName")) { if (vSku == null) { vSku = new Sku(); } vSku.Name = this.SkuName; } if (this.MyInvocation.BoundParameters.ContainsKey("SkuTier")) { if (vSku == null) { vSku = new Sku(); } vSku.Tier = this.SkuTier; } if (this.MyInvocation.BoundParameters.ContainsKey("SkuCapacity")) { if (vSku == null) { vSku = new Sku(); } vSku.Capacity = this.SkuCapacity; } if (this.MyInvocation.BoundParameters.ContainsKey("PlanName")) { if (vPlan == null) { vPlan = new Plan(); } vPlan.Name = this.PlanName; } if (this.MyInvocation.BoundParameters.ContainsKey("PlanPublisher")) { if (vPlan == null) { vPlan = new Plan(); } vPlan.Publisher = this.PlanPublisher; } if (this.MyInvocation.BoundParameters.ContainsKey("PlanProduct")) { if (vPlan == null) { vPlan = new Plan(); } vPlan.Product = this.PlanProduct; } if (this.MyInvocation.BoundParameters.ContainsKey("PlanPromotionCode")) { if (vPlan == null) { vPlan = new Plan(); } vPlan.PromotionCode = this.PlanPromotionCode; } if (this.MyInvocation.BoundParameters.ContainsKey("UpgradePolicyMode")) { if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } vUpgradePolicy.Mode = this.UpgradePolicyMode; } if (this.MyInvocation.BoundParameters.ContainsKey("RollingUpgradePolicy")) { if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } vUpgradePolicy.RollingUpgradePolicy = this.RollingUpgradePolicy; } if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } if (vUpgradePolicy.AutomaticOSUpgradePolicy == null) { vUpgradePolicy.AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy(); } vUpgradePolicy.AutomaticOSUpgradePolicy.EnableAutomaticOSUpgrade = this.AutoOSUpgrade.IsPresent; if (this.MyInvocation.BoundParameters.ContainsKey("DisableAutoRollback")) { if (vUpgradePolicy == null) { vUpgradePolicy = new UpgradePolicy(); } if (vUpgradePolicy.AutomaticOSUpgradePolicy == null) { vUpgradePolicy.AutomaticOSUpgradePolicy = new AutomaticOSUpgradePolicy(); } vUpgradePolicy.AutomaticOSUpgradePolicy.DisableAutomaticRollback = this.DisableAutoRollback; } if (this.MyInvocation.BoundParameters.ContainsKey("OsProfile")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.OsProfile = this.OsProfile; } if (this.MyInvocation.BoundParameters.ContainsKey("StorageProfile")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.StorageProfile = this.StorageProfile; } if (this.EnableUltraSSD.IsPresent) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.AdditionalCapabilities == null) { vVirtualMachineProfile.AdditionalCapabilities = new AdditionalCapabilities(true); } } if (this.MyInvocation.BoundParameters.ContainsKey("HealthProbeId")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.NetworkProfile == null) { vVirtualMachineProfile.NetworkProfile = new VirtualMachineScaleSetNetworkProfile(); } if (vVirtualMachineProfile.NetworkProfile.HealthProbe == null) { vVirtualMachineProfile.NetworkProfile.HealthProbe = new ApiEntityReference(); } vVirtualMachineProfile.NetworkProfile.HealthProbe.Id = this.HealthProbeId; } if (this.MyInvocation.BoundParameters.ContainsKey("NetworkInterfaceConfiguration")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.NetworkProfile == null) { vVirtualMachineProfile.NetworkProfile = new VirtualMachineScaleSetNetworkProfile(); } vVirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations = this.NetworkInterfaceConfiguration; } if (this.MyInvocation.BoundParameters.ContainsKey("BootDiagnostic")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.DiagnosticsProfile == null) { vVirtualMachineProfile.DiagnosticsProfile = new DiagnosticsProfile(); } vVirtualMachineProfile.DiagnosticsProfile.BootDiagnostics = this.BootDiagnostic; } if (this.MyInvocation.BoundParameters.ContainsKey("Extension")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.ExtensionProfile == null) { vVirtualMachineProfile.ExtensionProfile = new VirtualMachineScaleSetExtensionProfile(); } vVirtualMachineProfile.ExtensionProfile.Extensions = this.Extension; } if (this.MyInvocation.BoundParameters.ContainsKey("LicenseType")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.LicenseType = this.LicenseType; } if (this.MyInvocation.BoundParameters.ContainsKey("Priority")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.Priority = this.Priority; } if (this.MyInvocation.BoundParameters.ContainsKey("EvictionPolicy")) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.EvictionPolicy = this.EvictionPolicy; } if (this.AssignIdentity.IsPresent) { if (vIdentity == null) { vIdentity = new VirtualMachineScaleSetIdentity(); } vIdentity.Type = ResourceIdentityType.SystemAssigned; } if (this.MyInvocation.BoundParameters.ContainsKey("IdentityType")) { if (vIdentity == null) { vIdentity = new VirtualMachineScaleSetIdentity(); } vIdentity.Type = this.IdentityType; } if (this.MyInvocation.BoundParameters.ContainsKey("IdentityId")) { if (vIdentity == null) { vIdentity = new VirtualMachineScaleSetIdentity(); } vIdentity.UserAssignedIdentities = new Dictionary <string, VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue>(); foreach (var id in this.IdentityId) { vIdentity.UserAssignedIdentities.Add(id, new VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue()); } } var vVirtualMachineScaleSet = new PSVirtualMachineScaleSet { Overprovision = this.MyInvocation.BoundParameters.ContainsKey("Overprovision") ? this.Overprovision : (bool?)null, SinglePlacementGroup = this.MyInvocation.BoundParameters.ContainsKey("SinglePlacementGroup") ? this.SinglePlacementGroup : (bool?)null, ZoneBalance = this.ZoneBalance.IsPresent ? true : (bool?)null, PlatformFaultDomainCount = this.MyInvocation.BoundParameters.ContainsKey("PlatformFaultDomainCount") ? this.PlatformFaultDomainCount : (int?)null, Zones = this.MyInvocation.BoundParameters.ContainsKey("Zone") ? this.Zone : null, Location = this.MyInvocation.BoundParameters.ContainsKey("Location") ? this.Location : null, Tags = this.MyInvocation.BoundParameters.ContainsKey("Tag") ? this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value) : null, Sku = vSku, Plan = vPlan, UpgradePolicy = vUpgradePolicy, VirtualMachineProfile = vVirtualMachineProfile, Identity = vIdentity, }; WriteObject(vVirtualMachineScaleSet); }
private void Run() { // Sku Microsoft.Azure.Management.Compute.Models.Sku vSku = null; // Plan Microsoft.Azure.Management.Compute.Models.Plan vPlan = null; // UpgradePolicy Microsoft.Azure.Management.Compute.Models.UpgradePolicy vUpgradePolicy = null; // VirtualMachineProfile Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile vVirtualMachineProfile = null; // Identity Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetIdentity vIdentity = null; if (this.SkuName != null) { if (vSku == null) { vSku = new Microsoft.Azure.Management.Compute.Models.Sku(); } vSku.Name = this.SkuName; } if (this.SkuTier != null) { if (vSku == null) { vSku = new Microsoft.Azure.Management.Compute.Models.Sku(); } vSku.Tier = this.SkuTier; } if (this.SkuCapacity != null) { if (vSku == null) { vSku = new Microsoft.Azure.Management.Compute.Models.Sku(); } vSku.Capacity = this.SkuCapacity; } if (this.PlanName != null) { if (vPlan == null) { vPlan = new Microsoft.Azure.Management.Compute.Models.Plan(); } vPlan.Name = this.PlanName; } if (this.PlanPublisher != null) { if (vPlan == null) { vPlan = new Microsoft.Azure.Management.Compute.Models.Plan(); } vPlan.Publisher = this.PlanPublisher; } if (this.PlanProduct != null) { if (vPlan == null) { vPlan = new Microsoft.Azure.Management.Compute.Models.Plan(); } vPlan.Product = this.PlanProduct; } if (this.PlanPromotionCode != null) { if (vPlan == null) { vPlan = new Microsoft.Azure.Management.Compute.Models.Plan(); } vPlan.PromotionCode = this.PlanPromotionCode; } if (this.UpgradePolicyMode != null) { if (vUpgradePolicy == null) { vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy(); } vUpgradePolicy.Mode = this.UpgradePolicyMode; } if (this.RollingUpgradePolicy != null) { if (vUpgradePolicy == null) { vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy(); } vUpgradePolicy.RollingUpgradePolicy = this.RollingUpgradePolicy; } if (this.AutoOSUpgrade.IsPresent) { if (vUpgradePolicy == null) { vUpgradePolicy = new Microsoft.Azure.Management.Compute.Models.UpgradePolicy(); } vUpgradePolicy.AutomaticOSUpgrade = true; } if (this.OsProfile != null) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.OsProfile = this.OsProfile; } if (this.StorageProfile != null) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.StorageProfile = this.StorageProfile; } if (this.HealthProbeId != null) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.NetworkProfile == null) { vVirtualMachineProfile.NetworkProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetNetworkProfile(); } if (vVirtualMachineProfile.NetworkProfile.HealthProbe == null) { vVirtualMachineProfile.NetworkProfile.HealthProbe = new Microsoft.Azure.Management.Compute.Models.ApiEntityReference(); } vVirtualMachineProfile.NetworkProfile.HealthProbe.Id = this.HealthProbeId; } if (this.NetworkInterfaceConfiguration != null) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.NetworkProfile == null) { vVirtualMachineProfile.NetworkProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetNetworkProfile(); } vVirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations = this.NetworkInterfaceConfiguration; } if (this.BootDiagnostic != null) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.DiagnosticsProfile == null) { vVirtualMachineProfile.DiagnosticsProfile = new Microsoft.Azure.Management.Compute.Models.DiagnosticsProfile(); } vVirtualMachineProfile.DiagnosticsProfile.BootDiagnostics = this.BootDiagnostic; } if (this.Extension != null) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } if (vVirtualMachineProfile.ExtensionProfile == null) { vVirtualMachineProfile.ExtensionProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetExtensionProfile(); } vVirtualMachineProfile.ExtensionProfile.Extensions = this.Extension; } if (this.LicenseType != null) { if (vVirtualMachineProfile == null) { vVirtualMachineProfile = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetVMProfile(); } vVirtualMachineProfile.LicenseType = this.LicenseType; } if (this.AssignIdentity.IsPresent) { if (vIdentity == null) { vIdentity = new Microsoft.Azure.Management.Compute.Models.VirtualMachineScaleSetIdentity(); } vIdentity.Type = ResourceIdentityType.SystemAssigned; } var vVirtualMachineScaleSet = new PSVirtualMachineScaleSet { Overprovision = this.Overprovision, SinglePlacementGroup = this.SinglePlacementGroup, Zones = this.Zone, Location = this.Location, Tags = (this.Tag == null) ? null : this.Tag.Cast <DictionaryEntry>().ToDictionary(ht => (string)ht.Key, ht => (string)ht.Value), Sku = vSku, Plan = vPlan, UpgradePolicy = vUpgradePolicy, VirtualMachineProfile = vVirtualMachineProfile, Identity = vIdentity, }; WriteObject(vVirtualMachineScaleSet); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; if (ShouldGetByName(resourceGroupName, vmScaleSetName)) { if (this.ParameterSetName.Equals("FriendMethod")) { var result = VirtualMachineScaleSetsClient.GetInstanceView(resourceGroupName, vmScaleSetName); var psObject = new PSVirtualMachineScaleSetInstanceView(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSetInstanceView, PSVirtualMachineScaleSetInstanceView>(result, psObject); WriteObject(psObject); } else if (this.ParameterSetName.Equals("OSUpgradeHistoryMethodParameter")) { var result = VirtualMachineScaleSetsClient.GetOSUpgradeHistory(resourceGroupName, vmScaleSetName); var resultList = result.ToList(); var nextPageLink = result.NextPageLink; while (!string.IsNullOrEmpty(nextPageLink)) { var pageResult = VirtualMachineScaleSetsClient.GetOSUpgradeHistoryNext(nextPageLink); foreach (var pageItem in pageResult) { resultList.Add(pageItem); } nextPageLink = pageResult.NextPageLink; } var psObject = new List <PSUpgradeOperationHistoricalStatusInfo>(); foreach (var r in resultList) { psObject.Add(ComputeAutomationAutoMapperProfile.Mapper.Map <UpgradeOperationHistoricalStatusInfo, PSUpgradeOperationHistoricalStatusInfo>(r)); } WriteObject(psObject, true); } else { var result = VirtualMachineScaleSetsClient.Get(resourceGroupName, vmScaleSetName); var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject); WriteObject(psObject); } } else if (ShouldListByResourceGroup(resourceGroupName, vmScaleSetName)) { var result = VirtualMachineScaleSetsClient.List(resourceGroupName); var resultList = result.ToList(); var nextPageLink = result.NextPageLink; while (!string.IsNullOrEmpty(nextPageLink)) { var pageResult = VirtualMachineScaleSetsClient.ListNext(nextPageLink); foreach (var pageItem in pageResult) { resultList.Add(pageItem); } nextPageLink = pageResult.NextPageLink; } var psObject = new List <PSVirtualMachineScaleSetList>(); foreach (var r in resultList) { psObject.Add(ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r)); } WriteObject(TopLevelWildcardFilter(resourceGroupName, vmScaleSetName, psObject), true); } else { var result = VirtualMachineScaleSetsClient.ListAll(); var resultList = result.ToList(); var nextPageLink = result.NextPageLink; while (!string.IsNullOrEmpty(nextPageLink)) { var pageResult = VirtualMachineScaleSetsClient.ListAllNext(nextPageLink); foreach (var pageItem in pageResult) { resultList.Add(pageItem); } nextPageLink = pageResult.NextPageLink; } var psObject = new List <PSVirtualMachineScaleSetList>(); foreach (var r in resultList) { psObject.Add(ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSetList>(r)); } WriteObject(TopLevelWildcardFilter(resourceGroupName, vmScaleSetName, psObject), true); } }); }
async Task SimpleParameterSetExecuteCmdlet(IAsyncCmdlet asyncCmdlet) { ResourceGroupName = ResourceGroupName ?? VMScaleSetName; VirtualNetworkName = VirtualNetworkName ?? VMScaleSetName; SubnetName = SubnetName ?? VMScaleSetName; PublicIpAddressName = PublicIpAddressName ?? VMScaleSetName; DomainNameLabel = DomainNameLabel ?? (VMScaleSetName + ResourceGroupName).ToLower(); SecurityGroupName = SecurityGroupName ?? VMScaleSetName; LoadBalancerName = LoadBalancerName ?? VMScaleSetName; FrontendPoolName = FrontendPoolName ?? VMScaleSetName; BackendPoolName = BackendPoolName ?? VMScaleSetName; // get image bool isWindows; Commands.Common.Strategies.Compute.Image image; if (ImageName.Contains(':')) { var imageArray = ImageName.Split(':'); if (imageArray.Length != 4) { throw new Exception("Invalid ImageName"); } image = new Commands.Common.Strategies.Compute.Image { publisher = imageArray[0], offer = imageArray[1], sku = imageArray[2], version = imageArray[3], }; isWindows = image.publisher.ToLower() == "MicrosoftWindowsServer".ToLower(); } else { // get image var osTypeAndImage = Images .Instance .SelectMany(osAndMap => osAndMap .Value .Where(nameAndImage => nameAndImage.Key.ToLower() == ImageName.ToLower()) .Select(nameAndImage => new { OsType = osAndMap.Key, Image = nameAndImage.Value })) .FirstOrDefault(); image = osTypeAndImage.Image; isWindows = osTypeAndImage.OsType == "Windows"; } BackendPort = BackendPort ?? (isWindows ? new[] { 3389, 5985 } : new[] { 22 }); var resourceGroup = ResourceGroupStrategy.CreateResourceGroupConfig(ResourceGroupName); var publicIpAddress = resourceGroup.CreatePublicIPAddressConfig( name: PublicIpAddressName, domainNameLabel: DomainNameLabel, allocationMethod: AllocationMethod); var virtualNetwork = resourceGroup.CreateVirtualNetworkConfig( name: VirtualNetworkName, addressPrefix: VnetAddressPrefix); var subnet = virtualNetwork.CreateSubnet(SubnetName, SubnetAddressPrefix); var loadBalancer = resourceGroup.CreateLoadBalancerConfig( name: LoadBalancerName, froontendPoolName: FrontendPoolName, backendPoolName: BackendPoolName, zones: Zone, publicIPAddress: publicIpAddress, subnet: subnet); var frontendIpConfiguration = loadBalancer.CreateFrontendIPConfiguration( name: FrontendPoolName, zones: Zone, publicIPAddress: publicIpAddress, subnet: subnet); var backendAddressPool = loadBalancer.CreateBackendAddressPool( name: BackendPoolName); var virtualMachineScaleSet = resourceGroup.CreateVirtualMachineScaleSetConfig( name: VMScaleSetName, subnet: subnet, frontendIpConfigurations: new[] { frontendIpConfiguration }, backendAdressPool: backendAddressPool, isWindows: isWindows, adminUsername: Credential.UserName, adminPassword: new NetworkCredential(string.Empty, Credential.Password).Password, image: image, vmSize: VmSize, instanceCount: InstanceCount, upgradeMode: (MyInvocation.BoundParameters.ContainsKey("UpgradePolicyMode") == true) ? UpgradePolicyMode : (UpgradeMode?)null); var client = new Client(DefaultProfile.DefaultContext); // get current Azure state var current = await virtualMachineScaleSet.GetStateAsync(client, new CancellationToken()); if (Location == null) { Location = current.GetLocation(virtualMachineScaleSet); if (Location == null) { Location = "eastus"; } } var target = virtualMachineScaleSet.GetTargetState(current, client.SubscriptionId, Location); var newState = await virtualMachineScaleSet .UpdateStateAsync( client, target, new CancellationToken(), new ShouldProcess(asyncCmdlet), asyncCmdlet.ReportTaskProgress); var result = newState.Get(virtualMachineScaleSet); if (result == null) { result = current.Get(virtualMachineScaleSet); } if (result != null) { var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject); asyncCmdlet.WriteObject(psObject); } }
async Task SimpleParameterSetExecuteCmdlet(IAsyncCmdlet asyncCmdlet) { ResourceGroupName = ResourceGroupName ?? VMScaleSetName; VirtualNetworkName = VirtualNetworkName ?? VMScaleSetName; SubnetName = SubnetName ?? VMScaleSetName; PublicIpAddressName = PublicIpAddressName ?? VMScaleSetName; SecurityGroupName = SecurityGroupName ?? VMScaleSetName; LoadBalancerName = LoadBalancerName ?? VMScaleSetName; FrontendPoolName = FrontendPoolName ?? VMScaleSetName; BackendPoolName = BackendPoolName ?? VMScaleSetName; var imageAndOsType = new ImageAndOsType(OperatingSystemTypes.Windows, null); var resourceGroup = ResourceGroupStrategy.CreateResourceGroupConfig(ResourceGroupName); var publicIpAddress = resourceGroup.CreatePublicIPAddressConfig( name: PublicIpAddressName, getDomainNameLabel: () => DomainNameLabel, allocationMethod: AllocationMethod); var virtualNetwork = resourceGroup.CreateVirtualNetworkConfig( name: VirtualNetworkName, addressPrefix: VnetAddressPrefix); var subnet = virtualNetwork.CreateSubnet(SubnetName, SubnetAddressPrefix); var loadBalancer = resourceGroup.CreateLoadBalancerConfig( name: LoadBalancerName); var frontendIpConfiguration = loadBalancer.CreateFrontendIPConfiguration( name: FrontendPoolName, zones: Zone, publicIpAddress: publicIpAddress); var backendAddressPool = loadBalancer.CreateBackendAddressPool( name: BackendPoolName); if (BackendPort != null) { var LoadBalancingRuleName = LoadBalancerName; foreach (var backendPort in BackendPort) { loadBalancer.CreateLoadBalancingRule( name: LoadBalancingRuleName + backendPort.ToString(), fronendIpConfiguration: frontendIpConfiguration, backendAddressPool: backendAddressPool, frontendPort: backendPort, backendPort: backendPort); } } var inboundNatPools = new List <NestedResourceConfig <InboundNatPool, LoadBalancer> >(); var virtualMachineScaleSet = resourceGroup.CreateVirtualMachineScaleSetConfig( name: VMScaleSetName, subnet: subnet, frontendIpConfigurations: new[] { frontendIpConfiguration }, backendAdressPool: backendAddressPool, inboundNatPools: inboundNatPools, getImageAndOsType: () => imageAndOsType, adminUsername: Credential.UserName, adminPassword: new NetworkCredential(string.Empty, Credential.Password).Password, vmSize: VmSize, instanceCount: InstanceCount, upgradeMode: MyInvocation.BoundParameters.ContainsKey(nameof(UpgradePolicyMode)) ? UpgradePolicyMode : (UpgradeMode?)null); var client = new Client(DefaultProfile.DefaultContext); // get current Azure state var current = await virtualMachineScaleSet.GetStateAsync(client, new CancellationToken()); Location = current.UpdateLocation(Location, virtualMachineScaleSet); imageAndOsType = await client.UpdateImageAndOsTypeAsync(ImageName, Location); NatBackendPort = imageAndOsType.OsType.UpdatePorts(NatBackendPort); var inboundNatPoolName = VMScaleSetName; const int FirstPortRangeStart = 50000; var portRangeStart = FirstPortRangeStart; var PortRangeSize = InstanceCount * 2; foreach (var natBackendPort in NatBackendPort) { inboundNatPools.Add( loadBalancer.CreateInboundNatPool( name: inboundNatPoolName + natBackendPort.ToString(), frontendIpConfiguration: frontendIpConfiguration, frontendPortRangeStart: portRangeStart, frontendPortRangeEnd: portRangeStart + PortRangeSize, backendPort: natBackendPort)); portRangeStart += 2000; } // generate a domain name label if it's not specified. DomainNameLabel = await PublicIPAddressStrategy.UpdateDomainNameLabelAsync( domainNameLabel : DomainNameLabel, name : VMScaleSetName, location : Location, client : client); var fqdn = PublicIPAddressStrategy.Fqdn(DomainNameLabel, Location); var engine = new SdkEngine(client.SubscriptionId); var target = virtualMachineScaleSet.GetTargetState(current, engine, Location); var newState = await virtualMachineScaleSet .UpdateStateAsync( client, target, new CancellationToken(), new ShouldProcess(asyncCmdlet), asyncCmdlet.ReportTaskProgress); var result = newState.Get(virtualMachineScaleSet); if (result == null) { result = current.Get(virtualMachineScaleSet); } if (result != null) { var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map(result, psObject); psObject.FullyQualifiedDomainName = fqdn; var port = "<port>"; var connectionString = imageAndOsType.GetConnectionString( fqdn, Credential.UserName, port); var range = FirstPortRangeStart.ToString() + ".." + (FirstPortRangeStart + PortRangeSize).ToString(); asyncCmdlet.WriteVerbose( Resources.VmssUseConnectionString, connectionString); asyncCmdlet.WriteVerbose( Resources.VmssPortRange, port, range); asyncCmdlet.WriteObject(psObject); } }
public override void ExecuteCmdlet() { if (this.IsParameterBound(c => c.UserData)) { if (!ValidateBase64EncodedString.ValidateStringIsBase64Encoded(this.UserData)) { this.UserData = ValidateBase64EncodedString.EncodeStringToBase64(this.UserData); this.WriteInformation(ValidateBase64EncodedString.UserDataEncodeNotification, new string[] { "PSHOST" }); } } base.ExecuteCmdlet(); switch (ParameterSetName) { case SimpleParameterSet: this.StartAndWait(SimpleParameterSetExecuteCmdlet); break; default: ExecuteClientAction(() => { if (ShouldProcess(this.VMScaleSetName, VerbsCommon.New)) { string resourceGroupName = this.ResourceGroupName; string vmScaleSetName = this.VMScaleSetName; VirtualMachineScaleSet parameters = new VirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <PSVirtualMachineScaleSet, VirtualMachineScaleSet>(this.VirtualMachineScaleSet, parameters); if (parameters?.VirtualMachineProfile?.StorageProfile?.ImageReference?.Version?.ToLower() != "latest") { WriteWarning("You are deploying VMSS pinned to a specific image version from Azure Marketplace. \n" + "Consider using \"latest\" as the image version. This allows VMSS to auto upgrade when a newer version is available."); } if (parameters?.OrchestrationMode == "Flexible") { if (parameters?.VirtualMachineProfile?.NetworkProfile?.NetworkInterfaceConfigurations != null) { foreach (var nicConfig in parameters.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations) { if (nicConfig.IpConfigurations != null) { foreach (var ipConfig in nicConfig.IpConfigurations) { ipConfig.LoadBalancerInboundNatPools = null; } } } } parameters.UpgradePolicy = null; flexibleOrchestrationModeDefaultParameters(parameters); checkFlexibleOrchestrationModeParamsDefaultParamSet(parameters); } // For Cross-tenant RBAC sharing Dictionary <string, List <string> > auxAuthHeader = null; if (!string.IsNullOrEmpty(parameters.VirtualMachineProfile?.StorageProfile?.ImageReference?.Id)) { var resourceId = ResourceId.TryParse(parameters.VirtualMachineProfile?.StorageProfile.ImageReference.Id); if (string.Equals(ComputeStrategy.Namespace, resourceId?.ResourceType?.Namespace, StringComparison.OrdinalIgnoreCase) && string.Equals("galleries", resourceId?.ResourceType?.Provider, StringComparison.OrdinalIgnoreCase) && !string.Equals(this.ComputeClient?.ComputeManagementClient?.SubscriptionId, resourceId?.SubscriptionId, StringComparison.OrdinalIgnoreCase)) { List <string> resourceIds = new List <string>(); resourceIds.Add(parameters.VirtualMachineProfile?.StorageProfile.ImageReference.Id); var auxHeaderDictionary = GetAuxilaryAuthHeaderFromResourceIds(resourceIds); if (auxHeaderDictionary != null && auxHeaderDictionary.Count > 0) { auxAuthHeader = new Dictionary <string, List <string> >(auxHeaderDictionary); } } } // END: For Cross-tenant RBAC sharing VirtualMachineScaleSet result; if (auxAuthHeader != null) { var res = VirtualMachineScaleSetsClient.CreateOrUpdateWithHttpMessagesAsync( resourceGroupName, vmScaleSetName, parameters, auxAuthHeader).GetAwaiter().GetResult(); result = res.Body; } else { result = VirtualMachineScaleSetsClient.CreateOrUpdate(resourceGroupName, vmScaleSetName, parameters); } var psObject = new PSVirtualMachineScaleSet(); ComputeAutomationAutoMapperProfile.Mapper.Map <VirtualMachineScaleSet, PSVirtualMachineScaleSet>(result, psObject); WriteObject(psObject); } }); break; } }