@@ -60,6 +60,14 @@ function openvz_vm_insert($event_name, $page_form) {
6060 // Set the IP address
6161 $ app ->db ->query ("UPDATE openvz_ip SET vm_id = ? WHERE ip_address = ? " , $ this ->id , $ this ->dataRecord ['ip_address ' ]);
6262
63+ // Set additional IPs
64+ if (isset ($ this ->dataRecord ['additional_ip ' ])) {
65+ $ app ->db ->query ("UPDATE openvz_ip SET vm_id = 0, additional = 'n' WHERE vm_id = ? AND additional='y' " , $ this ->id );
66+ foreach ($ this ->dataRecord ['additional_ip ' ] as $ idx => $ rec ) {
67+ $ app ->db ->query ("UPDATE openvz_ip SET vm_id = ?, additional = 'y' WHERE ip_address = ? " , $ this ->id , $ rec );
68+ }
69+ }
70+
6371 // Create the OpenVZ config file and store it in config field
6472 $ this ->makeOpenVZConfig ();
6573
@@ -95,8 +103,16 @@ function openvz_vm_update($event_name, $page_form) {
95103
96104 // Set the IP address
97105 if (isset ($ this ->dataRecord ['ip_address ' ])) {
98- $ app ->db ->query ("UPDATE openvz_ip SET vm_id = 0 WHERE vm_id = ? " , $ this ->id );
99- $ app ->db ->query ("UPDATE openvz_ip SET vm_id = ? WHERE ip_address = ? " , $ this ->id , $ this ->dataRecord ['ip_address ' ]);
106+ $ app ->db ->query ("UPDATE openvz_ip SET vm_id = 0 WHERE vm_id = ? AND additional='n' " , $ this ->id );
107+ $ app ->db ->query ("UPDATE openvz_ip SET vm_id = ?, additional = 'n' WHERE ip_address = ? " , $ this ->id , $ this ->dataRecord ['ip_address ' ]);
108+ }
109+
110+ // Set additional IPs
111+ if (isset ($ this ->dataRecord ['additional_ip ' ])) {
112+ $ app ->db ->query ("UPDATE openvz_ip SET vm_id = 0, additional = 'n' WHERE (vm_id = ? AND additional='y') " , $ this ->id );
113+ foreach ($ this ->dataRecord ['additional_ip ' ] as $ idx => $ rec ) {
114+ $ app ->db ->query ("UPDATE openvz_ip SET vm_id = ?, additional = 'y' WHERE ip_address = ? " , $ this ->id , $ rec );
115+ }
100116 }
101117
102118 // Create the OpenVZ config file and store it in config field
@@ -195,6 +211,17 @@ private function makeOpenVZConfig() {
195211 $ hostname = str_replace ('{VEID} ' , $ vm ['veid ' ], $ vm ['hostname ' ]);
196212
197213 $ tpl ->setVar ('hostname ' , $ hostname );
214+
215+ $ additional_ips = $ app ->db ->queryAllRecords ("SELECT * FROM openvz_ip WHERE vm_id = ? " ,$ this ->id );
216+ if (isset ($ additional_ips )) {
217+ $ vm ['ip_address ' ]='' ;
218+ foreach ($ additional_ips as $ ip ) {
219+ $ vm ['ip_address ' ] .= " " .$ ip ['ip_address ' ];
220+ }
221+ $ vm ['ip_address ' ] = substr ($ vm ['ip_address ' ],1 );
222+ }
223+ $ tpl ->setVar ('ip_address ' , $ vm ['ip_address ' ]);
224+
198225 $ tpl ->setVar ('ip_address ' , $ vm ['ip_address ' ]);
199226 $ tpl ->setVar ('nameserver ' , $ vm ['nameserver ' ]);
200227 $ tpl ->setVar ('capability ' , $ vm ['capability ' ]);
0 commit comments