public static bool IsValidName(string name, bool isComposeDeployment = false) { if (string.IsNullOrEmpty(name)) { return(false); } //When deployment type is not composed type but the name starts with "Compose_" if (!isComposeDeployment && name.StartsWith(StringConstants.ComposeDeploymentTypePrefix)) { return(false); } if (name.Contains(StringConstants.DoubleDot)) { return(false); } if (!ImageBuilderUtility.IsValidFileName(name)) { return(false); } return(true); }
internal static string ValidateSfpkgDownloadPathAndGetFileName(string sfpkgPath) { Uri uri; if (!Uri.TryCreate(sfpkgPath, UriKind.Absolute, out uri)) { ImageBuilderUtility.TraceAndThrowValidationError( TraceType, StringResources.Error_InvalidApplicationPackageDownloadUri, sfpkgPath); } if (string.IsNullOrEmpty(uri.Scheme)) { ImageBuilderUtility.TraceAndThrowValidationError( TraceType, StringResources.Error_InvalidApplicationPackageDownloadUri, sfpkgPath); } string protocol = uri.Scheme.ToLowerInvariant(); if (protocol != "http" && protocol != "https") { ImageBuilderUtility.TraceAndThrowValidationError( TraceType, StringResources.Error_InvalidApplicationPackageDownloadUri_Protocol, sfpkgPath, protocol); } var segments = uri.Segments; if (segments.Length == 0) { ImageBuilderUtility.TraceAndThrowValidationError( TraceType, StringResources.Error_InvalidApplicationPackageDownloadUri, sfpkgPath); } var fileName = segments[segments.Length - 1]; if (!fileName.EndsWith(StringConstants.SfpkgExtension)) { ImageBuilderUtility.TraceAndThrowValidationError( TraceType, StringResources.Error_InvalidApplicationPackageDownloadUri_FileName, sfpkgPath, fileName); } if (!ImageBuilderUtility.IsValidFileName(fileName)) { ImageBuilderUtility.TraceAndThrowValidationError( TraceType, StringResources.Error_InvalidApplicationPackageDownloadUri_FileName, sfpkgPath); } return(fileName); }