Skip to content

Commit 18610e7

Browse files
Merge pull request #6865 from microsoft/cosmos/fixes
Fix issues related with cosmos db account in feature test
2 parents 4b1ccf5 + aa2d555 commit 18610e7

File tree

60 files changed

+964
-203
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+964
-203
lines changed

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/IntelliJCosmosActionsContributor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,9 @@
4242
import java.util.function.BiPredicate;
4343
import java.util.function.Function;
4444

45-
import static com.microsoft.azure.toolkit.intellij.cosmos.creation.CreateCosmosDBAccountAction.getDefaultConfig;
46-
import static com.microsoft.azure.toolkit.intellij.cosmos.creation.CreateCosmosDatabaseAction.getDefaultDatabaseConfig;
45+
import static com.microsoft.azure.toolkit.lib.cosmos.CosmosDBAccountDraft.Config.getDefaultConfig;
46+
import static com.microsoft.azure.toolkit.lib.cosmos.model.DatabaseConfig.getDefaultDatabaseConfig;
47+
4748

4849
public class IntelliJCosmosActionsContributor implements IActionsContributor {
4950
@Override

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/creation/CosmosDatabaseCreationDialog.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
import com.microsoft.azure.toolkit.intellij.common.AzureTextInput;
1212
import com.microsoft.azure.toolkit.lib.common.form.AzureForm;
1313
import com.microsoft.azure.toolkit.lib.common.form.AzureFormInput;
14+
import com.microsoft.azure.toolkit.lib.common.form.AzureValidationInfo;
1415
import com.microsoft.azure.toolkit.lib.cosmos.model.DatabaseConfig;
16+
import org.apache.commons.lang3.StringUtils;
1517

1618
import javax.annotation.Nonnull;
1719
import javax.annotation.Nullable;
@@ -48,16 +50,29 @@ protected void init() {
4850
buttonGroup.add(manualRadioButton);
4951
autoscaleRadioButton.addItemListener(e -> toggleThroughputStatus());
5052
manualRadioButton.addItemListener(e -> toggleThroughputStatus());
51-
53+
txtName.addValidator(() -> validateDatabaseName());
5254
txtThroughputRu.setMinValue(400);
5355
txtThroughputRu.setMaxValue(1000000);
5456
txtThroughputRu.setValue(400);
57+
txtThroughputRu.addValidator(() -> validateThroughputIncrements(txtThroughputRu));
5558
txtMaxThroughput.setMinValue(1000);
5659
txtMaxThroughput.setValue(4000);
60+
txtMaxThroughput.addValidator(() -> validateThroughputIncrements(txtMaxThroughput));
5761

5862
autoscaleRadioButton.setSelected(true);
5963
}
6064

65+
private AzureValidationInfo validateDatabaseName() {
66+
final String value = txtName.getValue();
67+
return StringUtils.endsWith(value, StringUtils.SPACE) || StringUtils.containsAny(value, "\\", "/","#", "?", "%") ?
68+
AzureValidationInfo.error("Database name not end with space nor contains characters '\\', '/', '#', '?', '%'", txtName) : AzureValidationInfo.success(txtName);
69+
}
70+
71+
private AzureValidationInfo validateThroughputIncrements(@Nonnull AzureIntegerInput input) {
72+
final Integer value = input.getValue();
73+
return Objects.nonNull(value) && value % 100 == 0 ? AzureValidationInfo.success(input) : AzureValidationInfo.error("Throughput must be in multiples of 100", input);
74+
}
75+
6176
private void toggleThroughputStatus() {
6277
lblMaxThroughput.setVisible(autoscaleRadioButton.isSelected());
6378
txtMaxThroughput.setVisible(autoscaleRadioButton.isSelected());

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/creation/CreateCosmosDBAccountAction.java

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -47,31 +47,6 @@ public static void create(@Nullable Project project, @Nullable CosmosDBAccountDr
4747
});
4848
}
4949

50-
public static CosmosDBAccountDraft.Config getDefaultConfig(@Nullable final ResourceGroup resourceGroup) {
51-
final List<Subscription> subs = az(AzureAccount.class).account().getSelectedSubscriptions();
52-
Preconditions.checkArgument(CollectionUtils.isNotEmpty(subs), "There are no subscriptions in your account.");
53-
final String name = String.format("cosmos-db-%s", Utils.getTimestamp());
54-
final String defaultResourceGroupName = String.format("rg-%s", name);
55-
56-
final Subscription historySub = CacheManager.getUsageHistory(Subscription.class).peek(subs::contains);
57-
final ResourceGroup historyRg = CacheManager.getUsageHistory(ResourceGroup.class)
58-
.peek(r -> Objects.isNull(historySub) || r.getSubscriptionId().equals(historySub.getId()));
59-
final ResourceGroup group = Optional.ofNullable(resourceGroup)
60-
.or(() -> Optional.ofNullable(historyRg))
61-
.orElse(az(AzureResources.class).groups(subs.get(0).getId())
62-
.create(defaultResourceGroupName, defaultResourceGroupName));
63-
final Subscription subscription = Optional.of(group).map(AzResource::getSubscription)
64-
.or(() -> Optional.ofNullable(historySub))
65-
.orElse(subs.get(0));
66-
67-
final CosmosDBAccountDraft.Config config = new CosmosDBAccountDraft.Config();
68-
config.setName(name);
69-
config.setSubscription(subscription);
70-
config.setResourceGroup(group);
71-
config.setKind(DatabaseAccountKind.SQL);
72-
return config;
73-
}
74-
7550
@AzureOperation(name = "cosmos.create_account.account", params = {"config.getName()"}, type = AzureOperation.Type.ACTION)
7651
private static void doCreate(final CosmosDBAccountDraft.Config config, final Project project) {
7752
final AzureString title = OperationBundle.description("cosmos.create_account.account", config.getName());

PluginsAndFeatures/azure-toolkit-for-intellij/azure-intellij-plugin-cosmos/src/main/java/com/microsoft/azure/toolkit/intellij/cosmos/creation/CreateCosmosDatabaseAction.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,6 @@ public static <T extends CosmosDBAccount> void create(@Nonnull Project project,
3535
});
3636
}
3737

38-
public static DatabaseConfig getDefaultDatabaseConfig() {
39-
final DatabaseConfig result = new DatabaseConfig();
40-
result.setName(String.format("database-%s", Utils.getTimestamp()));
41-
result.setMaxThroughput(4000);
42-
return result;
43-
}
44-
4538
@AzureOperation(name = "cosmos.create_database.database|account", params = {"config.getName(), account.getName()"}, type = AzureOperation.Type.ACTION)
4639
private static <T extends CosmosDBAccount> void doCreate(@Nonnull T account,
4740
@Nonnull BiFunction<T, DatabaseConfig, ICosmosDatabaseDraft<?, ?>> draftSupplier,

0 commit comments

Comments
 (0)