auto-sync

This commit is contained in:
olevole
2023-02-26 20:56:01 +03:00
parent a19e70e078
commit 726525a8ec
9 changed files with 140 additions and 111 deletions

View File

@@ -1,5 +1,4 @@
<?php
require_once("cbsd.php");
require_once('config.php');
require_once('localization.php');
@@ -1634,8 +1633,12 @@ class ClonOS {
function ccmd_srcRemove(){
$ver=str_replace('src','',$this->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(){

View File

@@ -1,5 +1,5 @@
{
"require": {
"sentry/sdk": "^3.2"
"sentry/sdk": "^3.3"
}
}

View File

@@ -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 {

View File

@@ -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='<datalist id="'.$id.'">';
$opts = $this->fetch_from_db($arr['link']);

View File

@@ -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;
}
}

View File

@@ -1,108 +1,97 @@
<?php
$html='';
$db=new Db('base','nodes');
$nodes=$db->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,
);
$included_result_array = [
'tbody' => str_replace(["\n","\r","\t"], '', $html),
'error' => false,
'func' => 'fillTable',
'id' => 'baseslist',
'tasks' => $tasks,
'template' => $html_tpl
];

View File

@@ -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('<span class="icon-cog"></span>', '', $html_tpl);

View File

@@ -53,3 +53,13 @@ $html.='<h1>Helper: '.$hash.'</h1>'.$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',
);
*/

View File

@@ -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;
}