getDockerContainers() ?: []; $Allinfo = $DockerTemplates->getAllInfo(); $menu = []; foreach ($containers as $ct) { $name = $ct['Name']; $info = &$Allinfo[$name]; $id = $ct['Id']; $imageID = $ct['ImageId']; $is_autostart = $info['autostart'] ? 'true':'false'; $updateStatus = $info['updated']=='true'||$info['updated']=='undef' ? 'true':'false'; $running = $ct['Running'] ? 'true':'false'; $template = $info['template']; $webGui = html_entity_decode($info['url']); $support = html_entity_decode($info['Support']); $project = html_entity_decode($info['Project']); $menu[] = sprintf("addDockerContainerContext('%s','%s','%s',%s,%s,%s,'%s','%s','%s','%s');",addslashes($name),addslashes($imageID),addslashes($template),$running,$updateStatus,$is_autostart,addslashes($webGui),$id,addslashes($support),addslashes($project)); $shape = $ct['Running'] ? 'play':'square'; $status = $ct['Running'] ? 'started':'stopped'; $icon = $info['icon'] ?: '/plugins/dynamix.docker.manager/images/question.png'; echo "
"; echo "
"; echo "
"; echo "
"; echo "
$name
"; } } if (pgrep('libvirtd')!==false && ($display=='icons' || $display=='vms')) { $txt = '/boot/config/plugins/dynamix.vm.manager/userprefs.txt'; $vms = $lv->get_domains(); if (file_exists($txt)) { $prefs = parse_ini_file($txt); $sort = []; foreach ($vms as $vm) $sort[] = $prefs[$vm] ?? 999; array_multisort($sort,SORT_NUMERIC,$vms); } else { natsort($vms); } foreach ($vms as $vm) { $res = $lv->get_domain_by_name($vm); $uuid = libvirt_domain_get_uuid_string($res); $dom = $lv->domain_get_info($res); $id = $lv->domain_get_id($res); $state = $lv->domain_state_translate($dom['state']); $vncport = $lv->domain_get_vnc_port($res); $vnc = ''; if ($vncport > 0) { $wsport = $lv->domain_get_ws_port($res); $vnc = '/plugins/dynamix.vm.manager/vnc.html?autoconnect=true&host='.$_SERVER['HTTP_HOST'].'&port=&path=/wsproxy/'.$wsport.'/'; } else { $vncport = ($vncport < 0) ? "auto" : ""; } $template = $lv->_get_single_xpath_result($res, '//domain/metadata/*[local-name()=\'vmtemplate\']/@name'); if (empty($template)) $template = 'Custom'; $log = (is_file("/var/log/libvirt/qemu/$vm.log") ? "libvirt/qemu/$vm.log" : ''); $menu[] = sprintf("addVMContext('%s','%s','%s','%s','%s','%s');",addslashes($vm),addslashes($uuid),addslashes($template),$state,addslashes($vnc),addslashes($log)); $vmicon = $lv->domain_get_icon_url($res); echo renderVMContentIcon($uuid, $vm, $vmicon, $state); } } echo "\0".implode($menu);