3a5a25fe98
As a result of the Hackathon we have produced a new documentation structure for the python-swiftclient. This patch introduces the new structure and adds the required content. The intention is to document the CLI, the SwiftService and Connection API. Importantly, we also provide guidance on important considerations when using a swift object store, such as which aspect of the python-swiftclient to use for various use cases, common authentication patterns and some useful examples. Co-Authored-By: Alexandra Settle <alexandra.settle@rackspace.com> Co-Authored-By: Mohit Motiani <mohit.motiani@intel.com> Co-Authored-By: Hisashi Osanai <osanai.hisashi@jp.fujitsu.com> Change-Id: I9eb41f8e9137efa66cead67dc264a76a3c03fbda
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
import logging
|
|
|
|
from swiftclient.service import SwiftService
|
|
from sys import argv
|
|
|
|
|
|
logging.basicConfig(level=logging.ERROR)
|
|
logging.getLogger("requests").setLevel(logging.CRITICAL)
|
|
logging.getLogger("swiftclient").setLevel(logging.CRITICAL)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
_opts = {'object_dd_threads': 20}
|
|
container = argv[1]
|
|
objects = argv[2:]
|
|
with SwiftService(options=_opts) as swift:
|
|
del_iter = swift.delete(container=container, objects=objects)
|
|
for del_res in del_iter:
|
|
c = del_res.get('container', '')
|
|
o = del_res.get('object', '')
|
|
a = del_res.get('attempts')
|
|
if del_res['success'] and not del_res['action'] == 'bulk_delete':
|
|
rd = del_res.get('response_dict')
|
|
if rd is not None:
|
|
t = dict(rd.get('headers', {}))
|
|
if t:
|
|
print(
|
|
'Successfully deleted {0}/{1} in {2} attempts '
|
|
'(transaction id: {3})'.format(c, o, a, t)
|
|
)
|
|
else:
|
|
print(
|
|
'Successfully deleted {0}/{1} in {2} '
|
|
'attempts'.format(c, o, a)
|
|
)
|