Yuvipanda has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/185914

Change subject: Allow public dbs to be ignored
......................................................................

Allow public dbs to be ignored

Useful for running against  sanitarium

Change-Id: I6d54c70590e8d7f1a51b8f0003c301124f7e3fb1
---
M labsdb/auditor/audit.py
M labsdb/auditor/models.py
M labsdb/auditor/runner.py
3 files changed, 29 insertions(+), 32 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/software/labsdb-auditor 
refs/changes/14/185914/1

diff --git a/labsdb/auditor/audit.py b/labsdb/auditor/audit.py
index d49fa5a..ea73f01 100644
--- a/labsdb/auditor/audit.py
+++ b/labsdb/auditor/audit.py
@@ -32,6 +32,7 @@
 from runner import ReportRunner
 from reports.databases import databases_report
 from labsdb.auditor.reports.tables import extra_tables_report
+from labsdb.auditor.models import Model, Table
 from reports.viewdiffs import views_schema_diff_report
 
 
@@ -41,6 +42,7 @@
 argparser.add_argument('--output-file-path', help='Path to report output 
file', default='report.yaml')
 argparser.add_argument('--log-file-path', help='Path to log file', 
default='audit.log')
 argparser.add_argument('--debug', action='store_true', help='Turn on debug 
logging')
+argparser.add_argument('--ignore-public-dbs', action='store_true', 
help='Ignore public dbs (useful for running against sanitarium)')
 
 args = argparser.parse_args()
 
@@ -53,7 +55,28 @@
                     format='%(asctime)s: %(message)s'
                     )
 
-rr = ReportRunner(config)
+# Load up the model
+tables = {}
+for ts_path in config['tableschema-files']:
+    with open(ts_path) as ts:
+        tableschema = yaml.load(ts)
+    for tablename, tabledict in tableschema.items():
+        tables[tablename] = Table.from_dict(tablename, tabledict)
+
+all_dblist_path = os.path.join(mwconf_path, 'all.dblist')
+private_dblist_path = os.path.join(mwconf_path, 'private.dblist')
+
+with open(all_dblist_path) as all_file, open(private_dblist_path) as priv_file:
+    all_wiki_dbs = [l.strip() for l in all_file.readlines()]
+    priv_wiki_dbs = [l.strip() for l in priv_file.readlines()]
+    dbs, _ = diff_iters(all_wiki_dbs, priv_wiki_dbs)
+
+private_dbs = dbs
+public_dbs = [db + '_p' for db in private_dbs] if not args.ignore_public_dbs 
else []
+
+model = Model(private_dbs, public_dbs, tables)
+
+rr = ReportRunner(config, model)
 
 rr.register_report(databases_report)
 rr.register_report(extra_tables_report)
diff --git a/labsdb/auditor/models.py b/labsdb/auditor/models.py
index 7dd4720..0e0b7e9 100644
--- a/labsdb/auditor/models.py
+++ b/labsdb/auditor/models.py
@@ -98,34 +98,8 @@
         - List of dbs that should exist (list)
         - List of tables that can exist in any db (dict with tablename as key)
     """
-    def __init__(self, dblist, tables):
-        self.private_dbs = dblist
-        self.public_dbs = [db + '_p' for db in dblist]
+    def __init__(self, private_dbs, public_dbs, tables):
+        self.private_dbs = private_dbs
+        self.public_dbs = public_dbs
         self.tables = tables
 
-    @classmethod
-    def from_config(cls, tableschema_files, mwconf_path):
-        """
-        Creates a Model from a given config
-
-        Reads table schema from schema files and sets up appropriate tables.
-        Reads dblists from mediawiki-config repo
-        :param tableschema_files: List of files to read table schema from
-        :param mwconf_path: Path to check out of mediawiki-config repository
-        """
-        tables = {}
-        for ts_path in tableschema_files:
-            with open(ts_path) as ts:
-                tableschema = yaml.load(ts)
-            for tablename, tabledict in tableschema.items():
-                tables[tablename] = Table.from_dict(tablename, tabledict)
-
-        all_dblist_path = os.path.join(mwconf_path, 'all.dblist')
-        private_dblist_path = os.path.join(mwconf_path, 'private.dblist')
-
-        with open(all_dblist_path) as all_file, open(private_dblist_path) as 
priv_file:
-            all_dbs = [l.strip() for l in all_file.readlines()]
-            priv_dbs = [l.strip() for l in priv_file.readlines()]
-            dbs, _ = diff_iters(all_dbs, priv_dbs)
-
-        return cls(dbs, tables)
diff --git a/labsdb/auditor/runner.py b/labsdb/auditor/runner.py
index 3354de3..56ecb61 100644
--- a/labsdb/auditor/runner.py
+++ b/labsdb/auditor/runner.py
@@ -22,8 +22,8 @@
     """
     Runs a set of reports!
     """
-    def __init__(self, config):
-        self.model = Model.from_config(config['tableschema-files'], 
config['mediawiki-config-path'])
+    def __init__(self, config, model):
+        self.model = model
         self.config = config
         self._reporters = {}
 

-- 
To view, visit https://gerrit.wikimedia.org/r/185914
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6d54c70590e8d7f1a51b8f0003c301124f7e3fb1
Gerrit-PatchSet: 1
Gerrit-Project: operations/software/labsdb-auditor
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to