head.inc 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. require_once '../php/conf/MessageResources-en.inc';
  3. require_once '../php/util/Logger.php';
  4. require_once '../php//conf/Config.inc';
  5. require_once "../php/util/lock.php";
  6. require_once '../php/db/HMCDBAccessor.php';
  7. require_once "../php/util/clusterState.php";
  8. /*
  9. * due to the way include files are scoped,
  10. * we return the string to be eval'd, rather than
  11. * executing them.
  12. */
  13. function redirectToPage($requestPage, $targetPage) {
  14. // if the page is index.php or the root app directory, don't redirect... simply include
  15. if ($requestPage != 'index.php' && $requestPage != 'html') {
  16. return "header('Location: /hmc/html/$targetPage');";
  17. } else {
  18. return "require('$targetPage');";
  19. }
  20. }
  21. $logger = new HMCLogger("Interceptor");
  22. $db = new HMCDBAccessor($GLOBALS["DB_PATH"]);
  23. $appDir = "/hmc/html";
  24. $res = $db->getAllClusters();
  25. $clusters = $res['clusters'];
  26. $requestPage = basename(preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']));
  27. $logger->log_trace('requestPage='.$requestPage);
  28. if (sizeof($clusters) == 0) {
  29. if ($requestPage != 'welcome.php' && $requestPage != 'initializeCluster.php') {
  30. eval(redirectToPage($requestPage, 'welcome.php'));
  31. exit;
  32. }
  33. $clusterState = 'NOT_CONFIGURED';
  34. } else {
  35. foreach ($clusters as $cluster) {
  36. $state = json_decode($cluster['state'], true);
  37. $logger->log_trace('cluster state='.print_r($state,1));
  38. switch ($state['state']) {
  39. case 'DEPLOYED':
  40. if ($state['context']['status']) {
  41. $clusterState = 'OPERATIONAL';
  42. } else {
  43. if ($requestPage != 'installFailed.php' && $requestPage != 'uninstallWizard.php') {
  44. eval(redirectToPage($requestPage, 'installFailed.php'));
  45. exit;
  46. }
  47. $clusterState = 'DEPLOY_FAILED';
  48. }
  49. break;
  50. case 'CONFIGURATION_IN_PROGRESS':
  51. if ($requestPage != 'reinstall.php' && $requestPage != 'initializeCluster.php') {
  52. $targetPage = 'reinstall.php';
  53. eval(redirectToPage($requestPage, 'reinstall.php'));
  54. exit;
  55. }
  56. $clusterState = 'CONFIGURATION_IN_PROGRESS';
  57. break;
  58. case 'DEPLOYMENT_IN_PROGRESS':
  59. if ($requestPage != 'showDeployProgress.php') {
  60. $targetPage = 'showDeployProgress.php?clusterName=' . $cluster['clusterName'];
  61. $_GET['clusterName'] = $cluster['clusterName'];
  62. eval(redirectToPage($requestPage, 'showDeployProgress.php'));
  63. exit;
  64. }
  65. $clusterState = 'DEPLOYMENT_IN_PROGRESS';
  66. break;
  67. }
  68. }
  69. }
  70. ?>