Skip to content

Commit

Permalink
test: test
Browse files Browse the repository at this point in the history
  • Loading branch information
alisterd51 committed Dec 26, 2023
1 parent 0128b2c commit 1fdda6b
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 63 deletions.
50 changes: 50 additions & 0 deletions .github/workflows/test_in_kind.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Python test in k8s cluster

on: pull_request

jobs:
create-cluster:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/[email protected]
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/[email protected]
with:
version: v3.12.3
- name: Set up Python '3.11'
uses: actions/[email protected]
with:
python-version: '3.11'
- name: Create k8s Kind Cluster
uses: helm/[email protected]
- name: Install Charts (in normal mode)
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm install my-postgresql bitnami/postgresql --version 13.2.9
helm install my-rabbitmq bitnami/rabbitmq --version 12.5.0
helm install my-redis bitnami/redis --version 18.3.3 --set architecture=standalone
# wait all service is raidy
# postgresql
# my-postgresql.default.svc.cluster.local
export POSTGRES_PASSWORD=$(kubectl get secret --namespace default my-postgresql -o jsonpath="{.data.postgres-password}" | base64 -d)
kubectl port-forward --namespace default svc/my-postgresql 5432:5432 &
# rabbitmq
# my-rabbitmq.default.svc.cluster.local
echo "Username : user"
echo "Password : $(kubectl get secret --namespace default my-rabbitmq -o jsonpath="{.data.rabbitmq-password}" | base64 -d)"
echo "ErLang Cookie : $(kubectl get secret --namespace default my-rabbitmq -o jsonpath="{.data.rabbitmq-erlang-cookie}" | base64 -d)"
# redis
# my-redis-master.default.svc.cluster.local
export REDIS_PASSWORD=$(kubectl get secret --namespace default my-redis -o jsonpath="{.data.redis-password}" | base64 -d)
kubectl port-forward --namespace default svc/my-redis-master 6379:6379 &
REDISCLI_AUTH="$REDIS_PASSWORD" redis-cli -h my-redis-master
# test
# Install Charts (in ha mode)
# test
13 changes: 2 additions & 11 deletions remoulade/cancel/backends/redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import time
from typing import Any, Iterable, Optional
from typing import Iterable, Optional

import redis

Expand Down Expand Up @@ -51,20 +51,11 @@ def __init__(
key: str = "remoulade-cancellations",
client: Optional[redis.Redis] = None,
url: Optional[str] = None,
sentinels: Optional[Any] = None,
service_name: Optional[str] = "mymaster",
**parameters,
) -> None:
super().__init__(cancellation_ttl=cancellation_ttl)

if sentinels:
sentinel = redis.Sentinel(
sentinels, socket_timeout=0.1, sentinel_kwargs={"password": parameters["password"]}
)
master = sentinel.discover_master(service_name)
parameters["host"] = master[0]
parameters["port"] = master[1]
elif url:
if url:
parameters["connection_pool"] = redis.ConnectionPool.from_url(url)

self.key = key
Expand Down
11 changes: 2 additions & 9 deletions remoulade/rate_limits/backends/redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,8 @@ class RedisBackend(RateLimiterBackend):
.. _redis: https://redis.io
"""

def __init__(self, *, client=None, url=None, sentinels=None, service_name="mymaster", **parameters):
if sentinels:
sentinel = redis.Sentinel(
sentinels, socket_timeout=0.1, sentinel_kwargs={"password": parameters["password"]}
)
master = sentinel.discover_master(service_name)
parameters["host"] = master[0]
parameters["port"] = master[1]
elif url:
def __init__(self, *, client=None, url=None, **parameters):
if url is not None:
parameters["connection_pool"] = redis.ConnectionPool.from_url(url)

self.client = client or redis.Redis(**parameters)
Expand Down
15 changes: 2 additions & 13 deletions remoulade/results/backends/redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,21 +54,12 @@ def __init__(
min_backoff=500,
max_backoff=5000,
backoff_strategy: BackoffStrategy = "spread_exponential",
sentinels=None,
service_name="mymaster",
**parameters,
):
super().__init__(namespace=namespace, encoder=encoder, default_timeout=default_timeout)

url = url or os.getenv("REMOULADE_REDIS_URL")
if sentinels:
sentinel = redis.Sentinel(
sentinels, socket_timeout=0.1, sentinel_kwargs={"password": parameters["password"]}
)
master = sentinel.discover_master(service_name)
parameters["host"] = master[0]
parameters["port"] = master[1]
elif url:
if url:
parameters["connection_pool"] = redis.ConnectionPool.from_url(url)

self.client = client or redis.Redis(**parameters)
Expand All @@ -87,9 +78,7 @@ def get_results(
raise_on_error: bool = True,
) -> Iterable[BackendResult]:
if block:
yield from super().get_results(
message_ids, block=block, timeout=timeout, forget=forget, raise_on_error=raise_on_error
)
yield from super().get_results(message_ids, block=block, timeout=timeout, forget=forget, raise_on_error=raise_on_error)
else:
with self.client.pipeline() as pipe:
for message_id in message_ids:
Expand Down
11 changes: 1 addition & 10 deletions remoulade/scheduler/scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,6 @@ def __init__(
period: Union[int, float] = None,
client: redis.Redis = None,
url: str = None,
sentinels=None,
service_name: str = "mymaster",
**redis_parameters,
) -> None:
"""
Expand All @@ -150,14 +148,7 @@ def __init__(
self.broker = broker
self.lock_key = lock_key if lock_key is not None else DEFAULT_SCHEDULER_LOCK_KEY

if sentinels:
sentinel = redis.Sentinel(
sentinels, socket_timeout=0.1, sentinel_kwargs={"password": redis_parameters["password"]}
)
master = sentinel.discover_master(service_name)
redis_parameters["host"] = master[0]
redis_parameters["port"] = master[1]
elif url:
if url:
redis_parameters["connection_pool"] = redis.ConnectionPool.from_url(url)

self.client = client or redis.Redis(**redis_parameters)
Expand Down
22 changes: 2 additions & 20 deletions remoulade/state/backends/redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,28 +23,10 @@ class RedisBackend(StateBackend):
.. _redis: https://redis.io
"""

def __init__(
self,
*,
namespace="remoulade-state",
encoder=None,
client=None,
url=None,
sentinels=None,
service_name="mymaster",
**parameters,
):
def __init__(self, *, namespace="remoulade-state", encoder=None, client=None, url=None, **parameters):
super().__init__(namespace=namespace, encoder=encoder)
if sentinels:
sentinel = redis.Sentinel(
sentinels, socket_timeout=0.1, sentinel_kwargs={"password": parameters["password"]}
)
master = sentinel.discover_master(service_name)
parameters["host"] = master[0]
parameters["port"] = master[1]
elif url:
if url:
parameters["connection_pool"] = redis.ConnectionPool.from_url(url)

self.client = client or redis.Redis(**parameters)

def get_state(self, message_id):
Expand Down

0 comments on commit 1fdda6b

Please sign in to comment.