in PluginsAndFeatures/azure-toolkit-for-intellij/src/main/java/com/microsoft/azure/toolkit/intellij/docker/webapponlinux/WebAppOnLinuxDeployConfiguration.java [88:175]
public void validate() throws ConfigurationException {
checkAzurePreconditions();
if (Utils.isEmptyString(deployModel.getDockerFilePath())
|| !Paths.get(deployModel.getDockerFilePath()).toFile().exists()) {
throw new ConfigurationException(INVALID_DOCKER_FILE);
}
// acr
PrivateRegistryImageSetting setting = deployModel.getPrivateRegistryImageSetting();
if (Utils.isEmptyString(setting.getServerUrl()) || !setting.getServerUrl().matches(DOMAIN_NAME_REGEX)) {
throw new ConfigurationException(MISSING_SERVER_URL);
}
if (Utils.isEmptyString(setting.getUsername())) {
throw new ConfigurationException(MISSING_USERNAME);
}
if (Utils.isEmptyString(setting.getPassword())) {
throw new ConfigurationException(MISSING_PASSWORD);
}
String imageTag = setting.getImageTagWithServerUrl();
if (Utils.isEmptyString(imageTag)) {
throw new ConfigurationException(MISSING_IMAGE_WITH_TAG);
}
if (imageTag.endsWith(":")) {
throw new ConfigurationException(CANNOT_END_WITH_COLON);
}
final String[] repoAndTag = imageTag.split(":");
// check repository first
if (repoAndTag[0].length() < 1 || repoAndTag[0].length() > REPO_LENGTH) {
throw new ConfigurationException(REPO_LENGTH_INVALID);
}
if (repoAndTag[0].endsWith("/")) {
throw new ConfigurationException(CANNOT_END_WITH_SLASH);
}
final String[] repoComponents = repoAndTag[0].split("/");
for (String component : repoComponents) {
if (!component.matches(REPO_COMPONENTS_REGEX)) {
throw new ConfigurationException(String.format(REPO_COMPONENT_INVALID, component,
REPO_COMPONENTS_REGEX));
}
}
// check when contains tag
if (repoAndTag.length == 2) {
if (repoAndTag[1].length() > TAG_LENGTH) {
throw new ConfigurationException(TAG_LENGTH_INVALID);
}
if (!repoAndTag[1].matches(TAG_REGEX)) {
throw new ConfigurationException(String.format(TAG_INVALID, repoAndTag[1], TAG_REGEX));
}
}
if (repoAndTag.length > 2) {
throw new ConfigurationException(INVALID_IMAGE_WITH_TAG);
}
// web app
if (deployModel.isCreatingNewWebAppOnLinux()) {
if (Utils.isEmptyString(deployModel.getWebAppName())) {
throw new ConfigurationException(MISSING_WEB_APP);
}
if (Utils.isEmptyString(deployModel.getSubscriptionId())) {
throw new ConfigurationException(MISSING_SUBSCRIPTION);
}
if (Utils.isEmptyString(deployModel.getResourceGroupName())) {
throw new ConfigurationException(MISSING_RESOURCE_GROUP);
}
if (deployModel.isCreatingNewAppServicePlan()) {
if (Utils.isEmptyString(deployModel.getAppServicePlanName())) {
throw new ConfigurationException(MISSING_APP_SERVICE_PLAN);
}
} else {
if (Utils.isEmptyString(deployModel.getAppServicePlanId())) {
throw new ConfigurationException(MISSING_APP_SERVICE_PLAN);
}
}
} else {
if (Utils.isEmptyString(deployModel.getWebAppId())) {
throw new ConfigurationException(MISSING_WEB_APP);
}
}
// target package
if (Utils.isEmptyString(deployModel.getTargetName())) {
throw new ConfigurationException(MISSING_ARTIFACT);
}
if (!deployModel.getTargetName().matches(ARTIFACT_NAME_REGEX)) {
throw new ConfigurationException(String.format(INVALID_WAR_FILE, deployModel.getTargetName()));
}
}