Skip to content

Instantly share code, notes, and snippets.

@bofm
bofm / Dockerfile
Created May 21, 2019 15:52
tarantool vshard gh-181
FROM progaudi/tarantool:1.10.2
ENV VSHARD_VERSION=fcb05f7609b5a050781fe79829439e9730cee3ae
RUN apk add -U --no-cache git \
&& cd /tmp \
&& git clone https://github.com/tarantool/vshard.git \
&& ( cd vshard && git checkout ${VSHARD_VERSION} ) \
&& mv vshard/vshard /opt/tarantool/vshard \
&& rm -rf vshard
@bofm
bofm / consul_kv_atomic_bash.bash
Created February 18, 2019 16:28
consul kv atomic bash
consul_kv_put_cas() {
local key="$1"
local value="$2"
local cas="$3"
test "$(curl -sq -X PUT -d "$value" "http://localhost:8500/v1/kv/${key}?cas=${cas}")" = "true"
}
consul_kv_put_if_not_exists() {
local key="$1"
local value="$2"
@bofm
bofm / output.txt
Last active December 6, 2018 12:29
consul-template dedup test
#### Running consul...
------------ CONSUL KEYS BEFORE -------------
---------------------------------------------
#### Running 10 consul-template instances with different templates...
#### Killing all consul-template instances with SIGTERM signal...
Cleaning up...
Cleaning up...
Cleaning up...
Cleaning up...
Cleaning up...
@bofm
bofm / x.md
Created August 29, 2018 12:29
Tarantool upgrate problem

How to reproduce?

$ docker network create n1

first instance

$ docker run --rm -it --name t1 --net n1  -e TARANTOOL_REPLICATION=t1:3301,t2:3301 progaudi/tarantool:1.10.1-135-g193ef4150
@bofm
bofm / err.py
Created July 27, 2018 10:27
asynctnt_err
Python 3.7.0 (default, Jun 29 2018, 09:12:54)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import asyncio, asynctnt
>>> asyncio.run(asynctnt.Connection(host='aa', port=1234).connect())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.7/asyncio/runners.py", line 43, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.7/asyncio/base_events.py", line 568, in run_until_complete
@bofm
bofm / defer.py
Last active March 5, 2018 19:42
Python deferred execution helper.
from collections import deque
from functools import partial, wraps
class Deferred:
"""
Deferred functions execution.
Usage:
@bofm
bofm / it.py
Last active March 2, 2018 12:29
It. A handy iterator with method chaining.
import itertools
import functools
class It:
"""A handy iterator with method chaining.
>>> It([1, 2, 3]).map(lambda x: x**2).filter(lambda x: x<5).chain_after('abc').apply(list)
['a', 'b', 'c', 1, 4]
"""
@bofm
bofm / repl_test.sh
Created February 14, 2018 18:43
tarantool replication test
#!/usr/bin/env bash
cat <<EE > app.lua
box.cfg {
listen = 3301,
read_only = false,
wal_mode = "write",
replication = {"t1:3301", "t2:3301"},
}
@bofm
bofm / run_timeout.py
Created November 8, 2017 10:23
set maximum execution time for a python script
import signal
def set_run_timeout(timeout):
"""Set maximum execution time of the current Python process"""
def alarm(*_):
raise SystemExit("Timed out!")
signal.signal(signal.SIGALRM, alarm)
signal.alarm(timeout)
@bofm
bofm / jupyter-system-site-packages.sh
Created April 20, 2017 15:24
Use virtualenv python kernel inside the Jupyter Notebook installed in the system site-packages
# install Jupyter Notebook into system site-packages
pip install -U notebook
# create a virtualenv and use the Jupyter from the system site-packages
mkvirtualenv --system-site-packages myvenv
# the virtualenv is now activated
pip install ipykernel
VM_NAME=myvm python -m ipykernel install --user --name $VM_NAME --display-name $VM_NAME
python -m jupyter notebook
# In the browser: New -> select kernel "myvm"