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