Subversion-Projekte lars-tiefland.openvz_admin

Revision

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