From 216bc0dd1be3791143a8a1cc95ce6dcfb70efab6 Mon Sep 17 00:00:00 2001
From: Joe Oblivian <0blivian@insiberia.net>
Date: Tue, 1 Nov 2011 09:57:13 +0100
Subject: [PATCH] added the mapping file

---
 wp-nginx-map.php | 53 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 wp-nginx-map.php

diff --git a/wp-nginx-map.php b/wp-nginx-map.php
new file mode 100644
index 000000000..f8edaa29a
--- /dev/null
+++ b/wp-nginx-map.php
@@ -0,0 +1,53 @@
+<?php
+
+// wp-nginx-map.php
+//
+// Stampa una mappa delle assegnazioni blog -> backend, per NGINX.
+
+
+// Load wordpress api.
+define('WP_CACHE',false);
+require_once('/opt/noblogs/www/wp-load.php');
+
+// Return all blogs.
+function get_blogs() {
+  global $wpdb;
+  $sql = "SELECT blog_id, domain FROM $wpdb->blogs WHERE deleted = 0 AND archived = '0' ORDER BY domain ASC";
+  $result = $wpdb->get_results($sql);
+  return ($result);  
+}
+
+function printline($s) {
+  echo $s . "\n";
+}
+
+function backend_to_http_endpoint($backend) {
+  if (substr($backend, 0, 8) != 'backend_') {
+    error_log('diamine, di questo backend non so che farmene: ' . $backend);
+    return 'localhost:82';
+  }
+  $id = substr($backend, 8);
+  return '172.16.1.' . $id . ':82';
+}
+
+// Print the blog -> backend map.
+function generate_map() {
+  global $wpdb;
+  $wpdb_hash = &$wpdb->hash_map;
+
+  $blogs = get_blogs();
+
+  printline('map $http_host $backend_noblogs {');
+  printline(' default http://localhost:82;');
+  foreach ($blogs as $blog) {
+    $blog_id = $blog->blog_id;
+    $backend_id = $wpdb_hash->lookup($blog_id);
+    $backend_http = backend_to_http_endpoint($backend_id);
+    printline(' ' . $blog->domain . ' http://' . $backend_http . ';');
+  }
+  printline('}');
+}
+
+
+generate_map();
+
-- 
GitLab