123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739 |
- <?php
- include_once '../util/Logger.php';
- include_once "../conf/Config.inc";
- include_once "../orchestrator/HMC.php";
- include_once "uninstallCleanup.php";
- include_once "deployPostProcess.php";
- $dbPath = $GLOBALS["DB_PATH"];
- $clusterName = $_GET['clusterName'];
- $txnId = $_GET['txnId'];
- $deployUser = $_GET['deployUser'];
- $logger = new HMCLogger("TxnProgress");
- $map = array(
- "HMC::uninstallHDP" => array (
- "deBootStrap"
- ),
- "HMC::deployHDP" => array (
- "deployPostProcess"
- )
- );
- //REZXXX $dummyDeployProgressData = array(
- //REZXXX // Sample 0
- //REZXXX array(
- //REZXXX 'result' => 0,
- //REZXXX 'error' => '',
- //REZXXX 'processRunning' => 1,
- //REZXXX 'subTxns' => array(
- //REZXXX array(
- //REZXXX 'subTxnId' => 1,
- //REZXXX 'parentSubTxnId' => 0,
- //REZXXX 'state' => 'INSTALLING',
- //REZXXX 'description' => 'orchestratortestcluster-INSTALLING',
- //REZXXX 'progress' => 'IN_PROGRESS',
- //REZXXX 'subTxnType' => 'CLUSTER',
- //REZXXX 'rank' => 0
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 14,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'HDFS-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 1
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 16,
- //REZXXX 'parentSubTxnId' => 15,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'NAMENODE-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 2
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 15,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'DATANODE-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 3
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 18,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'SNAMENODE-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 4
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 20,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'MAPREDUCE-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 5
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 22,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'JOBTRACKER-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 6
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 23,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'TASKTRACKER-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 7
- //REZXXX )
- //REZXXX )
- //REZXXX ),
- //REZXXX // Sample 1
- //REZXXX array(
- //REZXXX 'result' => 0,
- //REZXXX 'error' => '',
- //REZXXX 'processRunning' => 1,
- //REZXXX 'subTxns' => array(
- //REZXXX array(
- //REZXXX 'subTxnId' => 1,
- //REZXXX 'parentSubTxnId' => 0,
- //REZXXX 'state' => 'INSTALLED',
- //REZXXX 'description' => 'orchestratortestcluster-INSTALLED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'CLUSTER',
- //REZXXX 'rank' => 0
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 14,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'STARTING',
- //REZXXX 'description' => 'HDFS-STARTING',
- //REZXXX 'progress' => 'IN_PROGRESS',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 1
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 16,
- //REZXXX 'parentSubTxnId' => 15,
- //REZXXX 'state' => 'STARTING',
- //REZXXX 'description' => 'NAMENODE-STARTING',
- //REZXXX 'progress' => 'IN_PROGRESS',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 2
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 15,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'STARTING',
- //REZXXX 'description' => 'DATANODE-STARTING',
- //REZXXX 'progress' => 'IN_PROGRESS',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 3
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 18,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'SNAMENODE-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 4
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 20,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'MAPREDUCE-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 5
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 22,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'JOBTRACKER-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 6
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 23,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'TASKTRACKER-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 7
- //REZXXX )
- //REZXXX )
- //REZXXX ),
- //REZXXX // Sample 2
- //REZXXX array(
- //REZXXX 'result' => 0,
- //REZXXX 'error' => '',
- //REZXXX 'processRunning' => 1,
- //REZXXX 'subTxns' => array(
- //REZXXX array(
- //REZXXX 'subTxnId' => 1,
- //REZXXX 'parentSubTxnId' => 0,
- //REZXXX 'state' => 'INSTALLED',
- //REZXXX 'description' => 'orchestratortestcluster-INSTALLED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'CLUSTER',
- //REZXXX 'rank' => 0
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 14,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'STARTING',
- //REZXXX 'description' => 'HDFS-STARTING',
- //REZXXX 'progress' => 'IN_PROGRESS',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 1
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 16,
- //REZXXX 'parentSubTxnId' => 15,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'NAMENODE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 2
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 15,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'STARTING',
- //REZXXX 'description' => 'DATANODE-STARTING',
- //REZXXX 'progress' => 'IN_PROGRESS',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 3
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 18,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'SNAMENODE-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 4
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 20,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'MAPREDUCE-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 5
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 22,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'JOBTRACKER-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 6
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 23,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'TASKTRACKER-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 7
- //REZXXX )
- //REZXXX )
- //REZXXX ),
- //REZXXX // Sample 3
- //REZXXX array(
- //REZXXX 'result' => 0,
- //REZXXX 'error' => '',
- //REZXXX 'processRunning' => 1,
- //REZXXX 'subTxns' => array(
- //REZXXX array(
- //REZXXX 'subTxnId' => 1,
- //REZXXX 'parentSubTxnId' => 0,
- //REZXXX 'state' => 'INSTALLED',
- //REZXXX 'description' => 'orchestratortestcluster-INSTALLED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'CLUSTER',
- //REZXXX 'rank' => 0
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 14,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'STARTING',
- //REZXXX 'description' => 'HDFS-STARTING',
- //REZXXX 'progress' => 'IN_PROGRESS',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 1
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 16,
- //REZXXX 'parentSubTxnId' => 15,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'NAMENODE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 2
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 15,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'DATANODE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 3
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 18,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'STARTING',
- //REZXXX 'description' => 'SNAMENODE-STARTING',
- //REZXXX 'progress' => 'IN_PROGRESS',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 4
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 20,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'MAPREDUCE-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 5
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 22,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'JOBTRACKER-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 6
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 23,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'TASKTRACKER-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 7
- //REZXXX )
- //REZXXX )
- //REZXXX ),
- //REZXXX // Sample 4
- //REZXXX array(
- //REZXXX 'result' => 0,
- //REZXXX 'error' => '',
- //REZXXX 'processRunning' => 1,
- //REZXXX 'subTxns' => array(
- //REZXXX array(
- //REZXXX 'subTxnId' => 1,
- //REZXXX 'parentSubTxnId' => 0,
- //REZXXX 'state' => 'INSTALLED',
- //REZXXX 'description' => 'orchestratortestcluster-INSTALLED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'CLUSTER',
- //REZXXX 'rank' => 0
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 14,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'HDFS-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 1
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 16,
- //REZXXX 'parentSubTxnId' => 15,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'NAMENODE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 2
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 15,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'DATANODE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 3
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 18,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'SNAMENODE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 4
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 20,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'STARTING',
- //REZXXX 'description' => 'MAPREDUCE-STARTING',
- //REZXXX 'progress' => 'IN_PROGRESS',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 5
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 22,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'STARTING',
- //REZXXX 'description' => 'JOBTRACKER-STARTING',
- //REZXXX 'progress' => 'IN_PROGRESS',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 6
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 23,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'PENDING',
- //REZXXX 'description' => 'TASKTRACKER-STARTING',
- //REZXXX 'progress' => 'PENDING',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 7
- //REZXXX )
- //REZXXX )
- //REZXXX ),
- //REZXXX // Sample 5
- //REZXXX array(
- //REZXXX 'result' => 0,
- //REZXXX 'error' => '',
- //REZXXX 'processRunning' => 1,
- //REZXXX 'subTxns' => array(
- //REZXXX array(
- //REZXXX 'subTxnId' => 1,
- //REZXXX 'parentSubTxnId' => 0,
- //REZXXX 'state' => 'INSTALLED',
- //REZXXX 'description' => 'orchestratortestcluster-INSTALLED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'CLUSTER',
- //REZXXX 'rank' => 0
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 14,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'HDFS-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 1
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 16,
- //REZXXX 'parentSubTxnId' => 15,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'NAMENODE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 2
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 15,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'DATANODE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 3
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 18,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'SNAMENODE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 4
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 20,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'STARTING',
- //REZXXX 'description' => 'MAPREDUCE-STARTING',
- //REZXXX 'progress' => 'IN_PROGRESS',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 5
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 22,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'JOBTRACKER-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 6
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 23,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'STARTING',
- //REZXXX 'description' => 'TASKTRACKER-STARTING',
- //REZXXX 'progress' => 'IN_PROGRESS',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 7
- //REZXXX )
- //REZXXX )
- //REZXXX ),
- //REZXXX // Sample 6
- //REZXXX array(
- //REZXXX 'result' => 0,
- //REZXXX 'error' => '',
- //REZXXX 'processRunning' => 0,
- //REZXXX 'subTxns' => array(
- //REZXXX array(
- //REZXXX 'subTxnId' => 1,
- //REZXXX 'parentSubTxnId' => 0,
- //REZXXX 'state' => 'INSTALLED',
- //REZXXX 'description' => 'orchestratortestcluster-INSTALLED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'CLUSTER',
- //REZXXX 'rank' => 0
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 14,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'HDFS-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 1
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 16,
- //REZXXX 'parentSubTxnId' => 15,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'NAMENODE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 2
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 15,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'DATANODE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 3
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 18,
- //REZXXX 'parentSubTxnId' => 14,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'SNAMENODE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 4
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 20,
- //REZXXX 'parentSubTxnId' => 13,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'MAPREDUCE-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICE',
- //REZXXX 'rank' => 5
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 22,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'JOBTRACKER-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 6
- //REZXXX ),
- //REZXXX array(
- //REZXXX 'subTxnId' => 23,
- //REZXXX 'parentSubTxnId' => 20,
- //REZXXX 'state' => 'STARTED',
- //REZXXX 'description' => 'TASKTRACKER-STARTED',
- //REZXXX 'progress' => 'COMPLETED',
- //REZXXX 'subTxnType' => 'SERVICECOMPONENT',
- //REZXXX 'rank' => 7
- //REZXXX )
- //REZXXX )
- //REZXXX )
- //REZXXX );
- //REZXXX
- //REZXXX define('LAST_PROGRESS_STATE_INDEX_FILE', '/tmp/rezDeployProgressStateIndex' . $txnId);
- //REZXXX
- //REZXXX function fetchLastProgressStateIndex()
- //REZXXX {
- //REZXXX $lastProgressStateIndex = 0;
- //REZXXX
- //REZXXX if( file_exists(LAST_PROGRESS_STATE_INDEX_FILE) )
- //REZXXX {
- //REZXXX $lastProgressStateIndex = trim( file_get_contents(LAST_PROGRESS_STATE_INDEX_FILE) );
- //REZXXX }
- //REZXXX
- //REZXXX return $lastProgressStateIndex;
- //REZXXX }
- //REZXXX
- //REZXXX function storeLastProgressStateIndex( $latestProgressStateIndex )
- //REZXXX {
- //REZXXX file_put_contents(LAST_PROGRESS_STATE_INDEX_FILE, $latestProgressStateIndex);
- //REZXXX }
- function fetchTxnProgress( $txnId )
- {
- global $dbPath;
- global $clusterName;
- $hmc = new HMC($dbPath, $clusterName);
- $progress = $hmc->getProgress($txnId);
- //REZXXX global $dummyDeployProgressData;
- //REZXXX
- //REZXXX $lastProgressStateIndex = fetchLastProgressStateIndex();
- //REZXXX
- //REZXXX $progress = $dummyDeployProgressData[$lastProgressStateIndex];
- //REZXXX
- //REZXXX $currentProgressStateIndex = $lastProgressStateIndex;
- //REZXXX
- //REZXXX /* Progress to the next state only if we haven't already reached the end.
- //REZXXX *
- //REZXXX * We expect callers to stop to call this webservice once this condition is
- //REZXXX * reached in any case, but let's be safe all the same.
- //REZXXX */
- //REZXXX if( $lastProgressStateIndex < count($dummyDeployProgressData) )
- //REZXXX {
- //REZXXX /* Randomize the rate of our progress, in steps of 1. */
- //REZXXX $currentProgressStateIndex = (rand() % 2) ? ($lastProgressStateIndex + 1) : ($lastProgressStateIndex);
- //REZXXX
- //REZXXX /* Update our disk cookie. */
- //REZXXX storeLastProgressStateIndex( $currentProgressStateIndex );
- //REZXXX }
- return $progress;
- }
- function sortProgressStatesByRank( $first, $second )
- {
- if( $first['rank'] == $second['rank'] )
- {
- return 0;
- }
- return ($first['rank'] < $second['rank']) ? -1 : 1;
- }
- $progress = fetchTxnProgress($txnId);
- // TODO XXX Check for $progress['result'] and $progress['error'] here, before proceeding.
- /* Tack on some additional state to make life on the frontend easier. */
- $progress['encounteredError'] = false;
- /* Marker to keep track of whether at least one subTxn has been kicked off. */
- $atLeastOneSubTxnInProgress = false;
- /* Sort the subTxns array inside $progress by rank, and then remove all notion
- * of rank from the sorted array we're going to return.
- */
- usort( $progress['subTxns'], 'sortProgressStatesByRank' );
- foreach( $progress['subTxns'] as &$progressSubTxn )
- {
- unset( $progressSubTxn['rank'] );
- /* Any one subTxn failing means we want the frontend to bail. */
- if( $progressSubTxn['progress'] == 'FAILED' )
- {
- $progress['encounteredError'] = true;
- }
- /* We need to make sure at least one subTxn is not pending before
- * sending a progress report back to the frontend - if not, the
- * progress states aren't yet finalized and will change across
- * invocations to this webservice, so we prefer to wait before
- * showing anything.
- */
- if( $progressSubTxn['progress'] != 'PENDING' )
- {
- $atLeastOneSubTxnInProgress = true;
- }
- }
- $lastTransaction = $progressSubTxn;
- /* If at least one subTxn isn't in progress, signal to the frontend that
- * there's nothing worthy for it to process yet.
- */
- if (!$atLeastOneSubTxnInProgress) {
- $progress['subTxns'] = null;
- }
- $dbAccessor = new HMCDBAccessor($GLOBALS["DB_PATH"]);
- if (($progress['processRunning'] == FALSE) || ($progress['encounteredError'] == TRUE)) {
- // get the transaction status info from db
- $retval = $dbAccessor->getTransactionStatusInfo($clusterName, $txnId);
- if ($retval["result"] != 0) {
- $progress['encounteredError'] = TRUE;
- } else {
- $statusInfo = json_decode($retval['statusInfo'], true);
- $logger->log_debug("Status info function ".$statusInfo['function']);
- // run the next script from the map
- foreach ($map[$statusInfo['function']] as $postProcessFunc) {
- $logger->log_debug("Post process function is ".$postProcessFunc);
- $retval = $postProcessFunc($clusterName, $deployUser, $txnId, $progress);
- if ($retval["result"] != 0) {
- $progress['encounteredError'] = TRUE;
- break;
- }
- }
- }
- }
- /* Clean up some more remnants that we don't need on the frontend. */
- unset( $progress['result'] );
- unset( $progress['error'] );
- /* Create the output data... */
- $jsonOutput = array(
- 'clusterName' => $clusterName,
- 'txnId' => $txnId,
- 'progress' => $progress );
- if ($deployUser != null) {
- $jsonOutput['deployUser'] = $deployUser;
- }
- /* ...and spit it out. */
- header("Content-type: application/json");
- print (json_encode($jsonOutput));
- ?>
|