コード例 #1
0
        /// <summary>
        /// <para> Modify settings for a DB Instance. You can change one or more database configuration parameters by specifying these parameters and
        /// the new values in the request. </para>
        /// </summary>
        ///
        /// <param name="modifyDBInstanceRequest">Container for the necessary parameters to execute the ModifyDBInstance service method on
        ///           AmazonRDS.</param>
        ///
        /// <returns>The response from the ModifyDBInstance service method, as returned by AmazonRDS.</returns>
        ///
        /// <exception cref="DBParameterGroupNotFoundException"/>
        /// <exception cref="DBInstanceNotFoundException"/>
        /// <exception cref="InvalidDBInstanceStateException"/>
        /// <exception cref="DBSecurityGroupNotFoundException"/>
        /// <exception cref="InvalidDBSecurityGroupStateException"/>
        /// <exception cref="InsufficientDBInstanceCapacityException"/>
        public ModifyDBInstanceResponse ModifyDBInstance(ModifyDBInstanceRequest modifyDBInstanceRequest)
        {
            IRequest <ModifyDBInstanceRequest> request  = new ModifyDBInstanceRequestMarshaller().Marshall(modifyDBInstanceRequest);
            ModifyDBInstanceResponse           response = Invoke <ModifyDBInstanceRequest, ModifyDBInstanceResponse> (request, this.signer, ModifyDBInstanceResponseUnmarshaller.GetInstance());

            return(response);
        }
コード例 #2
0
        private static IDictionary <string, string> ConvertModifyDBInstance(ModifyDBInstanceRequest request)
        {
            IDictionary <string, string> dictionary = new Dictionary <string, string>();

            dictionary["Action"] = "ModifyDBInstance";
            if (request.IsSetDBInstanceIdentifier())
            {
                dictionary["DBInstanceIdentifier"] = request.DBInstanceIdentifier;
            }
            if (request.IsSetAllocatedStorage())
            {
                dictionary["AllocatedStorage"] = request.AllocatedStorage.ToString();
            }
            if (request.IsSetDBInstanceClass())
            {
                dictionary["DBInstanceClass"] = request.DBInstanceClass;
            }
            List <string> dBSecurityGroups = request.DBSecurityGroups;
            int           num = 1;

            foreach (string str in dBSecurityGroups)
            {
                dictionary["DBSecurityGroups" + ".member." + num] = str;
                num++;
            }
            if (request.IsSetApplyImmediately())
            {
                dictionary["ApplyImmediately"] = request.ApplyImmediately.ToString().ToLower();
            }
            if (request.IsSetMasterUserPassword())
            {
                dictionary["MasterUserPassword"] = request.MasterUserPassword;
            }
            if (request.IsSetDBParameterGroupName())
            {
                dictionary["DBParameterGroupName"] = request.DBParameterGroupName;
            }
            if (request.IsSetBackupRetentionPeriod())
            {
                dictionary["BackupRetentionPeriod"] = request.BackupRetentionPeriod.ToString();
            }
            if (request.IsSetPreferredBackupWindow())
            {
                dictionary["PreferredBackupWindow"] = request.PreferredBackupWindow;
            }
            if (request.IsSetPreferredMaintenanceWindow())
            {
                dictionary["PreferredMaintenanceWindow"] = request.PreferredMaintenanceWindow;
            }
            return(dictionary);
        }
コード例 #3
0
    private async Task <string> RenameOldInstance(DBInstance instance)
    {
        string newName = instance.DBInstanceIdentifier + "-old";

        _logger.Info($"Renaming {instance.DBInstanceIdentifier} to {newName}");
        ModifyDBInstanceRequest modifyDBInstanceRequest = new ModifyDBInstanceRequest()
        {
            DBInstanceIdentifier    = instance.DBInstanceIdentifier,
            NewDBInstanceIdentifier = newName,
            ApplyImmediately        = true
        };

        ModifyDBInstanceResponse modifyResponse = await _rdsClient.ModifyDBInstanceAsync(modifyDBInstanceRequest);

        await WaitForDBToHaveName(instance.DbiResourceId, newName);

        _logger.Info("Rename successful.");
        return(newName);
    }
コード例 #4
0
        public async Task StopRdsInstance(string instanceIdentifier)
        {
            var instance = await GetRDSInstance();

            var isMultiAZ = instance.MultiAZ;

            if (isMultiAZ)
            {
                ModifyDBInstanceRequest request = new ModifyDBInstanceRequest();
                request.MultiAZ              = false;
                request.ApplyImmediately     = true;
                request.DBInstanceIdentifier = instanceIdentifier;
                try
                {
                    var response = await client.ModifyDBInstanceAsync(request);

                    isMultiAZ = response.DBInstance.MultiAZ;
                    while (isMultiAZ)
                    {
                        await Task.Delay(3000);

                        var newResponse = await GetRDSInstance();

                        isMultiAZ = newResponse.MultiAZ;
                    }
                }
                catch (Exception ex)
                {
                    ;
                }
            }


            var stopRequest = new StopDBInstanceRequest()
            {
                DBInstanceIdentifier = instanceIdentifier
            };
            await client.StopDBInstanceAsync(stopRequest);
        }
コード例 #5
0
 public ModifyDBInstanceResponse ModifyDBInstance(ModifyDBInstanceRequest request)
 {
     return(this.Invoke <ModifyDBInstanceResponse>(ConvertModifyDBInstance(request)));
 }