public async Task <ManagedDisk> CreateAsync( string subscription, string resourceGroup, string name, string location, int size) { var id = AzureResourceInnerHelper.CreateForDisk(subscription, resourceGroup, name); var result = new ManagedDisk { Id = id, }; // TODO validate subscription using (logger.BeginResourceIdScope("manageddisk", id)) using (var s = logger.StepInformation("Create managed disk: {0}", name)) { var disk = new Disk { Location = location, DiskSizeGB = size, CreationData = new CreationData("Empty"), }; var dr = await computeManagementClient.Disks.CreateOrUpdateAsync(resourceGroup, name, disk); // TODO verify null size result.Size = dr.DiskSizeGB != null ? dr.DiskSizeGB.Value : 1; s.Commit(); } return(result); }
public override async Task <DeleteVolumeResponse> DeleteVolume( DeleteVolumeRequest request, ServerCallContext context) { DeleteVolumeResponse response = new DeleteVolumeResponse(); var id = request.VolumeId; using (logger.BeginKeyValueScope("volume_id", id)) using (var _s = logger.StepInformation("{0}", nameof(DeleteVolume))) { try { var ctx = new Helpers.Azure.DataProviderContext <ManagedDiskConfig>(); await contextConfig.Provide(ctx); var actx = new AzureAuthConfigProviderContext { Secrets = request.ControllerDeleteSecrets }; var provisionService = provisionServiceFactory.Create(provider.Provide(actx), ctx.Result.SubscriptionId); await provisionService.DeleteAsync(AzureResourceInnerHelper.CreateForDisk( ctx.Result.SubscriptionId, ctx.Result.ResourceGroupName, id)); } catch (Exception ex) { logger.LogError(ex, "Exception in DeleteVolume"); throw new RpcException(new Status(StatusCode.Internal, ex.Message)); } _s.Commit(); } return(response); }