Beispiel #1
0
    private async Task <DBInstance> RestoreFromSnapshot(DBInstance instance, DBSnapshot snapshot)
    {
        _logger.Info("Creating new instance from snapshot.");
        RestoreDBInstanceFromDBSnapshotRequest restoreRequest = new RestoreDBInstanceFromDBSnapshotRequest()
        {
            DBSnapshotIdentifier = snapshot.DBSnapshotIdentifier,
            LicenseModel         = instance.LicenseModel,
            DBInstanceClass      = instance.DBInstanceClass,
            MultiAZ     = instance.MultiAZ,
            StorageType = instance.StorageType,

            DBInstanceIdentifier = instance.DBInstanceIdentifier,

            DBSubnetGroupName = instance.DBSubnetGroup.DBSubnetGroupName,
            AvailabilityZone  = instance.AvailabilityZone,

            AutoMinorVersionUpgrade = instance.AutoMinorVersionUpgrade,
            VpcSecurityGroupIds     = instance.VpcSecurityGroups.Select(x => x.VpcSecurityGroupId).ToList()
        };

        var restoreResponse = await _rdsClient.RestoreDBInstanceFromDBSnapshotAsync(restoreRequest);

        await WaitForDBToBeAvailable(restoreResponse.DBInstance.DbiResourceId);

        _logger.Info("Creation Successful.");

        return(restoreResponse.DBInstance);
    }
        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;
            }
        }
Beispiel #3
0
        private static IDictionary <string, string> ConvertRestoreDBInstanceFromDBSnapshot(RestoreDBInstanceFromDBSnapshotRequest request)
        {
            IDictionary <string, string> dictionary = new Dictionary <string, string>();

            dictionary["Action"] = "RestoreDBInstanceFromDBSnapshot";
            if (request.IsSetDBInstanceIdentifier())
            {
                dictionary["DBInstanceIdentifier"] = request.DBInstanceIdentifier;
            }
            if (request.IsSetDBSnapshotIdentifier())
            {
                dictionary["DBSnapshotIdentifier"] = request.DBSnapshotIdentifier;
            }
            if (request.IsSetDBInstanceClass())
            {
                dictionary["DBInstanceClass"] = request.DBInstanceClass;
            }
            if (request.IsSetPort())
            {
                dictionary["Port"] = request.Port.ToString();
            }
            if (request.IsSetAvailabilityZone())
            {
                dictionary["AvailabilityZone"] = request.AvailabilityZone;
            }
            return(dictionary);
        }
Beispiel #4
0
 public RestoreDBInstanceFromDBSnapshotResponse RestoreDBInstanceFromDBSnapshot(RestoreDBInstanceFromDBSnapshotRequest request)
 {
     return(this.Invoke <RestoreDBInstanceFromDBSnapshotResponse>(ConvertRestoreDBInstanceFromDBSnapshot(request)));
 }
        /// <summary>
        /// <para> Restores a DB Instance to an arbitrary point-in-time. Users can restore to any point in time before the latestRestorableTime for up
        /// to backupRetentionPeriod days. The target database is created from the source database with the same configuration as the original database
        /// except that the DB instance is created with the default DB security group. </para>
        /// </summary>
        ///
        /// <param name="restoreDBInstanceFromDBSnapshotRequest">Container for the necessary parameters to execute the RestoreDBInstanceFromDBSnapshot
        ///           service method on AmazonRDS.</param>
        ///
        /// <returns>The response from the RestoreDBInstanceFromDBSnapshot service method, as returned by AmazonRDS.</returns>
        ///
        /// <exception cref="InstanceQuotaExceededException"/>
        /// <exception cref="DBInstanceAlreadyExistsException"/>
        /// <exception cref="StorageQuotaExceededException"/>
        /// <exception cref="InvalidDBSnapshotStateException"/>
        /// <exception cref="InsufficientDBInstanceCapacityException"/>
        /// <exception cref="DBSnapshotNotFoundException"/>
        public RestoreDBInstanceFromDBSnapshotResponse RestoreDBInstanceFromDBSnapshot(RestoreDBInstanceFromDBSnapshotRequest restoreDBInstanceFromDBSnapshotRequest)
        {
            IRequest <RestoreDBInstanceFromDBSnapshotRequest> request  = new RestoreDBInstanceFromDBSnapshotRequestMarshaller().Marshall(restoreDBInstanceFromDBSnapshotRequest);
            RestoreDBInstanceFromDBSnapshotResponse           response = Invoke <RestoreDBInstanceFromDBSnapshotRequest, RestoreDBInstanceFromDBSnapshotResponse> (request, this.signer, RestoreDBInstanceFromDBSnapshotResponseUnmarshaller.GetInstance());

            return(response);
        }