public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonRDSConfig config = new AmazonRDSConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonRDSClient client = new AmazonRDSClient(creds, config);

            DescribeDBSnapshotsResponse resp = new DescribeDBSnapshotsResponse();

            do
            {
                DescribeDBSnapshotsRequest req = new DescribeDBSnapshotsRequest
                {
                    Marker = resp.Marker
                    ,
                    MaxRecords = maxItems
                };

                resp = client.DescribeDBSnapshots(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.DBSnapshots)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.Marker));
        }
        /// <summary>
        /// <para> Returns information about DBSnapshots. This API supports pagination. </para>
        /// </summary>
        ///
        /// <param name="describeDBSnapshotsRequest">Container for the necessary parameters to execute the DescribeDBSnapshots service method on
        ///           AmazonRDS.</param>
        ///
        /// <returns>The response from the DescribeDBSnapshots service method, as returned by AmazonRDS.</returns>
        ///
        /// <exception cref="DBSnapshotNotFoundException"/>
        public DescribeDBSnapshotsResponse DescribeDBSnapshots(DescribeDBSnapshotsRequest describeDBSnapshotsRequest)
        {
            IRequest <DescribeDBSnapshotsRequest> request  = new DescribeDBSnapshotsRequestMarshaller().Marshall(describeDBSnapshotsRequest);
            DescribeDBSnapshotsResponse           response = Invoke <DescribeDBSnapshotsRequest, DescribeDBSnapshotsResponse> (request, this.signer, DescribeDBSnapshotsResponseUnmarshaller.GetInstance());

            return(response);
        }
Example #3
0
    public async Task <IReadOnlyList <DatabaseSnapshotInfo> > GetRecentSnapshots()
    {
        using AmazonRDSClient rdsClient = new AmazonRDSClient();
        DescribeDBSnapshotsRequest request = new DescribeDBSnapshotsRequest()
        {
            DBInstanceIdentifier = _instanceName
        };
        DescribeDBSnapshotsResponse snaps = await rdsClient.DescribeDBSnapshotsAsync(request, CancellationToken.None);

        var orderedSnaps  = snaps.DBSnapshots.OrderBy(x => x.PercentProgress).ThenByDescending(x => x.SnapshotCreateTime);
        var domainObjects = orderedSnaps
                            .Select(x =>
                                    new DatabaseSnapshotInfo(x.DBSnapshotIdentifier,
                                                             Instant.FromDateTimeUtc(x.SnapshotCreateTime.ToUniversalTime()),
                                                             x.PercentProgress,
                                                             x.Status))
                            .ToList();

        return(domainObjects);
    }
Example #4
0
        private static IDictionary <string, string> ConvertDescribeDBSnapshots(DescribeDBSnapshotsRequest request)
        {
            IDictionary <string, string> dictionary = new Dictionary <string, string>();

            dictionary["Action"] = "DescribeDBSnapshots";
            if (request.IsSetDBInstanceIdentifier())
            {
                dictionary["DBInstanceIdentifier"] = request.DBInstanceIdentifier;
            }
            if (request.IsSetDBSnapshotIdentifier())
            {
                dictionary["DBSnapshotIdentifier"] = request.DBSnapshotIdentifier;
            }
            if (request.IsSetMaxRecords())
            {
                dictionary["MaxRecords"] = request.MaxRecords.ToString();
            }
            if (request.IsSetMarker())
            {
                dictionary["Marker"] = request.Marker;
            }
            return(dictionary);
        }
Example #5
0
        public async Task <string> RestoreDBFromSnapShotAsync()
        {
            try
            {
                DescribeDBSnapshotsRequest dBSnapshotsRequest = new DescribeDBSnapshotsRequest();
                dBSnapshotsRequest.DBSnapshotIdentifier = "rds-jaguar";
                var response = await amazonRDSClient.DescribeDBSnapshotsAsync(dBSnapshotsRequest);

                RestoreDBInstanceFromDBSnapshotRequest restoreDBInstance = new RestoreDBInstanceFromDBSnapshotRequest();
                restoreDBInstance.DBSnapshotIdentifier    = "rds-jaguar";
                restoreDBInstance.AutoMinorVersionUpgrade = false;
                restoreDBInstance.CopyTagsToSnapshot      = true;
                restoreDBInstance.DBInstanceIdentifier    = response.DBSnapshots[0].DBInstanceIdentifier;
                //restoreDBInstance.DBName=""

                //var final = await amazonRDSClient.RestoreDBInstanceFromDBSnapshotAsync(restoreDBInstance);

                return("String");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #6
0
 public DescribeDBSnapshotsResponse DescribeDBSnapshots(DescribeDBSnapshotsRequest request)
 {
     return(this.Invoke <DescribeDBSnapshotsResponse>(ConvertDescribeDBSnapshots(request)));
 }