示例#1
0
        public async Task AssertVaultExists(string vaultName)
        {
            vaultName = GetTrimmedVaultName(vaultName);

            var listResponse = await _glacier.ListVaultsAsync(new ListVaultsRequest
            {
                AccountId = _accountId
            });

            if (listResponse.VaultList.Any(a => a.VaultName.Equals(vaultName)))
            {
                return;
            }

            if (_testMode)
            {
                _logger.LogInformation("Would create vault {0}, but we're in test mode so I'm not", vaultName);
            }
            else
            {
                _logger.LogInformation("Creating vault {0}", vaultName);
                var result = await _glacier.CreateVaultAsync(new CreateVaultRequest
                {
                    AccountId = _accountId,
                    VaultName = vaultName
                });

                _logger.LogDebug("Vault creation result: {0}", result.HttpStatusCode);
            }
        }
示例#2
0
        protected GlacierGatewayTestBase(bool testMode)
        {
            _logger          = Substitute.For <ILogger <GlacierGateway> >();
            _glacier         = Substitute.For <IAmazonGlacier>();
            _updater         = Substitute.For <IConsolePercentUpdater>();
            _archiveProvider = Substitute.For <IArchiveProvider>();

            // We need to initialize the MemoryStream with some data so that
            // the sanity checks don't fail
            var bytes = Enumerable.Range(0, 100).Select(a => (byte)a).ToArray();

            _archiveProvider.GetFileStream(Arg.Any <string>(), Arg.Any <string>()).Returns(new MemoryStream(bytes));

            _sut = new GlacierGateway(_glacier, _logger, _updater, _archiveProvider, null, testMode);

            _glacier.ListVaultsAsync(Arg.Any <ListVaultsRequest>())
            .Returns(new ListVaultsResponse
            {
                VaultList = new List <DescribeVaultOutput>
                {
                    new DescribeVaultOutput
                    {
                        VaultName = PreexistingVaultName
                    }
                }
            });
            _glacier.CreateVaultAsync(Arg.Any <CreateVaultRequest>())
            .Returns(new CreateVaultResponse
            {
                HttpStatusCode = HttpStatusCode.OK
            });
        }
示例#3
0
        static void ListVaults(IAmazonGlacier glacier)
        {
            var req = new ListVaultsRequest
            {
                Limit = 100
            };

            Task <ListVaultsResponse> res = glacier.ListVaultsAsync(req);

            Task.WaitAll(res);

            if (res.IsCompletedSuccessfully)
            {
                foreach (var vault in res.Result.VaultList)
                {
                    Console.WriteLine($"Vault: {vault.VaultName}");
                }
            }
        }
        async IAsyncEnumerable <ListVaultsResponse> IPaginator <ListVaultsResponse> .PaginateAsync(CancellationToken cancellationToken = default)
        {
            if (Interlocked.Exchange(ref _isPaginatorInUse, 1) != 0)
            {
                throw new System.InvalidOperationException("Paginator has already been consumed and cannot be reused. Please create a new instance.");
            }
            var marker = _request.Marker;
            ListVaultsResponse response;

            do
            {
                _request.Marker = marker;
                response        = await _client.ListVaultsAsync(_request, cancellationToken).ConfigureAwait(false);

                marker = response.Marker;
                cancellationToken.ThrowIfCancellationRequested();
                yield return(response);
            }while (marker != null);
        }
 private Amazon.Glacier.Model.ListVaultsResponse CallAWSServiceOperation(IAmazonGlacier client, Amazon.Glacier.Model.ListVaultsRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Glacier", "ListVaults");
     try
     {
         #if DESKTOP
         return(client.ListVaults(request));
         #elif CORECLR
         return(client.ListVaultsAsync(request).GetAwaiter().GetResult());
         #else
                 #error "Unknown build edition"
         #endif
     }
     catch (AmazonServiceException exc)
     {
         var webException = exc.InnerException as System.Net.WebException;
         if (webException != null)
         {
             throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException);
         }
         throw;
     }
 }