PageRenderTime 42ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/scalr-2/tags/scalr-2.0.0/app/www/aws_rds_param_group_edit.php

http://scalr.googlecode.com/
PHP | 147 lines | 105 code | 26 blank | 16 comment | 26 complexity | ca2f836e88778cbb8ccab6e251acf144 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0, GPL-3.0
  1. <?php
  2. require("src/prepend.inc.php");
  3. if ($_SESSION["uid"] == 0)
  4. UI::Redirect("index.php");
  5. if (!$req_name)
  6. {
  7. $errmsg = "Please select parameter group from list";
  8. UI::Redirect("aws_rds_parameter_groups.php");
  9. }
  10. $Client = Client::Load($_SESSION['uid']);
  11. $display["title"] = _("Tools&nbsp;&raquo;&nbsp;Amazon Web Services&nbsp;&raquo;&nbsp;Amazon RDS&nbsp;&raquo;&nbsp;Edit group ({$req_name})");
  12. $display["group_name"] = $req_name;
  13. $AmazonRDSClient = AmazonRDS::GetInstance($Client->AWSAccessKeyID, $Client->AWSAccessKey);
  14. $AmazonRDSClient->SetRegion($_SESSION['aws_region']);
  15. try
  16. {
  17. //
  18. // Form DBParameterGroups
  19. //
  20. $groupParam = $AmazonRDSClient->DescribeDBParameters($req_name);
  21. $gp = (array)$groupParam->DescribeDBParametersResult->Parameters;
  22. $group = $AmazonRDSClient->DescribeDBParameterGroups($req_name);
  23. $groupDescription = (string)$group->DescribeDBParameterGroupsResult->DBParameterGroups->DBParameterGroup->Description;
  24. foreach ($gp['Parameter'] as &$paramValue)
  25. {
  26. $paramValue = (array)$paramValue;
  27. if (stristr($paramValue['AllowedValues'], ",") && $paramValue['DataType'] != 'boolean')
  28. {
  29. $paramValue['AllowedValues'] = explode(",", $paramValue['AllowedValues']);
  30. array_map('trim', $paramValue['AllowedValues']);
  31. }
  32. if($paramValue['IsModifiable'] == 'true')
  33. {
  34. $oldParamValues[$paramValue['ParameterName']] = $paramValue['ParameterValue'];
  35. $oldParamApplyType[$paramValue['ParameterName']] = $paramValue['ApplyType'];
  36. }
  37. }
  38. }
  39. catch(Exception $e)
  40. {
  41. $errmsg = $e->getMessage();
  42. UI::Redirect("aws_rds_parameter_groups.php");
  43. }
  44. // if some parameters were changed - from API modify request
  45. if($_POST)
  46. {
  47. $modifiedParameters = new ParametersList();
  48. $sendCounter = 0;
  49. try
  50. {
  51. foreach($oldParamValues as $paramName => $oldParamValue)
  52. {
  53. // send every MAX_MODIFY_PARAMETERS_NUM parameters (AmazonRDS session limit)
  54. if($sendCounter == AmazonRDS::MAX_MODIFY_PARAMETERS_NUM)
  55. {
  56. if($_POST['cbtn_3']) // if reset to default
  57. $AmazonRDSClient->ResetDBParameterGroup($req_name,$modifiedParameters);
  58. else
  59. $AmazonRDSClient->ModifyDBParameterGroup($req_name,$modifiedParameters);
  60. $modifiedParameters = new ParametersList();
  61. $sendCounter = 0;
  62. }
  63. $newParamValue = $_POST[$paramName];
  64. // if reset to default
  65. if($_POST['cbtn_3'])
  66. {
  67. if($oldParamApplyType[$paramName] == 'static')
  68. $modifiedParameters->AddParameters($paramName,$newParamValue,"pending-reboot");
  69. else
  70. $modifiedParameters->AddParameters($paramName,$newParamValue,"immediate");
  71. $sendCounter++;
  72. }
  73. // if modify
  74. elseif (
  75. (empty($oldParamValue) && !empty($newParamValue)) ||
  76. (!empty($oldParamValue) && empty($newParamValue)) ||
  77. ($newParamValue !== $oldParamValue && !empty($newParamValue) && !empty($oldParamValue))
  78. )
  79. {
  80. // enter to "if" when
  81. // old new
  82. // EMPTY -> VALUE;
  83. // VALUE -> EMPTY
  84. // VAL1 -> VAL2
  85. // don't enter to "if" when
  86. // EMPTY -> EMPTY
  87. // check parameter's ApplyType to modify ApplyMethod
  88. if($oldParamApplyType[$paramName] == 'static')
  89. $modifiedParameters->AddParameters($paramName,$newParamValue,"pending-reboot");
  90. else
  91. $modifiedParameters->AddParameters($paramName,$newParamValue,"immediate");
  92. $sendCounter++;
  93. }
  94. }
  95. // modify request for the last 0...19 records
  96. if((int)$sendCounter > 0)
  97. {
  98. if($_POST['cbtn_3']) // if reset to default
  99. {
  100. $AmazonRDSClient->ResetDBParameterGroup($req_name,$modifiedParameters);
  101. }
  102. else
  103. {
  104. $AmazonRDSClient->ModifyDBParameterGroup($req_name,$modifiedParameters);
  105. }
  106. }
  107. if($_POST['cbtn_3'])
  108. $okmsg = "DB parameter group successfully set to default";
  109. else
  110. $okmsg = "DB parameter group successfully updated";
  111. UI::Redirect("aws_rds_param_group_edit.php?name={$req_name}");
  112. }
  113. catch(Exception $e)
  114. {
  115. $err[] = $e->getMessage();
  116. }
  117. }
  118. $display['groupDescription'] = trim($groupDescription);
  119. $display['parameters'] = $gp['Parameter'];
  120. require("src/append.inc.php");
  121. ?>