Subversion-Projekte lars-tiefland.openvz_admin

Revision

Revision 109 | Revision 112 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
3 lars 1
<?php
9 lars 2
	//$Id: load.php 111 2008-05-22 11:11:01Z lars $
109 lars 3
	/**
4
	 * 	@package	openvz_admin
5
	 * 	@author		Lars Tiefland <ltiefland@gmail.com>
6
	 **/
3 lars 7
	require("include/common.php");
100 lars 8
	$hns=HN::getHNs();
9
	unset($hns[-1]);
10
	foreach($hns as $hn_id=>$hn_name)
3 lars 11
	{
101 lars 12
		$cmd="ssh root@$hn_name ls /etc/vz/conf/*.conf";
3 lars 13
		unset($out);
61 lars 14
		exec($cmd, $out, $ret);
100 lars 15
		$files=$out;
16
		foreach($files as $conf)
3 lars 17
		{
100 lars 18
			$conf=basename($conf);
19
			unset($out);
111 lars 20
			$cmd="scp root@$hn_name:/etc/vz/conf/$conf cfgs/$hn_id";
100 lars 21
			exec($cmd, $out, $ret);
101 lars 22
			$cont_f=file("cfgs/$hn_id/$conf");
23
			$cont_f[]="v_id=\"".substr($conf,0,strpos($conf,'.'))."\"";
100 lars 24
			$cont[]=$cont_f;
3 lars 25
		}
100 lars 26
		foreach($cont as $conf)
3 lars 27
		{
111 lars 28
			unset($cfgs);
100 lars 29
			foreach($conf as $value)
3 lars 30
			{
100 lars 31
				if($value)
3 lars 32
				{
100 lars 33
					$value=rtrim($value);
111 lars 34
					if($value)
3 lars 35
					{
111 lars 36
						if($value[0]==" " || $value[0]=="#")
37
						{
38
							continue;
39
						}
40
						$cfg_v=explode("=",$value);
41
						$cfg_val[$cfg_v[0]]=trim($cfg_v[1],'"');
3 lars 42
					}
43
				}
100 lars 44
				else
45
				{
46
					contine;
47
				}
3 lars 48
			}
100 lars 49
			$cfgs[]=$cfg_val;
3 lars 50
		}
100 lars 51
		$i=0;
52
		foreach($cfgs as $conf)
3 lars 53
		{
100 lars 54
			$sql="SELECT * FROM distributions WHERE dist_name='".$conf["DISTRIBUTION"]."'";
3 lars 55
			$res=$db->query($sql);
56
			if(!PEAR::isError($res))
57
			{
58
				if($res->numRows())
59
				{
100 lars 60
					$row=$res->fetchRow();
61
					$dist_id=$row["dist_id"];
3 lars 62
				}
63
				else
64
				{
100 lars 65
					$sql="INSERT INTO distributions (dist_name, dist_template) VALUES('".$conf["DISTRIBUTION"]."', '".$conf["OSTEMPLATE"]."')";
66
					$res=$db->query($sql);
67
					$dist_id=$res->lastinsertID();
3 lars 68
				}
101 lars 69
				$sql="SELECT * FROM vservers WHERE v_id=".$conf["v_id"]." AND hn_id=$hn_id";
3 lars 70
				$res=$db->query($sql);
100 lars 71
				if(!PEAR::isError($res))
3 lars 72
				{
100 lars 73
					if(!$res->numRows())
74
					{
101 lars 75
						$sql="INSERT INTO vservers (v_id, v_name, v_dist, hn_id) VALUES (".$conf["v_id"].", '".$conf["HOSTNAME"]."', $dist_id, $hn_id)";
100 lars 76
						$res=$db->query($sql);
77
						if(PEAR::isError($res))
78
						{
79
							echo $res->getUserInfo();
80
						}
81
					}
3 lars 82
				}
83
			}
84
			else
85
			{
86
				echo $res->getUserInfo();
87
			}
100 lars 88
			foreach($conf as $field => $value)
89
			{
101 lars 90
				$sql="SELECT * FROM vserver_config WHERE vc_name='$field' AND v_id=".$conf["v_id"]." AND hn_id=$hn_id";
100 lars 91
				$res=$db->query($sql);
92
				if(!PEAR::isError($res))
93
				{
94
					if($res->numRows())
95
					{
101 lars 96
						$sql="UPDATE vserver_config SET vc_value='$value' WHERE vc_name='$field' AND v_id=".$conf["v_id"]." AND hn_id=$hn_id";
100 lars 97
					}
98
					else
99
					{
101 lars 100
						$sql="INSERT INTO vserver_config VALUES (".$conf["v_id"].", $hn_id, '$field', '$value')";
100 lars 101
					}
102
					$res=$db->query($sql);
103
					if(PEAR::isError($res))
104
					{
105
						echo $res->getUserInfo();
106
					}
107
				}
108
				else
109
				{
110
					echo $res->getUserInfo();
111
				}
3 lars 112
 
100 lars 113
			}
114
			$i++;
3 lars 115
		}
116
	}
117
?>