Skip to content

Commit 41f04b6

Browse files
authored
Merge pull request #5299 from microsoft/qianjin-s187-bugfix-05
bugfix: fix region issues on sql and mysql.
2 parents 0efdb27 + a0be22c commit 41f04b6

File tree

4 files changed

+16
-10
lines changed

4 files changed

+16
-10
lines changed

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/database/RegionComboBox.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ public class RegionComboBox extends AzureComboBox<Region> {
2828
@Setter
2929
private Function<RegionComboBox, AzureValidationInfo> validateFunction;
3030

31-
private boolean validated;
32-
private boolean loaded;
31+
private boolean validateRequired;
32+
private boolean itemLoaded;
3333
private AzureValidationInfo validatedInfo;
3434

3535
public void setSubscription(Subscription subscription) {
@@ -55,7 +55,7 @@ protected List<? extends Region> loadItems() {
5555
return new ArrayList<>();
5656
}
5757
List<? extends Region> regions = Azure.az(AzureAccount.class).listRegions(subscription.getId());
58-
loaded = true;
58+
itemLoaded = true;
5959
return regions;
6060
}
6161

@@ -71,7 +71,7 @@ protected String getItemText(Object item) {
7171
public void setSelectedItem(Object value) {
7272
if (!Objects.equals(value, getSelectedItem())) {
7373
super.setSelectedItem(value);
74-
validated = false;
74+
validateRequired = true;
7575
} else {
7676
super.setSelectedItem(value);
7777
}
@@ -85,17 +85,17 @@ public boolean isRequired() {
8585
@NotNull
8686
@Override
8787
public AzureValidationInfo doValidate() {
88-
if (Objects.isNull(subscription) || !loaded) {
89-
return AzureValidationInfo.OK;
88+
if (Objects.isNull(subscription) || !itemLoaded) {
89+
return AzureValidationInfo.UNINITIALIZED;
9090
}
91-
if (validated && Objects.nonNull(validatedInfo)) {
92-
return validatedInfo;
91+
if (!validateRequired) {
92+
return Objects.nonNull(validatedInfo) ? validatedInfo : AzureValidationInfo.UNINITIALIZED;
9393
}
9494
validatedInfo = super.doValidate();
9595
if (AzureValidationInfo.OK.equals(validatedInfo)) {
9696
validatedInfo = validateFunction.apply(this);
9797
}
98-
validated = true;
98+
validateRequired = false;
9999
return validatedInfo;
100100
}
101101

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/database/ServerNameTextField.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ public void setSubscriptionId(String subscriptionId) {
3636
@Override
3737
@NotNull
3838
public AzureValidationInfo doValidateValue() {
39+
if (StringUtils.isBlank(subscriptionId)) {
40+
return AzureValidationInfo.UNINITIALIZED;
41+
}
3942
final AzureValidationInfo info = super.doValidateValue();
4043
if (!AzureValidationInfo.OK.equals(info)) {
4144
return info;

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/mysql/MySQLRegionValidator.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package com.microsoft.azure.toolkit.intellij.mysql;
77

88
import com.azure.core.management.exception.ManagementException;
9+
import com.microsoft.azure.CloudException;
910
import com.microsoft.azure.management.mysql.v2020_01_01.implementation.MySQLManager;
1011
import com.microsoft.azure.management.mysql.v2020_01_01.implementation.PerformanceTierPropertiesInner;
1112
import com.microsoft.azure.toolkit.intellij.database.RegionComboBox;
@@ -28,7 +29,8 @@ public AzureValidationInfo apply(RegionComboBox comboBox) {
2829
if (tiers.stream().anyMatch(e -> CollectionUtils.isNotEmpty(e.serviceLevelObjectives()))) {
2930
return AzureValidationInfo.OK;
3031
}
31-
} catch (ManagementException e) {
32+
} catch (CloudException e) {
33+
return AzureValidationInfo.builder().input(comboBox).message(e.getMessage()).type(AzureValidationInfo.Type.ERROR).build();
3234
}
3335
final AzureValidationInfo.AzureValidationInfoBuilder builder = AzureValidationInfo.builder();
3436
return builder.input(comboBox).message(REGION_UNAVAILABLE_MESSAGE).type(AzureValidationInfo.Type.ERROR).build();

PluginsAndFeatures/azure-toolkit-for-intellij/src/com/microsoft/azure/toolkit/intellij/sqlserver/common/SqlServerRegionValidator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public AzureValidationInfo apply(RegionComboBox comboBox) {
2727
return AzureValidationInfo.OK;
2828
}
2929
} catch (ManagementException e) {
30+
return AzureValidationInfo.builder().input(comboBox).message(e.getMessage()).type(AzureValidationInfo.Type.ERROR).build();
3031
}
3132
final AzureValidationInfo.AzureValidationInfoBuilder builder = AzureValidationInfo.builder();
3233
return builder.input(comboBox).message(REGION_UNAVAILABLE_MESSAGE).type(AzureValidationInfo.Type.ERROR).build();

0 commit comments

Comments
 (0)