From 726525a8ec42a85a9c4152e4e51b50ff92453c52 Mon Sep 17 00:00:00 2001 From: olevole Date: Sun, 26 Feb 2023 20:56:01 +0300 Subject: [PATCH] auto-sync --- php/clonos.php | 37 ++++-- php/composer.json | 2 +- php/db.php | 2 +- php/forms.php | 2 +- public/pages/authkey/a.json.php | 10 +- public/pages/bases/a.json.php | 175 ++++++++++++------------- public/pages/bhyvevms/a.json.php | 6 +- public/pages/instance_jail/helpers.php | 10 ++ public/upload.php | 7 +- 9 files changed, 140 insertions(+), 111 deletions(-) diff --git a/php/clonos.php b/php/clonos.php index 959c188c..5be50b8d 100644 --- a/php/clonos.php +++ b/php/clonos.php @@ -1,5 +1,4 @@ formform['jname']); if(empty($ver)) return array('error'=>true,'errorMessage'=>'Version of sources is emtpy!'); +// return CBSD::run( +// 'task owner='.$username.' mode=new {cbsd_loc} removesrc inter=0 ver=%s jname=#src%s', +// array($this->_user_info['username'], $ver, $ver) +// ); return CBSD::run( - 'task owner='.$username.' mode=new {cbsd_loc} removesrc inter=0 ver=%s jname=#src%s', + 'task owner='.$username.' mode=new {cbsd_loc} removesrc inter=0 ver=%s jname=src%s', array($this->_user_info['username'], $ver, $ver) ); } @@ -1644,8 +1647,12 @@ class ClonOS { $ver=str_replace('src','',$this->form['jname']); $stable=(preg_match('#\.\d#',$ver))?0:1; if(empty($ver)) return array('error'=>true,'errorMessage'=>'Version of sources is emtpy!'); +// return CBSD::run( +// 'task owner=%s mode=new {cbsd_loc} srcup stable=%s inter=0 ver=%s jname=#src%s', +// array($this->_user_info['username'], $stable, $ver, $ver) +// ); return CBSD::run( - 'task owner=%s mode=new {cbsd_loc} srcup stable=%s inter=0 ver=%s jname=#src%s', + 'task owner=%s mode=new {cbsd_loc} srcup stable=%s inter=0 ver=%s jname=src%s', array($this->_user_info['username'], $stable, $ver, $ver) ); } @@ -1692,11 +1699,25 @@ class ClonOS { $ver=$res[1]; $arch=$res[2]; $stable=$res[3]; - - return $this->CBSD::run( - 'task owner=%s mode=new {cbsd_loc} removebase inter=0 stable=%s ver=%s arch=%s jname=#%s', - array($this->_user_info['username'], $stable, $ver, $arch, $this->form['jname']) - ); + + $username=$this->_user_info['username']; + + $remove_cmd="task owner={$username} mode=new /usr/local/bin/cbsd removebase inter=0 stable={$stable} ver={$ver} arch={$arch} jname=#".$this->form['jname']; + + Utils::clonos_syslog("cmd.php removeBase cmd:". $remove_cmd); + +// return $this->CBSD::run( +// 'task owner=%s mode=new {cbsd_loc} removebase inter=0 stable=%s ver=%s arch=%s jname=#%s', +// array($this->_user_info['username'], $stable, $ver, $arch, $this->form['jname']) +// ); +// $res=CBSD::run('task owner=%s mode=new {cbsd_loc} removebase inter=0 stable=%s ver=%s arch=%s jname=#%s',array($this->_user_info['username'], $stable, $ver, $arch, $this->form['jname'])); + $res=CBSD::run('task owner=%s mode=new {cbsd_loc} removebase inter=0 stable=%s ver=%s arch=%s jname=%s',array($this->_user_info['username'], $stable, $ver, $arch, $this->form['jname'])); + + return $res; + +// return $this->CBSD::run('task owner=%s mode=new {cbsd_loc} removebase inter=0 stable=%s ver=%s arch=%s jname=#%s',array($this->_user_info['username'], $stable, $ver, $arch, $this->form['jname'])); +// return $this->CBSD::run('task owner={$username} mode=new {cbsd_loc} removebase inter=0 stable=%s ver=%s arch=%s jname=#%s',array($this->_user_info['username'], $stable, $ver, $arch, $this->form['jname'])); +// return $this->CBSD::run($remove_cmd); } function ccmd_basesCompile(){ diff --git a/php/composer.json b/php/composer.json index fed0d075..57f893e2 100644 --- a/php/composer.json +++ b/php/composer.json @@ -1,5 +1,5 @@ { "require": { - "sentry/sdk": "^3.2" + "sentry/sdk": "^3.3" } } diff --git a/php/db.php b/php/db.php index 485db1ed..a175ebeb 100644 --- a/php/db.php +++ b/php/db.php @@ -56,7 +56,7 @@ class Db { break; case 'helper': if(is_array($database)){ - ///usr/jails/jails-system/cbsdpuppet1/helpers/redis.sqlite + //usr/jails/jails-system/cbsdpuppet1/helpers/redis.sqlite $file_name=$this->_workdir.'/jails-system/'.$database['jname'].'/helpers/'.$database['helper'].".sqlite"; $connect='sqlite:'.$file_name; } else { diff --git a/php/forms.php b/php/forms.php index f1853c2c..543d948c 100644 --- a/php/forms.php +++ b/php/forms.php @@ -176,7 +176,7 @@ class Forms function getInputAutofill($arr) { - if(isset($arr['link'])){ + if(isset($arr['link']) && $arr['link']!=''){ $id=$arr['link']; //$arr['param'].'-'. $tpl=''; $opts = $this->fetch_from_db($arr['link']); diff --git a/public/pages/authkey/a.json.php b/public/pages/authkey/a.json.php index d794ac33..8a8e1b6e 100644 --- a/public/pages/authkey/a.json.php +++ b/public/pages/authkey/a.json.php @@ -3,6 +3,8 @@ $db = new Db('base','authkey'); $res = $db->select('SELECT idx,name,authkey FROM authkey;', []); $html = ''; +$html_tpl = ''; + if($res !== false){ $nth = 0; @@ -18,11 +20,13 @@ if($res !== false){ 'keysrc' => $item['authkey'], 'deltitle' => ' title="'.$this->translate('Delete').'"' ]; - + + $html_tpl=$hres[1]; + foreach($vars as $var => $val){ - $html_tmp = str_replace('#'.$var.'#', $val, $hres[1]); + $html_tpl = str_replace('#'.$var.'#', $val, $html_tpl); } - $html .= $html_tmp; + $html .= $html_tpl; } } diff --git a/public/pages/bases/a.json.php b/public/pages/bases/a.json.php index bab8a334..5676ef11 100644 --- a/public/pages/bases/a.json.php +++ b/public/pages/bases/a.json.php @@ -1,108 +1,97 @@ select('select nodename,ip from nodelist order by nodename desc', []); -$nodes[]=array('nodename'=>'local'); -$nodes=array_reverse($nodes); +$db = new Db('base','nodes'); +$nodes = $db->select('select nodename,ip from nodelist order by nodename desc', []); +$nodes[] = ['nodename' => 'local']; +$nodes = array_reverse($nodes); -$ids=array(); -$nth=0; -$hres=$this->getTableChunk('baseslist','tbody'); -if(!empty($nodes))foreach($nodes as $node) -{ - $db1=new Db('base',$node['nodename']); - if($db1!==false) - { - $bases=$db1->select("SELECT idx,platform,name,arch,targetarch,ver,stable,elf,date FROM bsdbase order by cast(ver AS int)", []); - - $num=$nth & 1; - if(!empty($bases)) foreach($bases as $base) - { - $idle=1; - //print_r($node);exit; - if($node['nodename']!='local') - { - $idle=$this->check_locktime($node['ip']); +$ids = []; +$nth = 0; +$html = ''; +$html_tpl = ''; +$hres = $this->getTableChunk('baseslist','tbody'); + + +foreach($nodes as $node){ + + $db1 = new Db('base', $node['nodename']); + if(!$db1->error){ + + $bases = $db1->select("SELECT idx,platform,name,arch,targetarch,ver,stable,elf,date FROM bsdbase order by cast(ver AS int)", []); + $num = $nth & 1; + + foreach($bases as $base){ + + Utils::clonos_syslog("bases a.json.php base loop: base id=". $base['idx']); + $idle = 1; + if($node['nodename'] != 'local'){ + $idle = $this->check_locktime($node['ip']); } + + $ids[] = $base['idx']; + $id = 'base'.$base['ver'].'-'.$base['arch'].'-'.$base['stable']; - $ids[]=$base['idx']; - $id='base'.$base['ver'].'-'.$base['arch'].'-'.$base['stable']; - - if($hres!==false) - { - $html_tpl=$hres[1]; - $vars=array( - 'id'=>$id, - 'nth-num'=>'nth'.$num, - 'node'=>$node['nodename'], - 'name'=>$base['name'], - 'platform'=>$base['platform'], - 'arch'=>$base['arch'], - 'targetarch'=>$base['targetarch'], - 'version'=>$base['ver'], - 'version1'=>($base['stable']==1)?'stable':'release', - 'elf'=>$base['elf'], - 'date'=>$base['date'], - 'jstatus'=>'', - 'maintenance'=>($idle==0)?' maintenance':'', - 'deltitle'=>$this->translate('Delete'), - ); - - foreach($vars as $var=>$val) - $html_tpl=str_replace('#'.$var.'#',$val,$html_tpl); - - $html.=$html_tpl; + if($hres !== false){ + $vars = [ + 'id' => $id, + 'nth-num' => 'nth'.$num, + 'node' => $node['nodename'], + 'name' => $base['name'], + 'platform' => $base['platform'], + 'arch' => $base['arch'], + 'targetarch' => $base['targetarch'], + 'version' => $base['ver'], + 'version1' => ($base['stable']==1) ? 'stable' : 'release', + 'elf' => $base['elf'], + 'date' => $base['date'], + 'jstatus' => '', + 'maintenance' => ($idle == 0) ? ' maintenance' : '', + 'deltitle' => $this->translate('Delete') + ]; + + Utils::clonos_syslog("bases a.json.php base loop: hres != false: ". implode(",", $vars)); + $html_tpl=$hres[1]; + + foreach($vars as $var => $val){ + Utils::clonos_syslog("bases a.json.php replace [#".$var."#] by val: ".$val." hres = ". $hres[1]); + $html_tpl = str_replace('#'.$var.'#', $val, $html_tpl); +// $html .= $html_tpl; + Utils::clonos_syslog("bases a.json.php replace result: ".$html_tpl); + } + $html .= $html_tpl; } - - //$ids[]='#base'.$bid; + $ids[]='#'.$id; } - $nth++; } } -$html=str_replace(array("\n","\r","\t"),'',$html); +$tasks = (empty($ids)) ? '' : $tasks = $this->getRunningTasks($ids); -$tasks=''; -if(!empty($ids)) -{ - $tasks=$this->getRunningTasks($ids); +if($hres !== false){ + $html_tpl = str_replace(["\n","\r","\t"], '', $hres[1]); + $vars = [ + 'nth-num' => 'nth0', + 'status' => '', + //'jstatus' => $this->translate('Updating'), + //'icon' => 'spin6 animate-spin', + 'desktop' => ' s-off', + 'maintenance' => ' maintenance busy', + 'updtitle' => $this->translate('Update'), + 'deltitle' => $this->translate('Delete') + ]; + + foreach($vars as $var => $val){ + $html_tpl = str_replace('#'.$var.'#', $val, $html_tpl); + } } -$html_tpl=str_replace(array("\n","\r","\t"),'',$hres[1]); -if($hres!==false) -{ - $vars=array( - 'nth-num'=>'nth0', - 'status'=>'', - //'jstatus'=>$this->translate('Updating'), - //'icon'=>'spin6 animate-spin', - 'desktop'=>' s-off', - 'maintenance'=>' maintenance busy', - 'updtitle'=>$this->translate('Update'), - 'deltitle'=>$this->translate('Delete'), - ); - - foreach($vars as $var=>$val) - $html_tpl=str_replace('#'.$var.'#',$val,$html_tpl); -} -/* -echo json_encode(array( - 'tbody'=>$html, - 'error'=>false, - 'func'=>'fillTable', - 'id'=>'baseslist', - 'tasks'=>$tasks, - 'template'=>$html_tpl, -)); -*/ -$included_result_array=array( - 'tbody'=>$html, - 'error'=>false, - 'func'=>'fillTable', - 'id'=>'baseslist', - 'tasks'=>$tasks, - 'template'=>$html_tpl, -); \ No newline at end of file +$included_result_array = [ + 'tbody' => str_replace(["\n","\r","\t"], '', $html), + 'error' => false, + 'func' => 'fillTable', + 'id' => 'baseslist', + 'tasks' => $tasks, + 'template' => $html_tpl +]; \ No newline at end of file diff --git a/public/pages/bhyvevms/a.json.php b/public/pages/bhyvevms/a.json.php index 4fe8645b..7bdb3a6b 100644 --- a/public/pages/bhyvevms/a.json.php +++ b/public/pages/bhyvevms/a.json.php @@ -66,9 +66,11 @@ foreach($nodes as $node){ 'vnc_port' => $vnc_port, 'vnc_port_status' => $vnc_port_status ]; - + + $html_tpl=$hres[1]; + foreach($vars as $var => $val){ - $html_tpl = str_replace('#'.$var.'#', $val, $hres[1]); + $html_tpl = str_replace('#'.$var.'#', $val, $html_tpl); } if($node != 'local'){ $html_tpl = str_replace('', '', $html_tpl); diff --git a/public/pages/instance_jail/helpers.php b/public/pages/instance_jail/helpers.php index d1f5d622..c3b4cf0f 100644 --- a/public/pages/instance_jail/helpers.php +++ b/public/pages/instance_jail/helpers.php @@ -53,3 +53,13 @@ $html.='

Helper: '.$hash.'

'.$res_html; // Undefined property: ClonOS::$html in /usr/local/www/clonos/public/pages/instance_jail/helpers.php on line 49 //return array('html'=>$this->html); echo json_encode(array('html'=>$html,'func'=>'fillTab')); + +/* +$included_result_array=array( + 'tbody'=>$html, + 'error'=>false, + 'func'=>'fillTable', + 'id'=>'instanceslist', +); +*/ + diff --git a/public/upload.php b/public/upload.php index 9d3d39de..a174a7a8 100644 --- a/public/upload.php +++ b/public/upload.php @@ -24,8 +24,11 @@ if($_SERVER['REQUEST_METHOD'] === 'POST'){ // https://www.php.net/manual/en/features.file-upload.php // Undefined | Multiple Files | $_FILES Corruption Attack // If this request falls under any of them, treat it invalid. - if (!isset($_FILES['file']['error']) || is_array($_FILES['file']['error'])) { - echo json_encode( array( 'status'=>'Upload Fail: An error occurred!')); + if ( + !isset($_FILES['file']['error']) || + is_array($_FILES['file']['error']) + ) { + echo json_encode(array('status' => 'Upload Fail: An error occurred!';)); exit; }