[Rt-commit] [rtir] 01/01: Use the new MakeClicky cache added to RT
Kevin Falcone
falcone at bestpractical.com
Thu May 1 15:49:54 EDT 2014
This is an automated email from the git hooks/post-receive script.
falcone pushed a commit to branch 3.0/makeclicky-cache
in repository rtir.
commit d832dab2aca0b976a3edc6261266eac26f1058af
Author: Kevin Falcone <falcone at bestpractical.com>
Date: Fri Apr 25 13:57:08 2014 -0400
Use the new MakeClicky cache added to RT
On a new enough version of RT, this subroutine will be executed on any
MakeClicky call. This allows us to cache for 6 hours the results of
generating links to Lookup.html (in particular, on tickets with lots of
IPs in history, this is a huge win). Even on tickets needing minimal
processing, it helps speed up display.
One interesting quirk of this code is that MakeClicky is run on Whois
lookups and traceroute. Traceroute provides no useful details (not even
the ticket) so it's kind of a lost cause. Whois on the other hand
provides lookup_params, and when we get that we should punt on the
caching so we don't provide links to the wrong ticket object.
---
html/Callbacks/RTIR/Elements/MakeClicky/Default | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/html/Callbacks/RTIR/Elements/MakeClicky/Default b/html/Callbacks/RTIR/Elements/MakeClicky/Default
index 876c188..dcef5b7 100644
--- a/html/Callbacks/RTIR/Elements/MakeClicky/Default
+++ b/html/Callbacks/RTIR/Elements/MakeClicky/Default
@@ -238,6 +238,29 @@ ${$ARGS{handle}} = sub {
return $handle->(%args);
};
+unless (ref $ARGS{cache} && defined ${$ARGS{cache}}) {
+ ${$ARGS{cache}} = sub {
+ my $type = shift;
+ my $content = shift;
+ if ($type eq 'fetch') {
+ my $parent_args = $m->caller_args(1);
+ return if $parent_args->{lookup_params};
+
+ require Digest::SHA;
+ return $m->cache->get(Digest::SHA::sha512_base64($$content));
+ } elsif ($type eq 'store') {
+ require Digest::SHA;
+ $m->cache->set(Digest::SHA::sha512_base64($$content),
+ $$content,
+ "6 hours");
+ } else {
+ RT->Logger->error("Invalid type $type passed to MakeClicky's cache");
+ }
+ }
+} else {
+ RT->Logger->info("Someone else defined a MakeClicky cache, skipping ours");
+}
+
%{$ARGS{actions}} = ( %{$ARGS{actions}}, %actions );
push @{$ARGS{types}}, @types;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the rt-commit
mailing list