Skip to content

Instantly share code, notes, and snippets.

@clayg
clayg / debug.log
Created February 24, 2025 20:02
vagrant up w/ vmware on linux
INFO global: Vagrant version: 2.4.3
INFO global: Ruby version: 3.3.6
INFO global: RubyGems version: 3.5.22
INFO global: VAGRANT_RAM="2048"
INFO global: VAGRANT_CPUS="1"
INFO global: VAGRANT_BOX="bento/ubuntu-24.04"
INFO global: VAGRANT_HOSTNAME="saio"
INFO global: VAGRANT_LOG="debug"
INFO global: VAGRANT_DEFAULT_PROVIDER="vmware_desktop"
INFO global: VAGRANT_USERNAME="vagrant"
@clayg
clayg / gist:174d8e427c4263230b3cdf6591f3365f
Created February 6, 2025 20:43
Test httptools non-ascii header parsing
diff --git a/tests/test_parser.py b/tests/test_parser.py
index 86584c3..74ad0a8 100644
--- a/tests/test_parser.py
+++ b/tests/test_parser.py
@@ -16,6 +16,32 @@ Connection: close
'''.replace(b'\n', b'\r\n')
+RESPONSE1_HEAD_NON_ASCII_KEY = b'''HTTP/1.1 200 OK
+Date: Mon, 23 May 2005 22:38:34 GMT
@clayg
clayg / checksum_s3_upload.py
Last active May 16, 2024 15:55
Create an aws BadDigest exception with boto using a contrived file-like
from argparse import ArgumentParser
import sys
import json
import datetime
import os
import logging
import hashlib
import boto3
from botocore.config import Config
@clayg
clayg / bench_get_namespaces.py
Last active January 10, 2024 16:35
Sqlite has a feature to allow custom sort order: https://docs.python.org/3/library/sqlite3.html#sqlite3.Connection.create_collation We might find that advantagous to use it when ordering rows from the shard_range table.
#!/usr/bin/env python
import argparse
import sys
import timeit
from swift.common.utils import Namespace
from swift.container.backend import ContainerBroker
parser = argparse.ArgumentParser()
parser.add_argument('path', help='path to the .db')
@clayg
clayg / logging_locks.py
Created April 20, 2022 17:00
See if green_existing_locks works?
import logging
import eventlet.patcher
eventlet.patcher.monkey_patch(thread=True)
import threading
def take_and_release():
try:
logging._lock.acquire()
finally:
vagrant@saio:~$ curl http://127.0.0.4:6041/sdb4/47/AUTH_test/container-6fb8e61f-f131-4037-9219-83c400ba81e7 -v
* Trying 127.0.0.4:6041...
* TCP_NODELAY set
* Connected to 127.0.0.4 (127.0.0.4) port 6041 (#0)
> GET /sdb4/47/AUTH_test/container-6fb8e61f-f131-4037-9219-83c400ba81e7 HTTP/1.1
> Host: 127.0.0.4:6041
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
@clayg
clayg / async_pending_stats.py
Last active October 5, 2022 18:16
Get info about async pendings
#!/usr/bin/env python
import sys
import os
import errno
from argparse import ArgumentParser
from collections import defaultdict
import pickle
import logging
try:
import thread
@clayg
clayg / traceback.out
Created March 23, 2021 18:20
asyncio grpc & KeyboardInterrupt
grpc/examples/python/helloworld$ python async_greeter_server.py
DEBUG:asyncio:Using selector: EpollSelector
DEBUG:grpc._cython.cygrpc:Using AsyncIOEngine.POLLER as I/O engine
INFO:root:Starting server on [::]:50051
^CDEBUG:grpc._cython.cygrpc:__dealloc__ called on running server <grpc._cython.cygrpc.AioServer object at 0x7f49685adc10> with status 4
Traceback (most recent call last):
File "async_greeter_server.py", line 50, in <module>
asyncio.run(serve())
File "/usr/lib/python3.8/asyncio/runners.py", line 43, in run
return loop.run_until_complete(main)
@clayg
clayg / s3_create_bucket.py
Created January 22, 2021 22:03
send extra headers to s3
#!/usr/bin/env python
from argparse import ArgumentParser
import sys
import json
import boto3
parser = ArgumentParser()
parser.add_argument('bucket', help='Bucket to make')
@clayg
clayg / test_iter.py
Last active November 19, 2020 18:51
i have no idea what i'm doing
from swift.common.utils import Watchdog, WatchdogTimeout, GreenAsyncPile
from eventlet.greenthread import spawn
from eventlet import sleep, Timeout
import random
watchdog = Watchdog()
watchdog.spawn()
def range_iter(start=0):