configureCluster.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. include_once '../util/Logger.php';
  3. include_once '../conf/Config.inc';
  4. include_once 'localDirs.php';
  5. include_once "../util/lock.php";
  6. include_once '../db/HMCDBAccessor.php';
  7. include_once '../util/suggestProperties.php';
  8. include_once '../util/clusterState.php';
  9. $logger = new HMCLogger("ConfigureCluster");
  10. $dbAccessor = new HMCDBAccessor($GLOBALS["DB_PATH"]);
  11. header("Content-type: application/json");
  12. $clusterName = $_GET['clusterName'];
  13. // TODO: Validate clusterName
  14. $requestData = file_get_contents('php://input');
  15. $requestObj = json_decode($requestData, true);
  16. // persist the user entered mount points *******
  17. foreach ($requestObj["clusterConfig"] as $serviceName=>$objects) {
  18. $dbAccessor->updateServiceConfigs($clusterName, $objects);
  19. }
  20. // finished persisting the mount point info *******
  21. // logic for next stage *******
  22. // trigger script to do advanced config recommendations
  23. $suggestProperties = new SuggestProperties();
  24. $ret = $suggestProperties->suggestProperties($clusterName, $dbAccessor, TRUE);
  25. if ($ret["result"] != 0) {
  26. $logger->log_error("Failed to run advanced properties suggestion, error=".$ret["error"]);
  27. print (json_encode($ret));
  28. return;
  29. }
  30. // logic for next stage ends here *******
  31. // give back json data for the advanced cluster properties *******
  32. // Return a valid response
  33. $jsonOutput = array();
  34. $jsonOutput["clusterName"] = $clusterName;
  35. // Update the state of the cluster.
  36. $result = 0;
  37. $error = "";
  38. $state = "CONFIGURATION_IN_PROGRESS";
  39. $displayName = "Configuration in progress";
  40. $context = array (
  41. 'stage' => "CONFIGURE_CLUSTER"
  42. );
  43. $retval = updateClusterState($clusterName, $state, $displayName, $context);
  44. if ($retval['result'] != 0) {
  45. $result = $retval['result'];
  46. $error = $retval['error'];
  47. }
  48. print(json_encode(array("result" => $result, "error" => $error, "response" => $jsonOutput)));
  49. ?>