Subversion-Projekte lars-tiefland.openvz_admin

Revision

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