地理所队列操作功能的添加记录:
将各项功能做成子菜单,总体思路:
../csm/conf.php中配置所有的操作命令:
// Command to handle the queue opration $execute_to_reconfig = $shell_cgi." ".escapeshellarg("$QUEUES_BIN/badmin reconfig"); $prepare_to_setenv = $shell_cgi." ".escapeshellarg("export LSF_ENVDIR"); $list_all_queues_command = $shell_cgi." ".escapeshellarg("source /etc/profile;$QUEUES_BIN/bqueues | $ROOT_BIN/awk '{if (NR>1)print $1}'"); // 这一句如果不加 source /etc/profile 会提示某些环境变量未设置的错误 $get_user_queue = $shell_cgi." ".escapeshellarg("$USR_YPBIN/bqueueadm -u %s"); $add_user_to_queue = $shell_cgi." ".escapeshellarg("$USR_YPBIN/bqueueadm -u %s -a %s"); $del_user_from_queue = $shell_cgi." ".escapeshellarg("$USR_YPBIN/bqueueadm -u %s -d %s"); $change_user_to_queue = $shell_cgi." ".escapeshellarg("$USR_YPBIN/bqueueadm -u %s -d %s -a %s"); |
在相应的tpl文件中定义显示的视图,注意仅仅是视图,不包括显示的数据。
类似:../csm/addusertoqueue.php 是实际给tpl传递数据的,需要的用户数据,队列数据
都是从这里传入的。
类似:js/addusertoqueue.js 是利用ajax异步将请求发送给处理页面,并接收处理页面传
递回来的值。
类似:../csm/addusertoqueue-ajax.php 是接收ajax传来的参数,实际进行命令的执行
的。
特别注意:$list_all_queues_command这条命令,其中限制性了source /etc/profile 把环境变量读进去,
不然返回的数组里面没有值,会报错。
Js文件中的例子:
$().ready(function(){ $('#submit_change_user_to_queue').click(function(){ $.ajax({ url: '../csm/changeusertoqueue-ajax.php', type: 'GET', data: 'username='+$('#usernamelist option:selected').text()+'&beforqueue='+$('#queueslist_befor option:selected').text()+'&nowqueue='+$('#queueslist_now option:selected').text(), dataType: 'text', success: function(data){ alert(data); }, error: function(XMLHttpRequest, textStatus, errorThrown){ alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); } }); }); }); |
Changeusertoqueue-ajax.php中的例子:
<?php include_once "../conf.php"; include_once "../functions.php"; include_once "../csm/conf.php";
$username = $_GET["username"]; $beforqueue = $_GET["beforqueue"]; $nowqueue = $_GET["nowqueue"];
$change_user_to_queue = $change_user_to_queue ; $execute_to_reconf = $execute_to_reconfig ; $change_user_to_queue_cmd = sprintf($change_user_to_queue,$username,$beforqueue,$nowqueue); $change_user_to_queue_cmd = ConstructShellCommand($change_user_to_queue_cmd); $execute_to_reconf_cmd = ConstructShellCommand($execute_to_reconf); //echo $execute_to_reconf_cmd ;
ExecuteCommand($change_user_to_queue_cmd, $output, $return);
if($return==0){ ExecuteCommand($execute_to_reconf_cmd, $output, $return); if($return==0){ echo "用户".$username."已成功从队列".$beforqueue."更改到队列".$nowqueue."中!"; }else{ echo "使配置生效的命令执行失败!"; } }else{ echo "执行将用户添加到指定队列出错,请联系管理员!"; } ?> |
修改时间:2013-03-26
修改人:侯庆东