public AzureStorageInfoValue(string id, AzureStorageType type, string accountName, string shareName, string accessKey, string mountPath) { Id = id; Type = type; AccountName = accountName; ShareName = shareName; AccessKey = accessKey; MountPath = mountPath; }
internal static string ToSerializedValue(this AzureStorageType value) { switch (value) { case AzureStorageType.AzureFiles: return("AzureFiles"); case AzureStorageType.AzureBlob: return("AzureBlob"); } return(null); }
internal static string ToSerializedValue(this AzureStorageType value) { switch (value) { case AzureStorageType.Blob: return("Blob"); case AzureStorageType.FileShare: return("FileShare"); } return(null); }
/// <summary> /// Converts the <see cref="sourceValue" /> parameter to the <see cref="destinationType" /> parameter using <see cref="formatProvider" /// /> and <see cref="ignoreCase" /> /// </summary> /// <param name="sourceValue">the <see cref="System.Object"/> to convert from</param> /// <param name="destinationType">the <see cref="System.Type" /> to convert to</param> /// <param name="formatProvider">not used by this TypeConverter.</param> /// <param name="ignoreCase">when set to <c>true</c>, will ignore the case when converting.</param> /// <returns> /// an instance of <see cref="AzureStorageType" />, or <c>null</c> if there is no suitable conversion. /// </returns> public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => AzureStorageType.CreateFrom(sourceValue);
public static string ToSerialString(this AzureStorageType value) => value switch {
private static object GetDataServiceInput(string deviceName, string containerName, string[] volumeNames, BackupChoice backupChoice, string fileNameFilter = null, string[] rootDirectories = null, AzureStorageType azureStorageType = AzureStorageType.Blob, bool isDirectoryMode = false) { JToken dataServiceInputJToken = new JObject(); dataServiceInputJToken["DeviceName"] = deviceName; dataServiceInputJToken["FileNameFilter"] = fileNameFilter ?? "*"; dataServiceInputJToken["ContainerName"] = containerName; JArray rootDirectoriesObj = new JArray(); if (rootDirectories != null) { foreach (var rootDirectory in rootDirectories) { rootDirectoriesObj.Add(rootDirectory); } } else { rootDirectoriesObj.Add("\\"); } dataServiceInputJToken["RootDirectories"] = rootDirectoriesObj; JArray volumeNamesObj = new JArray(); foreach (var volumeName in volumeNames) { volumeNamesObj.Add(volumeName); } dataServiceInputJToken["VolumeNames"] = volumeNamesObj; dataServiceInputJToken["BackupChoice"] = backupChoice.ToSerializedValue(); dataServiceInputJToken["IsDirectoryMode"] = isDirectoryMode; dataServiceInputJToken["AzureStorageType"] = azureStorageType.ToSerializedValue(); return(dataServiceInputJToken); }
public static JobDefinition GetJobDefinition(this IJobDefinitionsOperations operations, HybridDataManagementClient client, string dataSourceName, string dataSinkName, string resourceGroupName, string dataManagerName, string runLocation, UserConfirmation userConfirmation, string deviceName, string containerName, string[] volumeNames, BackupChoice backupChoice, string fileNameFilter = null, string[] rootDirectories = null, AzureStorageType azureStorageType = AzureStorageType.Blob, bool isDirectoryMode = false) { var jobDefinition = new JobDefinition(); jobDefinition.DataSinkId = client.DataStores.Get(dataStoreName: dataSinkName, resourceGroupName: resourceGroupName, dataManagerName: dataManagerName).Id; jobDefinition.DataSourceId = client.DataStores.Get(dataStoreName: dataSourceName, resourceGroupName: resourceGroupName, dataManagerName: dataManagerName).Id; RunLocation parsedRunLocation = RunLocation.None; if (Enum.TryParse(runLocation, true, out parsedRunLocation)) { jobDefinition.RunLocation = parsedRunLocation; } jobDefinition.State = State.Enabled; jobDefinition.UserConfirmation = userConfirmation; jobDefinition.DataServiceInput = GetDataServiceInput(deviceName, containerName, volumeNames, backupChoice, fileNameFilter, rootDirectories, azureStorageType, isDirectoryMode); return(jobDefinition); }
/// <summary> /// Converts the requested disk size in bytes to the actual required size of the Azure /// managed disk in GiB. /// </summary> /// <param name="storageType">Specifies the disk storage type.</param> /// <param name="driveSizeBytes">The requested size in bytes.</param> /// <returns>The actual Azure disk size in GiB.</returns> public static decimal GetDiskSizeGiB(AzureStorageType storageType, decimal driveSizeBytes) { var driveSizeGiB = driveSizeBytes / ByteUnits.GibiBytes; switch (storageType) { case AzureStorageType.StandardHDD: case AzureStorageType.StandardSSD: case AzureStorageType.PremiumSSD: // Azure premium disks sizes: 32GiB, 64GiB, 128GiB, 512GiB, 1TiB, 2TiB, 4TiB, 8TiB, 16TiB or 32TiB. if (driveSizeGiB <= 32) { driveSizeGiB = 32; } else if (driveSizeGiB <= 64) { driveSizeGiB = 64; } else if (driveSizeGiB <= 128) { driveSizeGiB = 128; } else if (driveSizeGiB <= 256) { driveSizeGiB = 256; } else if (driveSizeGiB <= 512) { driveSizeGiB = 512; } else if (driveSizeGiB <= 1024) { driveSizeGiB = 1024; } else if (driveSizeGiB <= 2048) { driveSizeGiB = 2048; } else if (driveSizeGiB <= 4096) { driveSizeGiB = 4096; } else if (driveSizeGiB <= 8192) { driveSizeGiB = 8192; } else if (driveSizeGiB <= 16314) { driveSizeGiB = 16314; } else { driveSizeGiB = 32768; } break; case AzureStorageType.UltraSSD: // Azure ultra disks sizes: 4GiB, 8GiB, 16GiB, 32GiB, 64GiB, 128GiB, 256GiB, 512GiB // and 1TiB - 64TiB in 1TiB increments if (driveSizeGiB < 4) { driveSizeGiB = 4; } else if (driveSizeGiB < 8) { driveSizeGiB = 8; } else if (driveSizeGiB < 16) { driveSizeGiB = 16; } else if (driveSizeGiB < 32) { driveSizeGiB = 32; } else if (driveSizeGiB < 64) { driveSizeGiB = 64; } else if (driveSizeGiB < 128) { driveSizeGiB = 128; } else if (driveSizeGiB < 256) { driveSizeGiB = 256; } else if (driveSizeGiB < 512) { driveSizeGiB = 512; } else if (driveSizeGiB < 65536) { // Round up to the nearest 1TiB. var driveSizeTiB = driveSizeGiB / 1024; if (driveSizeGiB % 1024 != 0) { driveSizeTiB++; } driveSizeGiB = driveSizeTiB * 1024; } else { driveSizeGiB = 65536; } break; default: throw new NotImplementedException(); } if (driveSizeGiB < KubeConst.MinNodeDiskSizeGiB) { driveSizeGiB = KubeConst.MinNodeDiskSizeGiB; } return(driveSizeGiB); }