/// <summary> /// Get storage accounts that are used by hosted service /// </summary> /// <param name="hostedServiceName"></param> /// <returns></returns> public IList <StorageAccount> GetStorageAccountsUsedByHostedService(string hostedServiceName) { var uniqueStorageAccounts = new HashSet <StorageAccount>(); var storageManager = new AzureStorageServiceManager(); var vhdManager = new AzureVirtualMachineManager(); var vhdsLeased = vhdManager.GetVirtualHardDisks().Where(vhd => vhd.UsageDetails.HostedServiceName == hostedServiceName); foreach (var vhd in vhdsLeased) { var storageAccount = storageManager.GetStorageServiceForBlob(vhd.MediaLinkUri); uniqueStorageAccounts.Add(storageAccount); } return(uniqueStorageAccounts.ToList()); }
/// <summary> /// Deploy worker role /// </summary> /// <param name="packagePath"></param> /// <param name="configPath"></param> /// <param name="roleName"></param> /// <param name="deploymentSlot"></param> /// <returns></returns> public DeploymentInfo DeployRole(string packagePath, string configPath, string roleName = "", DeploymentSlot deploymentSlot = DeploymentSlot.Production) { var storageManager = new AzureStorageServiceManager(); var service = storageManager.CreateStorageService(); var blob = service.CreateBlob(Path.GetFileName(packagePath)); var packageBlobUri = blob.UploadFile(packagePath); roleName = CreateHostedService(roleName); var deployment = CreateOrUpdateDeployment(roleName, packageBlobUri, configPath, deploymentSlot: deploymentSlot); return(new DeploymentInfo { HostedService = roleName, Deployment = deployment }); }
private void CleanupStorageServices(AzureResourceType type, Dictionary <string, object> resources) { SafeExecute(() => { var manager = new AzureStorageServiceManager(); foreach (var obj in resources.Values) { var service = obj as string; if (service == null) { throw new Exception(string.Format("Incorrect resource was stored in '{0}' collection", type)); } if (manager.GetStorageService(service) != null) { manager.DeleteStorageService(service); } } resources.Clear(); }, type.ToString()); }
/// <summary> /// Break leases on vhd blobs /// </summary> /// <param name="hostedServiceName"></param> /// <param name="vhdBlobContainer"></param> public void BreakVhdLeases(string hostedServiceName, string vhdBlobContainer = "vhds") { var storageManager = new AzureStorageServiceManager(); var vhdManager = new AzureVirtualMachineManager(); var vhdsLeased = vhdManager.GetVirtualHardDisks().Where(vhd => vhd.UsageDetails.HostedServiceName == hostedServiceName); foreach (var vhd in vhdsLeased) { var storage = storageManager.GetStorageServiceForBlob(vhd.MediaLinkUri); var blob = storage.GetBlob(Path.GetFileName(vhd.MediaLinkUri.ToString()), vhdBlobContainer); TestEasyLog.Instance.Info("Breaking lease on [" + blob.Uri + "]"); blob.BreakLease(TimeSpan.FromSeconds(1)); } TestEasyLog.Instance.Info("Waiting for VHDs to be released"); // now wait a short while for the lease to actually expire. RetryHelper.RetryUntil(() => { var remainingVhdsLeased = vhdManager.GetVirtualHardDisks().Where(vhd => vhd.UsageDetails.HostedServiceName == hostedServiceName); return(!remainingVhdsLeased.Any()); }, 30, TimeSpan.FromSeconds(5)); }
/// <summary> /// Deploy worker role /// </summary> /// <param name="packagePath"></param> /// <param name="configPath"></param> /// <param name="roleName"></param> /// <param name="deploymentSlot"></param> /// <returns></returns> public DeploymentInfo DeployRole(string packagePath, string configPath, string roleName = "", DeploymentSlot deploymentSlot = DeploymentSlot.Production) { var storageManager = new AzureStorageServiceManager(); var service = storageManager.CreateStorageService(); var blob = service.CreateBlob(Path.GetFileName(packagePath)); var packageBlobUri = blob.UploadFile(packagePath); roleName = CreateHostedService(roleName); var deployment = CreateOrUpdateDeployment(roleName, packageBlobUri, configPath, deploymentSlot: deploymentSlot); return new DeploymentInfo { HostedService = roleName, Deployment = deployment }; }
/// <summary> /// Break leases on vhd blobs /// </summary> /// <param name="hostedServiceName"></param> /// <param name="vhdBlobContainer"></param> public void BreakVhdLeases(string hostedServiceName, string vhdBlobContainer = "vhds") { var storageManager = new AzureStorageServiceManager(); var vhdManager = new AzureVirtualMachineManager(); var vhdsLeased = vhdManager.GetVirtualHardDisks().Where(vhd => vhd.UsageDetails.HostedServiceName == hostedServiceName); foreach (var vhd in vhdsLeased) { var storage = storageManager.GetStorageServiceForBlob(vhd.MediaLinkUri); var blob = storage.GetBlob(Path.GetFileName(vhd.MediaLinkUri.ToString()), vhdBlobContainer); TestEasyLog.Instance.Info("Breaking lease on [" + blob.Uri + "]"); blob.BreakLease(TimeSpan.FromSeconds(1)); } TestEasyLog.Instance.Info("Waiting for VHDs to be released"); // now wait a short while for the lease to actually expire. RetryHelper.RetryUntil(() => { var remainingVhdsLeased = vhdManager.GetVirtualHardDisks().Where(vhd => vhd.UsageDetails.HostedServiceName == hostedServiceName); return !remainingVhdsLeased.Any(); }, 30, TimeSpan.FromSeconds(5)); }
/// <summary> /// Get storage accounts that are used by hosted service /// </summary> /// <param name="hostedServiceName"></param> /// <returns></returns> public IList<StorageAccount> GetStorageAccountsUsedByHostedService(string hostedServiceName) { var uniqueStorageAccounts = new HashSet<StorageAccount>(); var storageManager = new AzureStorageServiceManager(); var vhdManager = new AzureVirtualMachineManager(); var vhdsLeased = vhdManager.GetVirtualHardDisks().Where(vhd => vhd.UsageDetails.HostedServiceName == hostedServiceName); foreach (var vhd in vhdsLeased) { var storageAccount = storageManager.GetStorageServiceForBlob(vhd.MediaLinkUri); uniqueStorageAccounts.Add(storageAccount); } return uniqueStorageAccounts.ToList(); }
private void CleanupStorageServices(AzureResourceType type, Dictionary<string, object> resources) { SafeExecute(() => { var manager = new AzureStorageServiceManager(); foreach (var obj in resources.Values) { var service = obj as string; if (service == null) { throw new Exception(string.Format("Incorrect resource was stored in '{0}' collection", type)); } if (manager.GetStorageService(service) != null) { manager.DeleteStorageService(service); } } resources.Clear(); }, type.ToString()); }
/// <summary> /// Constructs connection string for storage service /// </summary> /// <param name="service"></param> /// <returns></returns> public static string GetConnectionString(this StorageAccount service) { var manager = new AzureStorageServiceManager(); return manager.GetStorageServiceConnectionString(service.Name); }
/// <summary> /// Constructs connection string for storage service /// </summary> /// <param name="service"></param> /// <returns></returns> public static string GetConnectionString(this StorageAccount service) { var manager = new AzureStorageServiceManager(); return(manager.GetStorageServiceConnectionString(service.Name)); }