2015-08-27 21:06:07 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-28 11:01:36 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/*  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Copyright  ( C )  2015  Mark  Schouten  < mark @ tuxis . nl > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  program  is  free  software ;  you  can  redistribute  it  and / or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  modify  it  under  the  terms  of  the  GNU  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  as  published  by  the  Free  Software  Foundation ;  version  2  dated  June , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  1991. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  program  is  distributed  in  the  hope  that  it  will  be  useful , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  but  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .   See  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  GNU  General  Public  License  for  more  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  See  http :// www . gnu . org / licenses / gpl . txt  for  the  full  license 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-01 10:14:15 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Fetch  all  VM ' s  in  a  Proxmox  Cluster 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  string  $c  Clustername 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  array  An  array  with  all  the  VM ' s  on  this  cluster 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 20:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  proxmox_cluster_vms ( $c )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2015-08-27 21:06:07 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    return  dbFetchRows ( " SELECT * FROM proxmox WHERE cluster = ? ORDER BY vmid " ,  array ( $c )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-01 10:14:15 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Fetch  all  VM ' s  on  a  Proxmox  node 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  integer  $n  device_id 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  array  An  array  with  all  the  VM ' s  on  this  node 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 20:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  proxmox_node_vms ( $n )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2015-08-27 21:06:07 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    return  dbFetchRows ( " SELECT * FROM proxmox WHERE device_id = ? ORDER BY vmid " ,  array ( $n )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-01 10:14:15 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Fetch  all  info  about  a  Proxmox  VM 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  integer  $vmid  Proxmox  VM  ID 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ param  string  $c  Clustername 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ return  array  An  array  with  all  info  of  this  VM  on  this  cluster ,  including  ports 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-18 20:28:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  proxmox_vm_info ( $vmid ,  $c )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2015-08-27 21:06:07 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    $vm  =  dbFetchRow ( " SELECT pm.*, d.hostname AS host, d.device_id FROM proxmox pm, devices d WHERE pm.device_id = d.device_id AND pm.vmid = ? AND pm.cluster = ? " ,  array ( $vmid ,  $c )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $appid  =  dbFetchRow ( " SELECT app_id FROM applications WHERE device_id = ? AND app_type = ? " ,  array ( $vm [ 'device_id' ],  'proxmox' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $vm [ 'ports' ]  =  dbFetchRows ( " SELECT * FROM proxmox_ports WHERE vm_id = ? " ,  array ( $vm [ 'id' ])); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $vm [ 'app_id' ]  =  $appid [ 'app_id' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  $vm ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}