function set_name_map()
{
    global $_POST;
    foreach ($_POST as $prodName => $tableName) {
        $tableName = trim($tableName);
        if ($prodName == "set_type" || $prodName == "submit") {
            continue;
        }
        echo "<br>";
        if ($tableName == "") {
            echo "提示:产品({$prodName})的表名为空";
            continue;
        }
        if (preg_match("/\$\\w+\$/", $tableName) === false) {
            echo "错误:产品({$prodName})的表名({$tableName})只能由字符组成!";
            break;
        }
        if (strlen($tableName) == 20) {
            echo "错误:产品({$prodName})的表名({$tableName})长度不能超过20!";
            break;
        }
        dbUtil(SetProdNameMap, $prodName, $tableName);
        $retArray = get_db_result();
        if ($retArray[0] == 1) {
            echo $retArray[1];
            break;
        } else {
            echo $retArray[1];
        }
    }
    echo " <a href='../../../index.php'>返回</a>";
}
Example #2
0
function export_svn_code($code_url, $prod_name, $ldap, $password)
{
    $code_url = trim($code_url);
    if (strlen($prod_name) > 30) {
        set_util_result(1, "错误:服务名称不能超过30个字符!");
        return;
    }
    if (preg_match("/^(https:\\/\\/[^@]+)@(\\d+)\$/", $code_url, $matches) == 0) {
        set_util_result(1, "错误:无效的svn地址!");
        return;
    }
    $url_addr = $matches[1];
    $version = $matches[2];
    $target_dir = dirname(__FILE__) . "/../../code/" . md5($prod_name);
    if (!file_exists($target_dir)) {
        mkdir($target_dir);
    }
    $target_dir = realpath($target_dir);
    $target_svn_dir = $target_dir . "/" . $version;
    if (file_exists($target_svn_dir)) {
        set_util_result(1, "错误:该版本已经存在!");
        return;
    }
    $target_exp_file = dirname(__FILE__) . "/../../templates/svn_export.exp";
    $content = file_get_contents(dirname(__FILE__) . "/../../templates/svn_export.template");
    $content = str_replace('$current_file$', $target_exp_file, $content);
    $content = str_replace('$user_name$', $ldap, $content);
    $content = str_replace('$svn_url$', $code_url, $content);
    $content = str_replace('$target_dirname$', $target_svn_dir, $content);
    $content = str_replace('$password$', $password, $content);
    file_put_contents($target_exp_file, $content);
    $cmd = "chmod 700 {$target_exp_file}; {$target_exp_file}";
    exec($cmd, $lines, $ret);
    $pos = strpos(array_pop($lines), "authorization failed");
    if ($pos !== false) {
        set_util_result(1, "错误:执行expect脚本失败(请确定用户名密码是否正确)!");
        return;
    }
    dbUtil(AddCodeInfo, $code_url, $version, $prod_name, $ldap, $target_svn_dir);
    $db_ret = get_db_result();
    set_util_result($db_ret[0], $db_ret[1]);
}
Example #3
0
function dbUtil()
{
    $args_arr = func_get_args();
    $type = $args_arr[0];
    if ($type != GetStatus && $type != SetStatus) {
        reset_db_result();
    }
    try {
        $mongo = new MongoClient('mongodb://nb403:27127/admin:admin');
        $db = $mongo->svnCodeComment;
        if ($type == LoadCodePathInfoTable) {
            return load_codePathInfoTable($db);
        } elseif ($type == LoadProdTableNameMapInfoTable) {
            return load_prodTableNameMapInfoTable($db);
        } elseif ($type == LoadCodeCommentInfoTable) {
            $prodName = $args_arr[1];
            return load_codeCommentInfoTable($db, $prodName);
        } elseif ($type == SaveCodePathInfo) {
            list($svnAddr, $version, $prodName, $creator) = array_slice($args_arr, 1);
            return save_codePathInfo($db, $svnAddr, $version, $prodName, $creator);
        } elseif ($type == SaveProdTableNameMapInfo) {
            list($prodName, $tableName) = array_slice($args_arr, 1);
            return save_prodTableNameMapInfo($db, $prodName, $tableName);
        } elseif ($type == SaveCodeCommentInfo) {
            list($prodName, $version, $status, $filePath, $commentor, $type, $content, $detail_type, $selected_id) = array_slice($args_arr, 1);
            return save_codeCommentInfo($db, $prodName, $version, $status, $filePath, $commentor, $type, $content, $detail_type, $selected_id);
        } elseif ($type == SetStatus) {
            list($status, $msg) = array_slice($args_arr, 1);
            return set_db_result($status, $msg);
        } elseif ($type == GetStatus) {
            return get_db_result();
        } elseif ($type == CreateCollection) {
            $tableName = $args_arr[1];
            return create_table($db, $tableName);
        }
    } catch (MongoConnectionException $e) {
        set_db_result(1, $e->getMessage());
        return false;
    }
}