public void ValidateSize_Success() { string sku = "Premium"; string size = "P1"; SizeConverter.ValidateSize(size.ToUpper(), SkuName.Premium.Equals(sku)); }
public void ValidateSize_InvalidSizeStandard() { string sku = "Standard"; string size = "P1"; var ex = Assert.Throws <ArgumentException>(() => SizeConverter.ValidateSize(size.ToUpper(), SkuName.Premium.Equals(sku))); Assert.Contains("Invalid Size. Example for valid values: For Standard or Basic Sku: (C0, C1, C2, C3, C4, C5, C6), for Premium Sku: (P1, P2, P3, P4, P5)", ex.Message); }
public override void ExecuteCmdlet() { Utility.ValidateResourceGroupAndResourceName(ResourceGroupName, Name); RedisResource response = null; if (string.IsNullOrEmpty(ResourceGroupName)) { response = CacheClient.GetCache(Name); ResourceGroupName = Utility.GetResourceGroupNameFromRedisCacheId(response.Id); } else { response = CacheClient.GetCache(ResourceGroupName, Name); } string skuName; string skuFamily; int skuCapacity; if (string.IsNullOrEmpty(Sku)) { skuName = response.Sku.Name; } else { skuName = Sku; } if (string.IsNullOrEmpty(Size)) { skuFamily = response.Sku.Family; skuCapacity = response.Sku.Capacity; } else { Size = SizeConverter.GetSizeInRedisSpecificFormat(Size, SkuStrings.Premium.Equals(Sku)); SizeConverter.ValidateSize(Size.ToUpper(), SkuStrings.Premium.Equals(Sku)); skuFamily = Size.Substring(0, 1); int.TryParse(Size.Substring(1), out skuCapacity); } if (!ShardCount.HasValue && response.ShardCount.HasValue) { ShardCount = response.ShardCount; } ConfirmAction( string.Format(Resources.UpdateRedisCache, Name), Name, () => { var redisResource = CacheClient.UpdateCache(ResourceGroupName, Name, skuFamily, skuCapacity, skuName, RedisConfiguration, EnableNonSslPort, TenantSettings, ShardCount, Tag); var redisAccessKeys = CacheClient.GetAccessKeys(ResourceGroupName, Name); WriteObject(new RedisCacheAttributesWithAccessKeys(redisResource, redisAccessKeys, ResourceGroupName)); }); }
public override void ExecuteCmdlet() { Utility.ValidateResourceGroupAndResourceName(ResourceGroupName, Name); if (string.IsNullOrEmpty(Sku)) { Sku = SkuStrings.Standard; } if (string.IsNullOrEmpty(Size)) { if (SkuStrings.Premium.Equals(Sku, StringComparison.OrdinalIgnoreCase)) { Size = SizeConverter.P1String; } else { Size = SizeConverter.C1String; } } else { Size = SizeConverter.GetSizeInRedisSpecificFormat(Size, SkuStrings.Premium.Equals(Sku)); SizeConverter.ValidateSize(Size.ToUpper(), SkuStrings.Premium.Equals(Sku)); } int skuCapacity = 1; // Size to SkuFamily and SkuCapacity conversion string skuFamily = Size.Substring(0, 1); int.TryParse(Size.Substring(1), out skuCapacity); // If Force flag is not avaliable than check if cache is already available or not try { RedisResource availableCache = CacheClient.GetCache(ResourceGroupName, Name); if (availableCache != null) { throw new CloudException(string.Format(Resources.RedisCacheExists, Name)); } } catch (CloudException ex) { if (ex.Body.Code == "ResourceNotFound" || ex.Message.Contains("ResourceNotFound")) { // cache does not exists so go ahead and create one } else if (ex.Body.Code == "ResourceGroupNotFound" || ex.Message.Contains("ResourceGroupNotFound")) { // resource group not found, let create throw error don't throw from here } else { // all other exceptions should be thrown throw; } } catch (ErrorResponseException ex) { if (ex.Body.Error.Code == "ResourceNotFound" || ex.Message.Contains("ResourceNotFound")) { // cache does not exists so go ahead and create one } else if (ex.Body.Error.Code == "ResourceGroupNotFound" || ex.Message.Contains("ResourceGroupNotFound")) { // resource group not found, let create throw error don't throw from here } else { // all other exceptions should be thrown throw; } } ConfirmAction( string.Format(Resources.CreateRedisCache, Name), Name, () => { var redisResource = CacheClient.CreateCache(ResourceGroupName, Name, Location, skuFamily, skuCapacity, Sku, RedisConfiguration, EnableNonSslPort, TenantSettings, ShardCount, MinimumTlsVersion, SubnetId, StaticIP, Tag, Zone, RedisVersion, IdentityType, UserAssignedIdentity); var redisAccessKeys = CacheClient.GetAccessKeys(ResourceGroupName, Name); WriteObject(new RedisCacheAttributesWithAccessKeys(redisResource, redisAccessKeys, ResourceGroupName)); }); }