Skip to content

Instantly share code, notes, and snippets.

@clayg
clayg / slow_s3_download.py
Created November 11, 2020 17:44
s3 client for playing with slow ranged reads
from argparse import ArgumentParser
import sys
import time
import boto3
parser = ArgumentParser()
parser.add_argument('bucket', help='bucket to make the upload')
parser.add_argument('key', nargs='?', help='key name for large object')
@clayg
clayg / .gitignore
Last active October 15, 2020 18:10
Troll the disks for async_pendings and gather some stats
/*.json
@clayg
clayg / healthcheck_stats.py
Last active October 9, 2020 23:35
keep an eye on things
import sys
import subprocess
from swift.common.utils import get_logger
from threading import Thread
import time
import socket
import os
import ssl
from swiftclient import get_auth, client
import time
url, token = get_auth('http://saio:8080/auth/v1.0', 'test:tester', 'testing')
TIMEOUT = 30.0
finish = time.time() + TIMEOUT
while True:
sc = client.head_account(url, token)
print(sc)
time.sleep(1.0)
if time.time() > finish:
@clayg
clayg / s3_mpu_upload.py
Last active September 4, 2020 16:56
Basic boto3 s3 client Multipart Upload
from argparse import ArgumentParser
import sys
import json
import datetime
import os
import boto3
parser = ArgumentParser()
@clayg
clayg / slow_client.py
Created August 26, 2020 16:59
hold a connection open
#!/usr/bin/env python
import sys
import argparse
from swift.common.storage_policy import POLICIES
from swift.common.bufferedhttp import http_connect
from swift.common.utils import Timestamp
SWIFT_DIR = '/etc/swift'
@clayg
clayg / make_expand.py
Created July 28, 2020 00:17
spit out some json for swift-ring-builder-analyizer
import json
import sys
def gen_ips():
i = 147
j = 153
while True:
j += 1
if j > 254:
import ctypes
import ctypes.util
import struct
import sys
import textwrap
import zlib
lib_name = ctypes.util.find_library('erasurecode')
if not lib_name:
lib_name = 'liberasurecode.so.1'
@clayg
clayg / make_no_replication_ring.py
Created June 25, 2020 16:30
Make a no replication ring if you need it
#!/usr/bin/env python
from argparse import ArgumentParser
import sys
import os
from swift.common.ring import RingData
parser = ArgumentParser()
parser.add_argument('ring', help='path to a ring')
parser.add_argument('--output', default=None, help='override output path')
@clayg
clayg / something.patch
Created June 15, 2020 19:17
don't HEAD buckets to get account
diff --git a/swift/common/middleware/s3api/s3request.py b/swift/common/middleware/s3api/s3request.py
index 28e734f0b..2a0193867 100644
--- a/swift/common/middleware/s3api/s3request.py
+++ b/swift/common/middleware/s3api/s3request.py
@@ -37,8 +37,7 @@ from swift.common.http import HTTP_OK, HTTP_CREATED, HTTP_ACCEPTED, \
HTTP_TOO_MANY_REQUESTS, HTTP_RATE_LIMITED, is_success
from swift.common.constraints import check_utf8
-from swift.proxy.controllers.base import get_container_info, \
- headers_to_container_info