summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Memcached.pm
diff options
context:
space:
mode:
authorByron Jones <glob@mozilla.com>2014-05-28 09:21:14 +0200
committerByron Jones <glob@mozilla.com>2014-05-28 09:21:14 +0200
commit038e6854b32ae3155018188d80f306599a1e9644 (patch)
tree5a5e09763995a8c783ee98cefe8a5edb1e5eee26 /Bugzilla/Memcached.pm
parentda0dd8408f4bd2a31fc6c8c752d0f89d10212a2d (diff)
downloadbugzilla-038e6854b32ae3155018188d80f306599a1e9644.tar.gz
bugzilla-038e6854b32ae3155018188d80f306599a1e9644.tar.xz
Bug 993939: Bugzilla::User::Setting::groups() should use memcached
Diffstat (limited to 'Bugzilla/Memcached.pm')
-rw-r--r--Bugzilla/Memcached.pm20
1 files changed, 15 insertions, 5 deletions
diff --git a/Bugzilla/Memcached.pm b/Bugzilla/Memcached.pm
index 7a9734375..28934e4f5 100644
--- a/Bugzilla/Memcached.pm
+++ b/Bugzilla/Memcached.pm
@@ -106,7 +106,7 @@ sub set_config {
return unless $self->{memcached};
if (exists $args->{key}) {
- return $self->_set($self->_config_prefix . ':' . $args->{key}, $args->{data});
+ return $self->_set($self->_config_prefix . '.' . $args->{key}, $args->{data});
}
else {
ThrowCodeError('params_required', { function => "Bugzilla::Memcached::set_config",
@@ -119,7 +119,7 @@ sub get_config {
return unless $self->{memcached};
if (exists $args->{key}) {
- return $self->_get($self->_config_prefix . ':' . $args->{key});
+ return $self->_get($self->_config_prefix . '.' . $args->{key});
}
else {
ThrowCodeError('params_required', { function => "Bugzilla::Memcached::get_config",
@@ -167,9 +167,14 @@ sub clear_all {
}
sub clear_config {
- my ($self) = @_;
+ my ($self, $args) = @_;
return unless $self->{memcached};
- $self->_inc_prefix("config");
+ if ($args && exists $args->{key}) {
+ $self->_delete($self->_config_prefix . '.' . $args->{key});
+ }
+ else {
+ $self->_inc_prefix("config");
+ }
}
# in order to clear all our keys, we add a prefix to all our keys. when we
@@ -221,7 +226,7 @@ sub _config_prefix {
sub _encode_key {
my ($self, $key) = @_;
- $key = $self->_global_prefix . ':' . uri_escape_utf8($key);
+ $key = $self->_global_prefix . '.' . uri_escape_utf8($key);
return length($self->{namespace} . $key) > MAX_KEY_LENGTH
? undef
: $key;
@@ -426,6 +431,11 @@ corresponding C<table> and C<name> entry.
Removes C<value> with the specified C<table> and C<name>, as well as the
corresponding C<table> and C<id> entry.
+=item C<clear_config({ key =E<gt> $key })>
+
+Remove C<value> with the specified C<key> from the configuration cache. See
+C<set_config> for more information.
+
=item C<clear_config>
Removes all configuration related values from the cache. See C<set_config> for