From c59a73f506941ba930a319fcc4c318e1d4b7fd3a Mon Sep 17 00:00:00 2001 From: paul Date: Thu, 11 Jan 2007 19:17:44 +0000 Subject: [PATCH] A web interface to test the XMLRPC for the storage server. --- .../storageServer/var/xmlrpc/xr_web_test.php | 374 ++++++++++++++++++ 1 file changed, 374 insertions(+) create mode 100644 campcaster/src/modules/storageServer/var/xmlrpc/xr_web_test.php diff --git a/campcaster/src/modules/storageServer/var/xmlrpc/xr_web_test.php b/campcaster/src/modules/storageServer/var/xmlrpc/xr_web_test.php new file mode 100644 index 000000000..30de7abe7 --- /dev/null +++ b/campcaster/src/modules/storageServer/var/xmlrpc/xr_web_test.php @@ -0,0 +1,374 @@ +'.htmlspecialchars($p_printValue)."\n"; + echo $str; + return $selected; +} // fn camp_html_select_option + + +$serverPath = + "http://{$CC_CONFIG['storageUrlHost']}:{$CC_CONFIG['storageUrlPort']}". + "{$CC_CONFIG['storageUrlPath']}/{$CC_CONFIG['storageXMLRPC']}"; +$serverPath = camp_session_get("storageserver_xmlrpc_path", $serverPath); +$f_selectedMethod = camp_session_get("f_selectedMethod", "listMethods"); +$url = parse_url($serverPath); +$client = new XML_RPC_Client($url['path'], $url['host']); + +$methodDefs = array( + "listMethods" => array('m'=>"system.listMethods", 'p'=>NULL), + "methodHelp" => array('m'=>"system.methodHelp", 'p'=>0), + "methodSignature" => array('m'=>"system.methodSignature", 'p'=>0), + "test" => array('m'=>"locstor.test", 'p'=>array('sessid', 'teststring')), + "getVersion" => array('m'=>"locstor.getVersion", 'p'=>array(), 'r'=>'version'), + "authenticate" => array('m'=>"locstor.authenticate", 'p'=>array('login', 'pass'), 'r'=>'authenticate'), + "login" => array('m'=>"locstor.login", 'p'=>array('login', 'pass'), 'r'=>'sessid'), + "logout" => array('m'=>"locstor.logout", 'p'=>array('sessid'), 'r'=>'status'), + "storeAudioClipOpen" => array('m'=>"locstor.storeAudioClipOpen", + 'p'=>array('sessid', 'gunid', 'metadata', 'fname', 'chsum'), + 'r'=>array('url', 'token') + ), + "storeAudioClipClose" => array('m'=>"locstor.storeAudioClipClose", + 'p'=>array('sessid', 'token'), 'r'=>'gunid'), + "accessRawAudioData" => array('m'=>"locstor.accessRawAudioData", + 'p'=>array('sessid', 'gunid'), 'r'=>array('url', 'token')), + "releaseRawAudioData" => array('m'=>"locstor.releaseRawAudioData", + 'p'=>array('token'), 'r'=>'status'), + "downloadRawAudioDataOpen" => + array('m'=>"locstor.downloadRawAudioDataOpen", + 'p'=>array('sessid', 'gunid'), 'r'=>array('url', 'token')), + "downloadRawAudioDataClose" => + array('m'=>"locstor.downloadRawAudioDataClose", + 'p'=>array('sessid', 'token'), 'r'=>'gunid'), + "downloadMetadataOpen" => array('m'=>"locstor.downloadMetadataOpen", + 'p'=>array('sessid', 'gunid'), 'r'=>array('url', 'token')), + "downloadMetadataClose" => array('m'=>"locstor.downloadMetadataClose", + 'p'=>array('sessid', 'token'), 'r'=>'gunid'), + + "deleteAudioClip" => + array('m'=>"locstor.deleteAudioClip", + 'p'=>array('sessid', 'gunid', 'forced'), 'r'=>'status'), + "existsAudioClip" => array('m'=>"locstor.existsAudioClip", + 'p'=>array('sessid', 'gunid'), 'r'=>'exists'), + "getAudioClip" => array('m'=>"locstor.getAudioClip", + 'p'=>array('sessid', 'gunid'), 'r'=>'metadata'), + "updateAudioClipMetadata" => array('m'=>"locstor.updateAudioClipMetadata", + 'p'=>array('sessid', 'gunid', 'metadata'), 'r'=>'status'), + "searchMetadata" => array('m'=>"locstor.searchMetadata", 'p'=>NULL), + "browseCategory" => array('m'=>"locstor.browseCategory", 'p'=>NULL), + "resetStorage" => array('m'=>"locstor.resetStorage", + 'p'=>array()), +# 'p'=>array('loadSampleData', 'invalidateSessionIds')), + "storeWebstream" => array('m'=>"locstor.storeWebstream", + 'p'=>array('sessid', 'gunid', 'metadata', 'fname', 'url'), + 'r'=>array('gunid') + ), + + "createPlaylist" => array('m'=>"locstor.createPlaylist", + 'p'=>array('sessid', 'plid', 'fname'), 'r'=>'plid'), + "editPlaylist" => array('m'=>"locstor.editPlaylist", + 'p'=>array('sessid', 'plid'), 'r'=>array('url', 'token')), + "savePlaylist" => array('m'=>"locstor.savePlaylist", + 'p'=>array('sessid', 'token', 'newPlaylist'), 'r'=>'plid'), + "revertEditedPlaylist" => array('m'=>"locstor.revertEditedPlaylist", + 'p'=>array('sessid', 'token'), 'r'=>'plid'), + "deletePlaylist" => array('m'=>"locstor.deletePlaylist", + 'p'=>array('sessid', 'plid', 'forced'), 'r'=>'status'), + "accessPlaylist" => array('m'=>"locstor.accessPlaylist", + 'p'=>array('sessid', 'plid'), 'r'=>array('url', 'token')), + "releasePlaylist" => array('m'=>"locstor.releasePlaylist", + 'p'=>array('token'), 'r'=>'plid'), + "existsPlaylist" => array('m'=>"locstor.existsPlaylist", + 'p'=>array('sessid', 'plid'), 'r'=>'exists'), + "playlistIsAvailable" => array('m'=>"locstor.playlistIsAvailable", + 'p'=>array('sessid', 'plid'), 'r'=>array('available', 'ownerid', 'ownerlogin')), + + "exportPlaylistOpen" => array('m'=>"locstor.exportPlaylistOpen", + 'p'=>array('sessid', 'plids', 'type', 'standalone'), + 'r'=>array('url', 'token')), + "exportPlaylistClose" => array('m'=>"locstor.exportPlaylistClose", + 'p'=>array('token'), 'r'=>array('status')), + "importPlaylistOpen" => array('m'=>"locstor.importPlaylistOpen", + 'p'=>array('sessid', 'chsum'), 'r'=>array('url', 'token')), + "importPlaylistClose" => array('m'=>"locstor.importPlaylistClose", + 'p'=>array('token'), 'r'=>array('gunid')), + + "renderPlaylistToFileOpen" => array('m'=>"locstor.renderPlaylistToFileOpen", + 'p'=>array('sessid', 'plid'), + 'r'=>array('token')), + "renderPlaylistToFileCheck" => array('m'=>"locstor.renderPlaylistToFileCheck", + 'p'=>array('token'), 'r'=>array('status', 'url')), + "renderPlaylistToFileClose" => array('m'=>"locstor.renderPlaylistToFileClose", + 'p'=>array('token'), 'r'=>array('status')), + "renderPlaylistToStorageOpen" => array('m'=>"locstor.renderPlaylistToStorageOpen", + 'p'=>array('sessid', 'plid'), + 'r'=>array('token')), + "renderPlaylistToStorageCheck" => array('m'=>"locstor.renderPlaylistToStorageCheck", + 'p'=>array('token'), 'r'=>array('status', 'gunid')), + "renderPlaylistToRSSOpen" => array('m'=>"locstor.renderPlaylistToRSSOpen", + 'p'=>array('sessid', 'plid'), + 'r'=>array('token')), + "renderPlaylistToRSSCheck" => array('m'=>"locstor.renderPlaylistToRSSCheck", + 'p'=>array('token'), 'r'=>array('status', 'url')), + "renderPlaylistToRSSClose" => array('m'=>"locstor.renderPlaylistToRSSClose", + 'p'=>array('token'), 'r'=>array('status')), + + "loadPref" => array('m'=>"locstor.loadPref", + 'p'=>array('sessid', 'key'), 'r'=>'value'), + "savePref" => array('m'=>"locstor.savePref", + 'p'=>array('sessid', 'key', 'value'), 'r'=>'status'), + "delPref" => array('m'=>"locstor.delPref", + 'p'=>array('sessid', 'key'), 'r'=>'status'), + "loadGroupPref" => array('m'=>"locstor.loadGroupPref", + 'p'=>array('sessid', 'group', 'key'), 'r'=>'value'), + "saveGroupPref" => array('m'=>"locstor.saveGroupPref", + 'p'=>array('sessid', 'group', 'key', 'value'), 'r'=>'status'), + + "getTransportInfo" => array('m'=>"locstor.getTransportInfo", + 'p'=>array('trtok'), + 'r'=>array('state', 'realsize', 'expectedsize', 'realsum', 'expectedsum')), + "turnOnOffTransports" => array('m'=>"locstor.turnOnOffTransports", + 'p'=>array('sessid', 'onOff'), 'r'=>array('state')), + "doTransportAction" => array('m'=>"locstor.doTransportAction", + 'p'=>array('sessid', 'trtok', 'action'), 'r'=>array('state')), + "uploadFile2Hub" => array('m'=>"locstor.uploadFile2Hub", + 'p'=>array('sessid', 'filePath'), 'r'=>array('trtok')), + "getHubInitiatedTransfers" => array('m'=>"locstor.getHubInitiatedTransfers", + 'p'=>array('sessid'), 'r'=>array()), + "startHubInitiatedTransfer" => array('m'=>"locstor.startHubInitiatedTransfer", + 'p'=>array('trtok'), 'r'=>array()), + "upload2Hub" => array('m'=>"locstor.upload2Hub", + 'p'=>array('sessid', 'gunid'), 'r'=>array('trtok')), + "downloadFromHub" => array('m'=>"locstor.downloadFromHub", + 'p'=>array('sessid', 'gunid'), 'r'=>array('trtok')), + "globalSearch" => array('m'=>"locstor.globalSearch", + 'p'=>array('sessid', 'criteria'), 'r'=>array('trtok')), + "getSearchResults" => array('m'=>"locstor.getSearchResults", + 'p'=>array('trtok')), + + "createBackupOpen" => array('m'=>"locstor.createBackupOpen", + 'p'=>array('sessid', 'criteria'), 'r'=>array('token')), + "createBackupCheck" => array('m'=>"locstor.createBackupCheck", +# 'p'=>array('token'), 'r'=>array('status', 'url', 'metafile', 'faultString')), + 'p'=>array('token'), 'r'=>array('status', 'url', 'tmpfile')), + "createBackupClose" => array('m'=>"locstor.createBackupClose", + 'p'=>array('token'), 'r'=>array('status')), + "restoreBackupOpen" => array('m'=>"locstor.restoreBackupOpen", + 'p'=>array('sessid', 'chsum'), 'r'=>array('url', 'token')), + "restoreBackupClosePut" => array('m'=>"locstor.restoreBackupClosePut", + 'p'=>array('sessid', 'token'), 'r'=>array('token')), + "restoreBackupCheck" => array('m'=>"locstor.restoreBackupCheck", + 'p'=>array('token'), 'r'=>array('status', 'faultString')), + "restoreBackupClose" => array('m'=>"locstor.restoreBackupClose", + 'p'=>array('token'), 'r'=>array('status')), + "openPut" => array('m'=>"locstor.openPut", 'p'=>array()), + "closePut" => array('m'=>"locstor.closePut", 'p'=>array()), +); + +if (isset($_REQUEST['go_button'])) { + // Get the parameters + $methodParams = $methodDefs[$f_selectedMethod]['p']; + foreach ($methodParams as $methodParamName) { + $inputParamName = "param_".$methodParamName; + $xmlParameters[$methodParamName] = $_REQUEST[$inputParamName]; + $_SESSION[$inputParamName] = $_REQUEST[$inputParamName]; + } + + // Create the XML-RPC message + $actualMethod = $methodDefs[$f_selectedMethod]['m']; + $msg = new XML_RPC_Message($actualMethod, array(XML_RPC_encode($xmlParameters))); + $sentMessage = $msg->serialize(); + + // Send it + $sendResult = $client->send($msg); + if ($sendResult->faultCode() > 0) { + $errorMsg = "xr_cli_test.php: ".$sendResult->faultString()." ".$sendResult->faultCode()."\n"; + } else { + // If successful + $xmlResponse = XML_RPC_decode($sendResult->value()); + + // Special case state handling + switch ($f_selectedMethod) { + case "login": + // Remember the login session ID so we can use it to call + // other methods. + $loggedIn = true; + $_SESSION['xmlrpc_session_id'] = $xmlResponse['sessid']; + break; + case "logout": + unset($_SESSION['xmlrpc_session_id']); + break; + case "storeAudioClipOpen": + $_SESSION['xmlrpc_token'] = $xmlResponse['token']; + $_SESSION['xmlrpc_put_url'] = $xmlResponse['url']; + break; + } + + if (isset($methodDefs[$method]['r'])) { + $expectedResult = $methodDefs[$method]['r']; + if (is_array($expectedResult)) { + foreach ($expectedResult as $resultName) { + $actualResults[$resultName] = $xmlResponse[$resultName]; + } + echo join(' ', $actualResults)."\n"; + } else { + switch ($expectedResult) { + case "status": + case "exists": + echo ($xmlResponse[$expectedResult]=='1' ? "TRUE" : "FALSE" )."\n"; + break; + default: + echo "{$xmlResponse[$expectedResult]}\n"; + } + } + } else { + switch ($method) { + case "searchMetadata": + case "getSearchResults": + $acCnt = 0; + $acGunids = array(); + $plCnt = 0; + $plGunids = array(); + $fld = (isset($options['category']) ? $options['category'] : 'gunid' ); + foreach ($xmlResponse['results'] as $k => $v) { + if ($v['type']=='audioclip') { + $acCnt++; + $acGunids[] = $v[$fld]; + } + if ($v['type']=='playlist') { + $plCnt++; + $plGunids[] = $v[$fld]; + } + } + echo "AC({$acCnt}): ". + join(", ", $acGunids). + " | PL({$plCnt}): ". + join(", ", $plGunids). + "\n"; + break; + case "browseCategory": + echo "RES({$xmlResponse['cnt']}): ". + join(", ", $xmlResponse['results']). + "\n"; + break; + default: + //print_r($xmlResponse); + } + } + } +} +?> + + +
+StorageServer path :
+Method: + +
+Parameters: +"; +} else { + echo ""; + foreach ($methodParams as $methodParamName) { + $value = ""; + if ($methodParamName == "sessid" && isset($_SESSION['xmlrpc_session_id'])) { + $value = $_SESSION['xmlrpc_session_id']; + } elseif ($methodParamName == "token" && isset($_SESSION['xmlrpc_token'])) { + $value = $_SESSION['xmlrpc_token']; + } elseif (isset($_SESSION["param_".$methodParamName])) { + $value = $_SESSION["param_".$methodParamName]; + } + echo ""; + echo ""; ?> + "; +} +?> +
+ + + + +
"; +} +if (isset($sentMessage)) { + ?> + Sent message:
+ +
+ + Error:
+ +
+ + Response:
+ +
+ + +
$methodParamName