Subversion-Projekte lars-tiefland.openvz_admin

Revision

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