diff options
-rw-r--r-- | extensions/BMO/Extension.pm | 16 | ||||
-rw-r--r-- | extensions/BMO/lib/Data.pm | 4 | ||||
-rw-r--r-- | extensions/BMO/template/en/default/hook/admin/sanitycheck/messages-statuses.html.tmpl | 15 | ||||
-rwxr-xr-x | sanitycheck.cgi | 10 |
4 files changed, 40 insertions, 5 deletions
diff --git a/extensions/BMO/Extension.pm b/extensions/BMO/Extension.pm index 75b8df456..5a9f8c4fa 100644 --- a/extensions/BMO/Extension.pm +++ b/extensions/BMO/Extension.pm @@ -965,6 +965,22 @@ sub bug_end_of_create { } } +sub sanitycheck_check { + my ($self, $args) = @_; + + my $dbh = Bugzilla->dbh; + my $status = $args->{'status'}; + $status->('bmo_check_cf_visible_in_products'); + + my $products = $dbh->selectcol_arrayref('SELECT name FROM products'); + my %product = map { $_ => 1 } @$products; + my @cf_products = map { keys %$_ } values %$cf_visible_in_products; + foreach my $cf_product (@cf_products) { + $status->('bmo_check_cf_visible_in_products_missing', + { cf_product => $cf_product }, 'alert') unless $product{$cf_product}; + } +} + sub db_sanitize { print "deleting reporter's user-agents...\n"; Bugzilla->dbh->do("TRUNCATE TABLE bug_user_agent"); diff --git a/extensions/BMO/lib/Data.pm b/extensions/BMO/lib/Data.pm index 348755d22..d075cd515 100644 --- a/extensions/BMO/lib/Data.pm +++ b/extensions/BMO/lib/Data.pm @@ -77,11 +77,10 @@ tie(%$cf_visible_in_products, "Tie::IxHash", "Android Background Services" => [], "B2GDroid" => [], "Calendar" => [], - "Camino" => [], "Composer" => [], "Core" => [], "Directory" => [], - "Fennec" => [], + "External Software Affecting Firefox" => [], "Firefox" => [], "Firefox for Android" => [], "Firefox for Metro" => [], @@ -96,7 +95,6 @@ tie(%$cf_visible_in_products, "Tie::IxHash", "NSS" => [], "Other Applications" => [], "Penelope" => [], - "Plugins" => [], "Release Engineering" => [], "Rhino" => [], "SeaMonkey" => [], diff --git a/extensions/BMO/template/en/default/hook/admin/sanitycheck/messages-statuses.html.tmpl b/extensions/BMO/template/en/default/hook/admin/sanitycheck/messages-statuses.html.tmpl new file mode 100644 index 000000000..dddfb1c15 --- /dev/null +++ b/extensions/BMO/template/en/default/hook/admin/sanitycheck/messages-statuses.html.tmpl @@ -0,0 +1,15 @@ +[%# This Source Code Form is subject to the terms of the Mozilla Public + # License, v. 2.0. If a copy of the MPL was not distributed with this + # file, You can obtain one at http://mozilla.org/MPL/2.0/. + # + # This Source Code Form is "Incompatible With Secondary Licenses", as + # defined by the Mozilla Public License, v. 2.0. + #%] + +[% IF san_tag == "bmo_check_cf_visible_in_products" %] + Checking $cf_visibile_in_products for missing product names. + +[% ELSIF san_tag == "bmo_check_cf_visible_in_products_missing" %] + ... there are custom fields for [% cf_product FILTER html %] but it does not exist! + +[% END %]
\ No newline at end of file diff --git a/sanitycheck.cgi b/sanitycheck.cgi index f718312f4..5acf79f06 100755 --- a/sanitycheck.cgi +++ b/sanitycheck.cgi @@ -72,6 +72,7 @@ my $user = Bugzilla->login(LOGIN_REQUIRED); my $cgi = Bugzilla->cgi; my $dbh = Bugzilla->dbh; +my $hooks_only = $cgi->param('hooks_only'); # If the result of the sanity check is sent per email, then we have to # take the user prefs into account rather than querying the web browser. my $template; @@ -84,7 +85,7 @@ else { # Only check the token if we are running this script from the # web browser and a parameter is passed to the script. # XXX - Maybe these two parameters should be deleted once logged in? - $cgi->delete('GoAheadAndLogIn', 'Bugzilla_restrictlogin'); + $cgi->delete('GoAheadAndLogIn', 'Bugzilla_restrictlogin', 'hooks_only'); if (scalar($cgi->param())) { my $token = $cgi->param('token'); check_hash_token($token, ['sanitycheck']); @@ -108,6 +109,8 @@ unless (Bugzilla->usage_mode == USAGE_MODE_CMDLINE) { || ThrowTemplateError($template->error()); } +goto REPAIR_HOOKS if $hooks_only; + ########################################################################### # Create missing group_control_map entries ########################################################################### @@ -379,8 +382,11 @@ Bugzilla->memcached->clear_all() if $clear_memcached; # Repair hook ########################################################################### +REPAIR_HOOKS: + Bugzilla::Hook::process('sanitycheck_repair', { status => \&Status }); +goto CHECK_HOOKS if $hooks_only; ########################################################################### # Checks ########################################################################### @@ -924,7 +930,7 @@ Status('whines_obsolete_target_fix') if $display_repair_whines_link; ########################################################################### # Check hook ########################################################################### - +CHECK_HOOKS: Bugzilla::Hook::process('sanitycheck_check', { status => \&Status }); ########################################################################### |