]> git.nbdom.net Git - nb.git/commitdiff
lb
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Fri, 2 Dec 2016 16:55:11 +0000 (16:55 +0000)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Fri, 2 Dec 2016 16:55:11 +0000 (16:55 +0000)
etc/dbq/ui.php
lib/php/db/table.php
share/templates/hosts.php
share/templates/nginx-lb.php [new file with mode: 0644]

index 9ed515627dadae176d936a6080390bd111ba8da1..89dfc9a3af9fca4a44936a7ec4e8b358a012d198 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 #$GLOBALS['web'] = Db::p('extras')==='0' ? true : false;
-if (empty($DIR_SQLITE) or !file_exists('/opt/www/sem_ui/var/db/semantico.db')) return;
+if (empty($DIR_SQLITE)) return;
+#if (empty($DIR_SQLITE) or !file_exists('/opt/www/sem_ui/var/db/semantico.db')) return;
 $GLOBALS['web'] = true;
 if (Db::p('noextra')==='1') $GLOBALS['web'] = false;
 
@@ -169,6 +170,7 @@ $DBQ['ui'] = [
   'order' => (preg_match('/^(dev|isp|ist)/',php_uname('n')) ? 1 : null),
   #'order' => 1,
 ];
+return;
 $DBQ['ui-pgsql'] = [
   'host' => 'ui.semantico.net',
   'type' => 'pgsql',
index 705d5b95cd056742c7bc9da19ff0d13fbc231005..43e503b4db1a2a4b9a10f4c24798a5d53fd779e9 100644 (file)
@@ -1034,29 +1034,41 @@ Class Table extends nb {
     Template
   -----------------------------------------------------------------*/
   public function rows_begin_template($fields,&$o) {
-    if (empty($id) and !( $id=self::p('table.template.id') ) ) self::bye('Wrong parameter!');
+    $id = self::templateid();
 
     $id = preg_replace('/[^\w\._-]/','',$id);
 
     $file = TABLE_TEMPLATE.'/'.$id.'.php';
     if (!is_readable($file)) return false; #self::bye("Wrong id `$id`");
-    $o['file'] = $file;
-    $HEAD = array_keys($fields);
-    $ROWS = [];
-    $ROW = [];
-    require $o['file'];
+# NB 02.12.16     $o['file'] = $file;
+    $this->__file = $file;
+    $this->__fields = array_keys($fields);
+# NB 02.12.16     $HEAD = array_keys($fields);
+# NB 02.12.16     $ROWS = [];
+# NB 02.12.16     $ROW = [];
+# NB 02.12.16     require $o['file'];
   }
 
   public function rows_rec_template($row,&$o) {
-    $HEAD = [];
-    $ROWS = [$row];
-    $ROW = $row;
-    require $o['file'];
+    $i = 0;
+    foreach ($row as $k=>$v) {
+      $row[$i] = $v;
+      $i++;
+    }
+    $this->__rows[] = $row;
+# NB 02.12.16     $HEAD = [];
+# NB 02.12.16     $ROWS = [$row];
+# NB 02.12.16     $ROW = $row;
   }
 
   public function rows_end_template() {
+    $HEAD = &$this->__fields;
+    $ROWS = &$this->__rows;
+    $ROW = &$ROWS[0];;
+    require $this->__file;
     unset($this->__file);
     unset($this->__fields);
+    unset($this->__rows);
   }
 
   /*-----------------------------------------------------------------
@@ -1850,11 +1862,16 @@ Class Table extends nb {
     return $this->status;
   }
 
-  public function template($id=null) {
+  private static function templateid($id=null) {
     if (empty($id)
       and !( $id=self::p('table.template.id') )
       and !( $id=self::p('idtemplate') )
     ) self::bye('Wrong parameter!');
+    return $id;
+  }
+
+  public function template($id=null) {
+    $id = self::templateid($id);
 
     $id = preg_replace('/[^\w\._-]/','',$id);
 
index 47e33df14fdd4226453ec33e65b10aeecc0efbce..00232ce474328e5cd6ea54e3cd790914d923c0dd 100644 (file)
@@ -8,7 +8,9 @@ if (isset($ROWS)) foreach ($ROWS as $r) {
     'addr',
     'address',
   ] as $k) {
-    if (isset($r[$k])) $line[] = $r[$k];
+    if (!isset($r[$k])) continue;
+    $line[] = $r[$k];
+    break;
   }
 
   foreach ([
@@ -17,7 +19,9 @@ if (isset($ROWS)) foreach ($ROWS as $r) {
     'name',
     'id',
   ] as $k) {
-    if (isset($r[$k])) $line[] = $r[$k];
+    if (!isset($r[$k])) continue;
+    $line[] = $r[$k];
+    break;
   }
 
   if (count($line)==2) echo join(' ',$line)."\n";
diff --git a/share/templates/nginx-lb.php b/share/templates/nginx-lb.php
new file mode 100644 (file)
index 0000000..3c49d93
--- /dev/null
@@ -0,0 +1,26 @@
+<?php
+# NB 02.12.16: Nginx LB 
+if (!isset($ROWS)) continue;
+$lb = [];
+foreach ($ROWS as $r) {
+  $lb[$r[0]][] = $r[1];
+  $name = $r[0];
+  $server = $r[1];
+  continue;
+  foreach ([
+    'hostname',
+    'host',
+    'name',
+    'id',
+  ] as $k) {
+    if (!isset($r[$k])) continue;
+    break;
+  }
+}
+foreach ($lb as $name => $servers) {
+  echo "upstream $name {\n";
+  foreach ($servers as $server) {
+    echo "  server $server;\n";
+  }
+  echo "}\n";
+}