Skip to content

Commit f6a1afb

Browse files
authored
add npe for query (Azure#26701)
* add npe for query * checkstyle, session records update * add npe for query methods in `VirtualMachine` interface * removed unnecessary code * add comment for upgradeModel()
1 parent e759cb5 commit f6a1afb

File tree

34 files changed

+10351
-10459
lines changed

34 files changed

+10351
-10459
lines changed

sdk/resourcemanager/azure-resourcemanager-compute/src/main/java/com/azure/resourcemanager/compute/implementation/VirtualMachineScaleSetImpl.java

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -381,13 +381,13 @@ public String osDiskName() {
381381

382382
@Override
383383
public UpgradeMode upgradeModel() {
384-
// upgradePolicy is a required property so no null check
385-
return this.innerModel().upgradePolicy().mode();
384+
// flexible vmss won't have an upgrade mode
385+
return this.innerModel().upgradePolicy() == null ? null : this.innerModel().upgradePolicy().mode();
386386
}
387387

388388
@Override
389389
public boolean overProvisionEnabled() {
390-
return this.innerModel().overprovision();
390+
return ResourceManagerUtils.toPrimitiveBoolean(this.innerModel().overprovision());
391391
}
392392

393393
@Override
@@ -397,6 +397,9 @@ public VirtualMachineScaleSetSkuTypes sku() {
397397

398398
@Override
399399
public int capacity() {
400+
if (this.innerModel().sku() == null) {
401+
return 0;
402+
}
400403
return ResourceManagerUtils.toPrimitiveInt(this.innerModel().sku().capacity());
401404
}
402405

@@ -2283,7 +2286,11 @@ private VirtualMachineScaleSetNetworkConfiguration primaryNicConfiguration() {
22832286

22842287
private static void associateBackEndsToIpConfiguration(
22852288
String loadBalancerId, VirtualMachineScaleSetIpConfiguration ipConfig, String... backendNames) {
2289+
if (ipConfig == null || ipConfig.loadBalancerBackendAddressPools() == null) {
2290+
return;
2291+
}
22862292
List<SubResource> backendSubResourcesToAssociate = new ArrayList<>();
2293+
22872294
for (String backendName : backendNames) {
22882295
String backendPoolId = mergePath(loadBalancerId, "backendAddressPools", backendName);
22892296
boolean found = false;
@@ -2327,6 +2334,9 @@ private static void associateInboundNATPoolsToIpConfiguration(
23272334

23282335
private static Map<String, LoadBalancerBackend> getBackendsAssociatedWithIpConfiguration(
23292336
LoadBalancer loadBalancer, VirtualMachineScaleSetIpConfiguration ipConfig) {
2337+
if (ipConfig == null || ipConfig.loadBalancerBackendAddressPools() == null) {
2338+
return Collections.emptyMap();
2339+
}
23302340
String loadBalancerId = loadBalancer.id();
23312341
Map<String, LoadBalancerBackend> attachedBackends = new HashMap<>();
23322342
Map<String, LoadBalancerBackend> lbBackends = loadBalancer.backends();
@@ -2343,6 +2353,9 @@ private static Map<String, LoadBalancerBackend> getBackendsAssociatedWithIpConfi
23432353

23442354
private static Map<String, LoadBalancerInboundNatPool> getInboundNatPoolsAssociatedWithIpConfiguration(
23452355
LoadBalancer loadBalancer, VirtualMachineScaleSetIpConfiguration ipConfig) {
2356+
if (ipConfig == null || ipConfig.loadBalancerInboundNatPools() == null) {
2357+
return Collections.emptyMap();
2358+
}
23462359
String loadBalancerId = loadBalancer.id();
23472360
Map<String, LoadBalancerInboundNatPool> attachedInboundNatPools = new HashMap<>();
23482361
Map<String, LoadBalancerInboundNatPool> lbInboundNatPools = loadBalancer.inboundNatPools();
@@ -2388,6 +2401,9 @@ private static void removeLoadBalancerAssociationFromIpConfiguration(
23882401

23892402
private static void removeAllBackendAssociationFromIpConfiguration(
23902403
LoadBalancer loadBalancer, VirtualMachineScaleSetIpConfiguration ipConfig) {
2404+
if (ipConfig == null || ipConfig.loadBalancerBackendAddressPools() == null) {
2405+
return;
2406+
}
23912407
List<SubResource> toRemove = new ArrayList<>();
23922408
for (SubResource subResource : ipConfig.loadBalancerBackendAddressPools()) {
23932409
if (subResource
@@ -2405,6 +2421,9 @@ private static void removeAllBackendAssociationFromIpConfiguration(
24052421

24062422
private static void removeAllInboundNatPoolAssociationFromIpConfiguration(
24072423
LoadBalancer loadBalancer, VirtualMachineScaleSetIpConfiguration ipConfig) {
2424+
if (ipConfig == null || ipConfig.loadBalancerInboundNatPools() == null) {
2425+
return;
2426+
}
24082427
List<SubResource> toRemove = new ArrayList<>();
24092428
for (SubResource subResource : ipConfig.loadBalancerInboundNatPools()) {
24102429
if (subResource
@@ -2422,6 +2441,9 @@ private static void removeAllInboundNatPoolAssociationFromIpConfiguration(
24222441

24232442
private static void removeBackendsFromIpConfiguration(
24242443
String loadBalancerId, VirtualMachineScaleSetIpConfiguration ipConfig, String... backendNames) {
2444+
if (ipConfig == null || ipConfig.loadBalancerBackendAddressPools() == null) {
2445+
return;
2446+
}
24252447
List<SubResource> toRemove = new ArrayList<>();
24262448
for (String backendName : backendNames) {
24272449
String backendPoolId = mergePath(loadBalancerId, "backendAddressPools", backendName);
@@ -2440,6 +2462,9 @@ private static void removeBackendsFromIpConfiguration(
24402462

24412463
private static void removeInboundNatPoolsFromIpConfiguration(
24422464
String loadBalancerId, VirtualMachineScaleSetIpConfiguration ipConfig, String... inboundNatPoolNames) {
2465+
if (ipConfig == null || ipConfig.loadBalancerInboundNatPools() == null) {
2466+
return;
2467+
}
24432468
List<SubResource> toRemove = new ArrayList<>();
24442469
for (String natPoolName : inboundNatPoolNames) {
24452470
String inboundNatPoolId = mergePath(loadBalancerId, "inboundNatPools", natPoolName);

sdk/resourcemanager/azure-resourcemanager-compute/src/main/java/com/azure/resourcemanager/compute/models/VirtualMachineScaleSet.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ Mono<RunCommandResult> runShellScriptInVMInstanceAsync(
174174
/** @return the name of the OS disk of virtual machines in the scale set */
175175
String osDiskName();
176176

177-
/** @return the upgrade model */
177+
/** @return the upgrade model, null for scale set with {@link OrchestrationMode#FLEXIBLE} */
178178
UpgradeMode upgradeModel();
179179

180180
/** @return true if over provision is enabled for the virtual machines, false otherwise */

sdk/resourcemanager/azure-resourcemanager-compute/src/test/java/com/azure/resourcemanager/compute/VirtualMachineScaleSetOperationsTests.java

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.azure.resourcemanager.authorization.models.BuiltInRole;
1212
import com.azure.resourcemanager.authorization.models.RoleAssignment;
1313
import com.azure.resourcemanager.compute.fluent.models.VirtualMachineScaleSetInner;
14+
import com.azure.resourcemanager.compute.implementation.VirtualMachineScaleSetImpl;
1415
import com.azure.resourcemanager.compute.models.ImageReference;
1516
import com.azure.resourcemanager.compute.models.KnownLinuxVirtualMachineImage;
1617
import com.azure.resourcemanager.compute.models.OperatingSystemTypes;
@@ -1724,4 +1725,70 @@ public void canGetOrchestrationType() {
17241725
Assertions.assertEquals(vmss2.orchestrationMode(), OrchestrationMode.FLEXIBLE);
17251726
}
17261727

1728+
@Test
1729+
public void npeProtectionTest() throws Exception {
1730+
String euapRegion = "eastus2euap";
1731+
1732+
final String vmssName = generateRandomResourceName("vmss", 10);
1733+
ResourceGroup resourceGroup = this.resourceManager.resourceGroups().define(rgName)
1734+
.withRegion(euapRegion)
1735+
.create();
1736+
1737+
VirtualMachineScaleSetImpl vmss = (VirtualMachineScaleSetImpl) this.computeManager
1738+
.virtualMachineScaleSets()
1739+
.define(vmssName)
1740+
.withRegion(euapRegion)
1741+
.withExistingResourceGroup(resourceGroup)
1742+
.withFlexibleOrchestrationMode()
1743+
.create();
1744+
1745+
vmss.orchestrationMode();
1746+
vmss.computerNamePrefix();
1747+
vmss.osType();
1748+
vmss.osDiskCachingType();
1749+
vmss.osDiskName();
1750+
vmss.upgradeModel();
1751+
vmss.overProvisionEnabled();
1752+
vmss.sku();
1753+
vmss.capacity();
1754+
vmss.getPrimaryNetwork();
1755+
vmss.getPrimaryInternetFacingLoadBalancer();
1756+
vmss.listPrimaryInternetFacingLoadBalancerBackends();
1757+
vmss.listPrimaryInternetFacingLoadBalancerInboundNatPools();
1758+
vmss.getPrimaryInternalLoadBalancer();
1759+
vmss.listPrimaryInternalLoadBalancerBackends();
1760+
vmss.listPrimaryInternalLoadBalancerInboundNatPools();
1761+
vmss.primaryPublicIpAddressIds();
1762+
vmss.vhdContainers();
1763+
vmss.storageProfile();
1764+
vmss.networkProfile();
1765+
vmss.extensions();
1766+
vmss.virtualMachinePriority();
1767+
vmss.billingProfile();
1768+
vmss.plan();
1769+
vmss.virtualMachineEvictionPolicy();
1770+
vmss.listNetworkInterfaces();
1771+
vmss.isManagedDiskEnabled();
1772+
vmss.isManagedServiceIdentityEnabled();
1773+
vmss.systemAssignedManagedServiceIdentityTenantId();
1774+
vmss.systemAssignedManagedServiceIdentityPrincipalId();
1775+
vmss.managedServiceIdentityType();
1776+
vmss.userAssignedManagedServiceIdentityIds();
1777+
vmss.availabilityZones();
1778+
vmss.isBootDiagnosticsEnabled();
1779+
vmss.bootDiagnosticsStorageUri();
1780+
vmss.managedOSDiskStorageAccountType();
1781+
vmss.virtualMachinePublicIpConfig();
1782+
vmss.isIpForwardingEnabled();
1783+
vmss.isAcceleratedNetworkingEnabled();
1784+
vmss.networkSecurityGroupId();
1785+
vmss.isSinglePlacementGroupEnabled();
1786+
vmss.applicationGatewayBackendAddressPoolsIds();
1787+
vmss.applicationSecurityGroupIds();
1788+
vmss.doNotRunExtensionsOnOverprovisionedVMs();
1789+
vmss.proximityPlacementGroup();
1790+
vmss.additionalCapabilities();
1791+
vmss.orchestrationMode();
1792+
}
1793+
17271794
}

0 commit comments

Comments
 (0)