$value) { switch ($var) { case "group": case "group_id": $values = get_group_entities($value); $sql .= generate_query_values_and($values, 'vm_id'); break; case 'device_group_id': case 'device_group': $values = get_group_entities($value, 'device'); $sql .= generate_query_values_and($values, 'device_id'); break; case "device": case "device_id": $sql .= generate_query_values_and($value, 'device_id'); break; case "os": $sql .= generate_query_values_and($value, 'vm_guestos'); break; case "state": $sql .= generate_query_values_and($value, 'vm_state'); break; case "memory": $sql .= generate_query_values_and($value, 'vm_memory'); break; case "cpu": $sql .= generate_query_values_and($value, 'vm_cpucount'); break; } } $sql .= $GLOBALS['cache']['where']['devices_permitted']; return $sql; } function print_vm_table_header($vars) { $stripe_class = "table-striped"; echo('' . PHP_EOL); $cols = array( // array(NULL, 'class="state-marker"'), // FIXME useful when we start polling VM status 'device' => array('Device', 'style="width: 250px;"'), 'name' => array('Name'), 'state' => array('State'), 'os' => array('Operating System'), 'memory' => array('Memory'), 'cpu' => array('CPU'), ); if ($vars['page'] == "device" || $vars['popup'] == TRUE ) { unset($cols['device']); } echo(get_table_header($cols, $vars)); echo('' . PHP_EOL); } function print_vm_table($vars) { $sql = generate_vm_query($vars); $vms = array(); foreach(dbFetchRows($sql) as $vm) { if (isset($GLOBALS['cache']['devices']['id'][$vm['device_id']])) { $vm['hostname'] = $GLOBALS['cache']['devices']['id'][$vm['device_id']]['hostname']; $vms[] = $vm; } } // Sorting // FIXME. Sorting can be as function, but in must before print_table_header and after get table from db switch ($vars['sort_order']) { case 'desc': $sort_order = SORT_DESC; $sort_neg = SORT_ASC; break; case 'reset': unset($vars['sort'], $vars['sort_order']); // no break here default: $sort_order = SORT_ASC; $sort_neg = SORT_DESC; } switch ($vars['sort']) { case 'name': $vms = array_sort_by($vms, 'vm_name', $sort_order, SORT_STRING); break; case 'os': $vms = array_sort_by($vms, 'vm_os', $sort_order, SORT_STRING); break; case 'state': $vms = array_sort_by($vms, 'vm_state', $sort_order, SORT_STRING); break; case 'memory': $vms = array_sort_by($vms, 'vm_memory', $sort_order, SORT_NUMERIC); break; case 'cpu': $vms = array_sort_by($vms, 'vm_cpucount', $sort_order, SORT_NUMERIC); break; default: // Not sorted } $vms_count = count($vms); // Pagination $pagination_html = pagination($vars, $vms_count); echo $pagination_html; if ($vars['pageno']) { $vms = array_chunk($vms, $vars['pagesize']); $vms = $vms[$vars['pageno'] - 1]; } // End Pagination echo generate_box_open(); print_vm_table_header($vars); foreach($vms as $vm) { print_vm_row($vm, $vars); } echo '
'; echo generate_box_close(); echo $pagination_html; } function print_vm_row($vm, $vars) { echo generate_vm_row($vm, $vars); } function generate_vm_row($vm, $vars) { global $config; $table_cols = "8"; $out = ''; // '; // FIXME useful when we start polling VM state if ($vars['page'] != "device" && $vars['popup'] != TRUE ) { $out .= '' . generate_device_link($vm) . ''; $table_cols++; } $out .= ''. generate_entity_link('virtualmachine', $vm) .''; $out .= ''. nicecase($vm['vm_state']) .''; switch ($vm['vm_guestos']) { case 'E: tools not installed': $out .= ' Unknown (VMware Tools not installed)'; break; case 'E: tools not running': $out .= ' Unknown (VMware Tools not running)'; break; case '': $out .= ' (Unknown)'; break; default: if (isset($config['vmware_guestid'][$vm['vm_guestos']])) { $out .= ' ' . $config['vmware_guestid'][$vm['vm_guestos']] . ''; } else { $out .= ' ' . $vm['vm_guestos'] . ''; } break; } $out .= ''. format_bi($vm['vm_memory'] * 1024 * 1024, 3, 3) .'B'; $out .= ''. $vm['vm_cpucount'] .''; $out .= ''; return $out; } // EOF