summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Memcached.pm
diff options
context:
space:
mode:
authorByron Jones <glob@mozilla.com>2014-05-28 07:53:48 +0200
committerByron Jones <glob@mozilla.com>2014-05-28 07:53:48 +0200
commit6d730fae2211b9319037b7cb0515351fa529e78c (patch)
tree9e66e07dc1f798e073bdb08d28cbb86df9e4c608 /Bugzilla/Memcached.pm
parentccff248264ff717d515f753e460769b9bf33b38d (diff)
downloadbugzilla-6d730fae2211b9319037b7cb0515351fa529e78c.tar.gz
bugzilla-6d730fae2211b9319037b7cb0515351fa529e78c.tar.xz
Bug 993939: Bugzilla::User::Setting::groups() should use memcached
r=dkl, a=justdave
Diffstat (limited to 'Bugzilla/Memcached.pm')
-rw-r--r--Bugzilla/Memcached.pm22
1 files changed, 16 insertions, 6 deletions
diff --git a/Bugzilla/Memcached.pm b/Bugzilla/Memcached.pm
index 2bf7f1393..819b6d8b6 100644
--- a/Bugzilla/Memcached.pm
+++ b/Bugzilla/Memcached.pm
@@ -104,7 +104,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",
@@ -117,7 +117,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",
@@ -165,9 +165,14 @@ sub clear_all {
}
sub clear_config {
- my ($self) = @_;
- return unless $self->{memcached};
- $self->_inc_prefix("config");
+ my ($self, $args) = @_;
+ if ($args && exists $args->{key}) {
+ $self->_delete($self->_config_prefix . '.' . $args->{key});
+ }
+ else {
+ return unless $self->{memcached};
+ $self->_inc_prefix("config");
+ }
}
# in order to clear all our keys, we add a prefix to all our keys. when we
@@ -214,7 +219,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;
@@ -419,6 +424,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