Merlijn van Deen has submitted this change and it was merged. Change subject: Rename some date model keys to be clearer ......................................................................
Rename some date model keys to be clearer - Remove 'replacewith', since we will replace everything with only SQL 'NULL' - 'condition' in the columns becomes 'null_if' since replacewith is no longer a thing, and 'null_if' makes it clearer that we are nulling columns if this is true, rather than false. - 'where' in the table defintion becomes 'include_row_if', which makes it extremely clear what exactly it does. Change-Id: I892f0ba4e6fa2db25696f1b7922f1e7c44630466 --- M auditor/models.py M auditor/reports/viewdiffs.py M greylisted.yaml 3 files changed, 103 insertions(+), 109 deletions(-) Approvals: Merlijn van Deen: Verified; Looks good to me, approved diff --git a/auditor/models.py b/auditor/models.py index af4131c..5d5cd92 100644 --- a/auditor/models.py +++ b/auditor/models.py @@ -24,7 +24,7 @@ """ A column that is potentially conditionally or unconditionally nulled """ - def __init__(self, name, whitelisted=True, condition=None, replacewith=None): + def __init__(self, name, whitelisted=True, null_if=None): """ A column in a table that can be whitelisted or conditionally nulled @@ -32,23 +32,22 @@ :param name: Name of this column :param whitelisted: True if the column is whitelisted - :param condition: Conditions under which this column is replaced. - Specified as a string that is valid SQL expression - :param replacewith: What to replace the column's value with if condition is matched - If set to None with whitelisted = False, implies SQL None + :param null_if: Conditions under which this column is nulled. + Specified as a string that is valid SQL expression. + If set to None & whitelisted=False, then nulled all the time + :return: """ self.name = name self.whitelisted = whitelisted - self.condition = condition - self.replacewith = replacewith + self.null_if = null_if class Table(object): - def __init__(self, name, columns={}, where=None, table_name=None): + def __init__(self, name, columns={}, include_row_if=None, table_name=None): self.name = name self.columns = columns - self.where = where + self.include_row_if = include_row_if self.table_name = table_name if table_name else name def add_column(self, column): @@ -60,8 +59,8 @@ Convert Table to a minimal dict from which it can be reconstituted """ tabledict = {} - if self.where: - tabledict['where'] = self.where + if self.include_row_if: + tabledict['include_row_if'] = self.include_row_if if all([c.whitelisted for c in self.columns.values()]): # Everything is whitelisted! tabledict['columns'] = [c.name for c in self.columns] @@ -70,10 +69,8 @@ for c in self.columns.values(): columndict = {} columndict['whitelisted'] = c.whitelisted - if c.condition: - columndict['condition'] = c.condition - if c.replacewith: - columndict['replacewith'] = c.replacewith + if c.null_if: + columndict['null_if'] = c.null_if tabledict['columns'][c.name] = columndict if self.table_name != self.name: tabledict['table_name'] = self.table_name @@ -81,7 +78,7 @@ @classmethod def from_dict(cls, tablename, tabledata): - table = cls(tablename, {}, tabledata.get('where', None), tabledata.get('table_name', None)) + table = cls(tablename, {}, tabledata.get('include_row_if', None), tabledata.get('table_name', None)) if isinstance(tabledata['columns'], list): # Whitelisted table for colname in tabledata['columns']: @@ -89,10 +86,7 @@ else: # Greylisted table! for colname, coldata in tabledata['columns'].items(): - col = Column(colname, - whitelisted=coldata.get('whitelisted'), - condition=coldata.get('condition'), - replacewith=coldata.get('replacewith')) + col = Column(colname, coldata.get('whitelisted'), coldata.get('null_if')) table.add_column(col) return table diff --git a/auditor/reports/viewdiffs.py b/auditor/reports/viewdiffs.py index e9e91d0..6bd800c 100644 --- a/auditor/reports/viewdiffs.py +++ b/auditor/reports/viewdiffs.py @@ -33,11 +33,11 @@ def diff_columns(expected, actual): - return _diff(expected, actual, ('name', 'whitelisted', 'condition', 'replacewith')) + return _diff(expected, actual, ('name', 'whitelisted', 'null_if')) def diff_tables(expected, actual): - table_diff = _diff(expected, actual, ('name', 'where', 'table_name')) + table_diff = _diff(expected, actual, ('name', 'include_row_if', 'table_name')) missing_cols, extra_cols = diff_iters(expected.columns, actual.columns) common_columns = common_iters(actual.columns, expected.columns) column_diffs = {} @@ -87,11 +87,11 @@ # Where cond is a valid SQL relational expression, column-name, wikiname, tablename are strings identifier = alphanums + "_" -if_definition = "if(" + SkipTo(",")("condition") + "," + Word(identifier) + "," + Word(identifier) + ")" +if_definition = "if(" + SkipTo(",")("null_if") + "," + Word(identifier) + "," + Word(identifier) + ")" column_definition = (if_definition ^ Word(identifier)('expression')) + "AS" + Word(identifier)("name") + Optional(",") sql_definition = "select" + OneOrMore(column_definition)("columns") + \ "from" + Word(identifier) + "." + Word(identifier)("tablename") + \ - Optional("where" + SkipTo(StringEnd())("where")) + StringEnd() + Optional("where" + SkipTo(StringEnd())("include_row_if")) + StringEnd() def _table_from_definer(sql, viewname): @@ -99,11 +99,11 @@ Build a Table object given a cleaned up SQL statement that defines the view """ res = sql_definition.parseString(sql) - table = Table(viewname, {}, res.where if res.where else None, res.tablename) + table = Table(viewname, {}, res.include_row_if if res.include_row_if else None, res.tablename) for tokens, start, end in column_definition.scanString(sql): table.add_column(Column(tokens.name, - whitelisted=tokens.condition == '' and tokens.expression != 'NULL', - condition=tokens.condition if tokens.condition else None)) + whitelisted=tokens.null_if == '' and tokens.expression != 'NULL', + null_if=tokens.null_if if tokens.null_if else None)) return table diff --git a/greylisted.yaml b/greylisted.yaml index 8b0af0b..e0c04d4 100644 --- a/greylisted.yaml +++ b/greylisted.yaml @@ -3,7 +3,7 @@ af_actions: whitelisted: true af_comments: - condition: af_hidden + null_if: af_hidden whitelisted: false af_deleted: whitelisted: true @@ -20,7 +20,7 @@ af_id: whitelisted: true af_pattern: - condition: af_hidden + null_if: af_hidden whitelisted: false af_public_comments: whitelisted: true @@ -153,7 +153,7 @@ ar_id: whitelisted: true ar_len: - condition: (ar_deleted & 1) + null_if: (ar_deleted & 1) whitelisted: false ar_minor_edit: whitelisted: true @@ -166,22 +166,22 @@ ar_rev_id: whitelisted: true ar_sha1: - condition: (ar_deleted & 1) + null_if: (ar_deleted & 1) whitelisted: false ar_text: whitelisted: false ar_text_id: - condition: (ar_deleted & 1) + null_if: (ar_deleted & 1) whitelisted: false ar_timestamp: whitelisted: true ar_title: whitelisted: true ar_user: - condition: (ar_deleted & 4) + null_if: (ar_deleted & 4) whitelisted: false ar_user_text: - condition: (ar_deleted & 4) + null_if: (ar_deleted & 4) whitelisted: false archive_userindex: table_name: archive @@ -195,7 +195,7 @@ ar_id: whitelisted: true ar_len: - condition: (ar_deleted & 1) + null_if: (ar_deleted & 1) whitelisted: false ar_minor_edit: whitelisted: true @@ -208,12 +208,12 @@ ar_rev_id: whitelisted: true ar_sha1: - condition: (ar_deleted & 1) + null_if: (ar_deleted & 1) whitelisted: false ar_text: whitelisted: false ar_text_id: - condition: (ar_deleted & 1) + null_if: (ar_deleted & 1) whitelisted: false ar_timestamp: whitelisted: true @@ -223,13 +223,13 @@ whitelisted: true ar_user_text: whitelisted: true - where: ((ar_deleted & 4) = 0) + include_row_if: ((ar_deleted & 4) = 0) filearchive: columns: fa_archive_name: whitelisted: true fa_bits: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_deleted: whitelisted: true @@ -240,32 +240,32 @@ fa_deleted_user: whitelisted: true fa_description: - condition: (fa_deleted & 2) + null_if: (fa_deleted & 2) whitelisted: false fa_height: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_id: whitelisted: true fa_major_mime: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_media_type: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_metadata: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_minor_mime: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_name: whitelisted: true fa_sha1: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_size: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_storage_group: whitelisted: true @@ -274,13 +274,13 @@ fa_timestamp: whitelisted: true fa_user: - condition: (fa_deleted & 4) + null_if: (fa_deleted & 4) whitelisted: false fa_user_text: - condition: (fa_deleted & 4) + null_if: (fa_deleted & 4) whitelisted: false fa_width: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false filearchive_userindex: table_name: filearchive @@ -288,7 +288,7 @@ fa_archive_name: whitelisted: true fa_bits: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_deleted: whitelisted: true @@ -299,32 +299,32 @@ fa_deleted_user: whitelisted: true fa_description: - condition: (fa_deleted & 2) + null_if: (fa_deleted & 2) whitelisted: false fa_height: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_id: whitelisted: true fa_major_mime: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_media_type: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_metadata: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_minor_mime: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_name: whitelisted: true fa_sha1: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_size: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false fa_storage_group: whitelisted: true @@ -337,13 +337,13 @@ fa_user_text: whitelisted: true fa_width: - condition: (fa_deleted & 1) + null_if: (fa_deleted & 1) whitelisted: false - where: ((fa_deleted & 4) = 0) + include_row_if: ((fa_deleted & 4) = 0) ipblocks: columns: ipb_address: - condition: (ipb_auto <> 0) + null_if: (ipb_auto <> 0) whitelisted: false ipb_allow_usertalk: whitelisted: true @@ -370,10 +370,10 @@ ipb_parent_block_id: whitelisted: true ipb_range_end: - condition: (ipb_auto <> 0) + null_if: (ipb_auto <> 0) whitelisted: false ipb_range_start: - condition: (ipb_auto <> 0) + null_if: (ipb_auto <> 0) whitelisted: false ipb_reason: whitelisted: true @@ -381,7 +381,7 @@ whitelisted: true ipb_user: whitelisted: true - where: (ipb_deleted = 0) + include_row_if: (ipb_deleted = 0) ipblocks_ipindex: table_name: ipblocks columns: @@ -421,49 +421,49 @@ whitelisted: true ipb_user: whitelisted: true - where: ((ipb_deleted = 0) and (ipb_auto = 0)) + include_row_if: ((ipb_deleted = 0) and (ipb_auto = 0)) logging: columns: log_action: - condition: (log_deleted & 1) + null_if: (log_deleted & 1) whitelisted: false log_comment: - condition: (log_deleted & 2) + null_if: (log_deleted & 2) whitelisted: false log_deleted: whitelisted: true log_id: whitelisted: true log_namespace: - condition: (log_deleted & 1) + null_if: (log_deleted & 1) whitelisted: false log_page: - condition: (log_deleted & 1) + null_if: (log_deleted & 1) whitelisted: false log_params: - condition: log_deleted + null_if: log_deleted whitelisted: false log_timestamp: whitelisted: true log_title: - condition: (log_deleted & 1) + null_if: (log_deleted & 1) whitelisted: false log_type: whitelisted: true log_user: - condition: (log_deleted & 4) + null_if: (log_deleted & 4) whitelisted: false log_user_text: - condition: (log_deleted & 4) + null_if: (log_deleted & 4) whitelisted: false - where: (log_type <> 'suppress') + include_row_if: (log_type <> 'suppress') logging_logindex: table_name: logging columns: log_action: whitelisted: true log_comment: - condition: (log_deleted & 2) + null_if: (log_deleted & 2) whitelisted: false log_deleted: whitelisted: true @@ -475,7 +475,7 @@ whitelisted: true log_params: whitelisted: false - condition: log_deleted + null_if: log_deleted log_timestamp: whitelisted: true log_title: @@ -483,38 +483,38 @@ log_type: whitelisted: true log_user: - condition: (log_deleted & 4) + null_if: (log_deleted & 4) whitelisted: false log_user_text: - condition: (log_deleted & 4) + null_if: (log_deleted & 4) whitelisted: false - where: (((log_deleted & 1) = 0) and (log_type <> 'suppress')) + include_row_if: (((log_deleted & 1) = 0) and (log_type <> 'suppress')) logging_userindex: table_name: logging columns: log_action: - condition: (log_deleted & 1) + null_if: (log_deleted & 1) whitelisted: false log_comment: - condition: (log_deleted & 2) + null_if: (log_deleted & 2) whitelisted: false log_deleted: whitelisted: true log_id: whitelisted: true log_namespace: - condition: (log_deleted & 1) + null_if: (log_deleted & 1) whitelisted: false log_page: - condition: (log_deleted & 1) + null_if: (log_deleted & 1) whitelisted: false log_params: - condition: log_deleted + null_if: log_deleted whitelisted: false log_timestamp: whitelisted: true log_title: - condition: (log_deleted & 1) + null_if: (log_deleted & 1) whitelisted: false log_type: whitelisted: true @@ -522,7 +522,7 @@ whitelisted: true log_user_text: whitelisted: true - where: (((log_deleted & 4) = 0) and (log_type <> 'suppress')) + include_row_if: (((log_deleted & 4) = 0) and (log_type <> 'suppress')) mark_as_helpful: columns: mah_id: @@ -556,7 +556,7 @@ oi_deleted: whitelisted: true oi_description: - condition: (oi_deleted & 2) + null_if: (oi_deleted & 2) whitelisted: false oi_height: whitelisted: true @@ -577,10 +577,10 @@ oi_timestamp: whitelisted: true oi_user: - condition: (oi_deleted & 4) + null_if: (oi_deleted & 4) whitelisted: false oi_user_text: - condition: (oi_deleted & 4) + null_if: (oi_deleted & 4) whitelisted: false oi_width: whitelisted: true @@ -594,7 +594,7 @@ oi_deleted: whitelisted: true oi_description: - condition: (oi_deleted & 2) + null_if: (oi_deleted & 2) whitelisted: false oi_height: whitelisted: true @@ -620,13 +620,13 @@ whitelisted: true oi_width: whitelisted: true - where: ((oi_deleted & 4) = 0) + include_row_if: ((oi_deleted & 4) = 0) recentchanges: columns: rc_bot: whitelisted: true rc_comment: - condition: (rc_deleted & 2) + null_if: (rc_deleted & 2) whitelisted: false rc_cur_id: whitelisted: true @@ -671,10 +671,10 @@ rc_type: whitelisted: true rc_user: - condition: (rc_deleted & 4) + null_if: (rc_deleted & 4) whitelisted: false rc_user_text: - condition: (rc_deleted & 4) + null_if: (rc_deleted & 4) whitelisted: false recentchanges_userindex: table_name: recentchanges @@ -682,7 +682,7 @@ rc_bot: whitelisted: true rc_comment: - condition: (rc_deleted & 2) + null_if: (rc_deleted & 2) whitelisted: false rc_cur_id: whitelisted: true @@ -730,11 +730,11 @@ whitelisted: true rc_user_text: whitelisted: true - where: ((rc_deleted & 4) = 0) + include_row_if: ((rc_deleted & 4) = 0) revision: columns: rev_comment: - condition: (rev_deleted & 2) + null_if: (rev_deleted & 2) whitelisted: false rev_content_format: whitelisted: true @@ -745,7 +745,7 @@ rev_id: whitelisted: true rev_len: - condition: (rev_deleted & 1) + null_if: (rev_deleted & 1) whitelisted: false rev_minor_edit: whitelisted: true @@ -754,24 +754,24 @@ rev_parent_id: whitelisted: true rev_sha1: - condition: (rev_deleted & 1) + null_if: (rev_deleted & 1) whitelisted: false rev_text_id: - condition: (rev_deleted & 1) + null_if: (rev_deleted & 1) whitelisted: false rev_timestamp: whitelisted: true rev_user: - condition: (rev_deleted & 4) + null_if: (rev_deleted & 4) whitelisted: false rev_user_text: - condition: (rev_deleted & 4) + null_if: (rev_deleted & 4) whitelisted: false revision_userindex: table_name: revision columns: rev_comment: - condition: (rev_deleted & 2) + null_if: (rev_deleted & 2) whitelisted: false rev_content_format: whitelisted: true @@ -782,7 +782,7 @@ rev_id: whitelisted: true rev_len: - condition: (rev_deleted & 1) + null_if: (rev_deleted & 1) whitelisted: false rev_minor_edit: whitelisted: true @@ -791,10 +791,10 @@ rev_parent_id: whitelisted: true rev_sha1: - condition: (rev_deleted & 1) + null_if: (rev_deleted & 1) whitelisted: false rev_text_id: - condition: (rev_deleted & 1) + null_if: (rev_deleted & 1) whitelisted: false rev_timestamp: whitelisted: true @@ -802,7 +802,7 @@ whitelisted: true rev_user_text: whitelisted: true - where: ((rev_deleted & 4) = 0) + include_row_if: ((rev_deleted & 4) = 0) user: columns: user_editcount: @@ -867,4 +867,4 @@ whitelisted: true up_value: whitelisted: true - where: (up_property in ('disablemail','fancysig','gender','language','nickname','skin','timecorrection','variant')) + include_row_if: (up_property in ('disablemail','fancysig','gender','language','nickname','skin','timecorrection','variant')) -- To view, visit https://gerrit.wikimedia.org/r/184131 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I892f0ba4e6fa2db25696f1b7922f1e7c44630466 Gerrit-PatchSet: 4 Gerrit-Project: operations/software/labsdb-auditor Gerrit-Branch: master Gerrit-Owner: Yuvipanda <yuvipa...@gmail.com> Gerrit-Reviewer: Merlijn van Deen <valhall...@arctus.nl> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits