diff options
author | Morris Jobke <hey@morrisjobke.de> | 2017-05-16 10:10:25 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-16 10:10:25 -0500 |
commit | 78e6c2dea417f17db52648f6819ab20889e2554c (patch) | |
tree | 2c64ca14e90a276338e41fc76061b90854c48c61 | |
parent | 15f7fe022b222cdc080719d8585df29c8259053a (diff) | |
parent | 0e66c2a38aa86df2b6a1273b0cf4ad95485ce6e7 (diff) | |
download | nextcloud-server-78e6c2dea417f17db52648f6819ab20889e2554c.tar.gz nextcloud-server-78e6c2dea417f17db52648f6819ab20889e2554c.zip |
Merge pull request #4666 from nextcloud/enable-redis-cluster
Add redis cluster tests to our CI jobs
-rw-r--r-- | .drone.yml | 18 | ||||
-rwxr-xr-x | autotest.sh | 2 | ||||
-rw-r--r-- | lib/private/Memcache/Redis.php | 10 | ||||
-rw-r--r-- | tests/redis-cluster.config.php | 20 |
4 files changed, 44 insertions, 6 deletions
diff --git a/.drone.yml b/.drone.yml index 2080de5a123..f26e5d3f870 100644 --- a/.drone.yml +++ b/.drone.yml @@ -526,6 +526,17 @@ pipeline: when: matrix: TEST: memcache-memcached + memcache-redis-cluster: + image: nextcloudci/php7.0:php7.0-7 + commands: + - sleep 10 + - ./autotest.sh sqlite tests/lib/Memcache/RedisTest.php + - wget https://codecov.io/bash -O codecov.sh + - sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi" + - sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi" + when: + matrix: + TEST: memcache-redis-cluster matrix: include: - TESTS: checkers @@ -582,6 +593,8 @@ matrix: - TESTS: sqlite-php7.0-samba-native - TESTS: sqlite-php7.0-samba-non-native - TEST: memcache-memcached + - TEST: memcache-redis-cluster + ENABLE_REDIS_CLUSTER: true - TESTS: sqlite-php7.0-webdav-apache ENABLE_REDIS: true - DB: NODB @@ -618,6 +631,11 @@ services: when: matrix: ENABLE_REDIS: true + cache-cluster: + image: grokzen/redis-cluster + when: + matrix: + ENABLE_REDIS_CLUSTER: true postgres: image: postgres environment: diff --git a/autotest.sh b/autotest.sh index b00946d0c02..069488a3346 100755 --- a/autotest.sh +++ b/autotest.sh @@ -184,6 +184,8 @@ function execute_tests { if [ "$ENABLE_REDIS" == "true" ] ; then cp tests/redis.config.php config/redis.config.php + elif [ "$ENABLE_REDIS_CLUSTER" == "true" ] ; then + cp tests/redis-cluster.config.php config/redis.config.php fi _DB=$DB diff --git a/lib/private/Memcache/Redis.php b/lib/private/Memcache/Redis.php index a154d08deca..dd7e929a828 100644 --- a/lib/private/Memcache/Redis.php +++ b/lib/private/Memcache/Redis.php @@ -79,12 +79,10 @@ class Redis extends Cache implements IMemcacheTTL { public function clear($prefix = '') { $prefix = $this->getNameSpace() . $prefix . '*'; - $it = null; - self::$cache->setOption(\Redis::OPT_SCAN, \Redis::SCAN_RETRY); - while ($keys = self::$cache->scan($it, $prefix)) { - self::$cache->del($keys); - } - return true; + $keys = self::$cache->keys($prefix); + $deleted = self::$cache->del($keys); + + return count($keys) === $deleted; } /** diff --git a/tests/redis-cluster.config.php b/tests/redis-cluster.config.php new file mode 100644 index 00000000000..c7df2a91854 --- /dev/null +++ b/tests/redis-cluster.config.php @@ -0,0 +1,20 @@ +<?php + +$CONFIG = [ + 'memcache.local' => '\\OC\\Memcache\\Redis', + 'memcache.distributed' => '\\OC\\Memcache\\Redis', + 'memcache.locking' => '\\OC\\Memcache\\Redis', + 'redis.cluster' => [ + 'seeds' => [ // provide some/all of the cluster servers to bootstrap discovery, port required + 'localhost:7000', + 'localhost:7001', + 'localhost:7002', + 'localhost:7003', + 'localhost:7004', + 'localhost:7005' + ], + 'timeout' => 0.0, + 'read_timeout' => 0.0, + 'failover_mode' => \RedisCluster::FAILOVER_ERROR + ], +]; |