Skip to content

Instantly share code, notes, and snippets.

@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
@clayg
clayg / priority-container-sharder
Created June 12, 2020 19:25
Skip some shard dbs and prioritize other containers
#!/usr/bin/env python
from swift.container import sharder
from swift.common.utils import parse_options
from swift.common.daemon import run_daemon
from optparse import OptionParser
orig_sharding_enabled = sharder.sharding_enabled
@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()
$ git diff
diff --git a/swift/container/server.py b/swift/container/server.py
index d6f0ea9b6..98d80f3ee 100644
--- a/swift/container/server.py
+++ b/swift/container/server.py
@@ -541,7 +541,7 @@ class ContainerController(BaseStorageServer):
return HTTPBadRequest('Invalid body: %r' % err)
created = self._maybe_autocreate(
broker, req_timestamp, account, requested_policy_index,
- put_shard=True)
@clayg
clayg / test_db_delete_reclaim.py
Last active May 14, 2020 19:57
try and test if reclaim locks up the database
[root@stgss0235 ~]# tail -n 20 *.out
==> orig.out <==
('delete', 1589476453, 968)
('reclaim', 1589476456.4089239, 3.372346878051758)
('delete', 1589476456, 957)
('delete', 1589476459, 546)
('reclaim', 1589476459.7816048, 2.8547749519348145)
('delete', 1589476460, 392)
('reclaim', 1589476462.6364882, 2.8673436641693115)
('delete', 1589476462, 915)
@clayg
clayg / example.out
Last active April 30, 2020 21:35
priority updater can target/skip specific problematic containers
vagrant@saio:~$ /vagrant/.scratch/priority-object-updater --help
Usage: priority-object-updater CONFIG [options]
Options:
-h, --help show this help message and exit
--container=FILTER_CONTAINERS
Only process specific AUTH_acct/container(s)
--skip=SKIP_CONTAINERS
Do not process skipped AUTH_acct/container(s)
-v, --verbose log to console
@clayg
clayg / read_only.py
Created April 23, 2020 19:57
internal client based tool to set read-only sysmeta to true/false
#!/usr/bin/env python
from argparse import ArgumentParser
import sys
from swift.common.internal_client import InternalClient
from swift.common.wsgi import ConfigString
from swift.container.sync import ic_conf_body
parser = ArgumentParser()
parser.add_argument('account', help='the account name')
diff --git a/meson.build b/meson.build
index 215b81c..aeab0db 100644
--- a/meson.build
+++ b/meson.build
@@ -1,4 +1,5 @@
-project('ktx', 'c')
+project('ktx', 'c', default_options : ['c_std=c89'])
+
ktx_sources = [
@clayg
clayg / test.err
Created March 2, 2020 20:48
can't run test.unit.proxy.controller.test_container module on it's own using nose
vagrant@saio:~$ nosetests swift/test/unit/proxy/controllers/test_container.py
Traceback (most recent call last):
File "/usr/local/bin/nosetests", line 8, in <module>
sys.exit(run_exit())
File "/usr/local/lib/python2.7/dist-packages/nose/core.py", line 121, in __init__
**extra_args)
File "/usr/lib/python2.7/unittest/main.py", line 95, in __init__
self.runTests()
File "/usr/local/lib/python2.7/dist-packages/nose/core.py", line 207, in runTests
result = self.testRunner.run(self.test)