Subversion-Projekte lars-tiefland.openvz_admin

Revision

Revision 100 | Revision 109 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

<?php
        //$Id: load.php 101 2008-02-23 00:21:34Z lars $
        require("include/common.php");
        $hns=HN::getHNs();
        unset($hns[-1]);
        foreach($hns as $hn_id=>$hn_name)
        {
                $cmd="ssh root@$hn_name ls /etc/vz/conf/*.conf";
                unset($out);
                exec($cmd, $out, $ret);
                $files=$out;
                foreach($files as $conf)
                {
                        $conf=basename($conf);
                        unset($out);
                        $cmd="scp root@$hn_name:/etc/vz/conf/*.conf cfgs/$hn_id";
                        exec($cmd, $out, $ret);
                        $cont_f=file("cfgs/$hn_id/$conf");
                        $cont_f[]="v_id=\"".substr($conf,0,strpos($conf,'.'))."\"";
                        $cont[]=$cont_f;
                }
                foreach($cont as $conf)
                {
                        foreach($conf as $value)
                        {
                                if($value)
                                {
                                        $value=rtrim($value);
                                        if($value[0]==" " || $value[0]=="#")
                                        {
                                                continue;
                                        }
                                        $cfg_v=explode("=",$value);
                                        $cfg_val[$cfg_v[0]]=trim($cfg_v[1],'"');
                                }
                                else
                                {
                                        contine;
                                }
                        }
                        $cfgs[]=$cfg_val;
                }
                $i=0;
                foreach($cfgs as $conf)
                {
                        $sql="SELECT * FROM distributions WHERE dist_name='".$conf["DISTRIBUTION"]."'";
                        $res=$db->query($sql);
                        if(!PEAR::isError($res))
                        {
                                if($res->numRows())
                                {
                                        $row=$res->fetchRow();
                                        $dist_id=$row["dist_id"];
                                }
                                else
                                {
                                        $sql="INSERT INTO distributions (dist_name, dist_template) VALUES('".$conf["DISTRIBUTION"]."', '".$conf["OSTEMPLATE"]."')";
                                        $res=$db->query($sql);
                                        $dist_id=$res->lastinsertID();
                                }
                                $sql="SELECT * FROM vservers WHERE v_id=".$conf["v_id"]." AND hn_id=$hn_id";
                                $res=$db->query($sql);
                                if(!PEAR::isError($res))
                                {
                                        if(!$res->numRows())
                                        {
                                                $sql="INSERT INTO vservers (v_id, v_name, v_dist, hn_id) VALUES (".$conf["v_id"].", '".$conf["HOSTNAME"]."', $dist_id, $hn_id)";
                                                $res=$db->query($sql);
                                                if(PEAR::isError($res))
                                                {
                                                        echo $res->getUserInfo();
                                                }
                                        }
                                }
                        }
                        else
                        {
                                echo $res->getUserInfo();
                        }
                        foreach($conf as $field => $value)
                        {
                                $sql="SELECT * FROM vserver_config WHERE vc_name='$field' AND v_id=".$conf["v_id"]." AND hn_id=$hn_id";
                                $res=$db->query($sql);
                                if(!PEAR::isError($res))
                                {
                                        if($res->numRows())
                                        {
                                                $sql="UPDATE vserver_config SET vc_value='$value' WHERE vc_name='$field' AND v_id=".$conf["v_id"]." AND hn_id=$hn_id";
                                        }
                                        else
                                        {
                                                $sql="INSERT INTO vserver_config VALUES (".$conf["v_id"].", $hn_id, '$field', '$value')";
                                        }
                                        $res=$db->query($sql);
                                        if(PEAR::isError($res))
                                        {
                                                echo $res->getUserInfo();
                                        }
                                }
                                else
                                {
                                        echo $res->getUserInfo();
                                }

                        }
                        $i++;
                }
        }
?>