Updated to use standard shebang and explicitly flush output; added deprecation warning to stats.conf
This commit is contained in:
parent
8bf12ddaad
commit
d0d98ba96e
@ -1,4 +1,5 @@
|
|||||||
swift (x.x.x)
|
swift (x.x.x)
|
||||||
|
|
||||||
* Renamed swift-stats-populate to swift-dispersion-populate and
|
* Renamed swift-stats-populate to swift-dispersion-populate and
|
||||||
swift-stats-report to swift-dispersion-report.
|
swift-stats-report to swift-dispersion-report with extraneous unused
|
||||||
|
options removed. The new tools use dispersion.conf instead of stats.conf.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/python -u
|
#!/usr/bin/env python
|
||||||
# Copyright (c) 2010-2011 OpenStack, LLC.
|
# Copyright (c) 2010-2011 OpenStack, LLC.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@ -18,7 +18,7 @@ import os
|
|||||||
import traceback
|
import traceback
|
||||||
from ConfigParser import ConfigParser
|
from ConfigParser import ConfigParser
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
from sys import exit, argv
|
from sys import exit, argv, stdout
|
||||||
from time import time
|
from time import time
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
@ -71,6 +71,7 @@ def report(success):
|
|||||||
eta, eta_unit = compute_eta(begun, created, need_to_create)
|
eta, eta_unit = compute_eta(begun, created, need_to_create)
|
||||||
print '\r\x1B[KCreating %s: %d of %d, %d%s left, %d retries' % (item_type,
|
print '\r\x1B[KCreating %s: %d of %d, %d%s left, %d retries' % (item_type,
|
||||||
created, need_to_create, round(eta), eta_unit, retries_done),
|
created, need_to_create, round(eta), eta_unit, retries_done),
|
||||||
|
stdout.flush()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
@ -125,6 +126,7 @@ if __name__ == '__main__':
|
|||||||
print '\r\x1B[KCreated %d containers for dispersion reporting, %d%s, %d ' \
|
print '\r\x1B[KCreated %d containers for dispersion reporting, %d%s, %d ' \
|
||||||
'retries' % \
|
'retries' % \
|
||||||
(need_to_create, round(elapsed), elapsed_unit, retries_done)
|
(need_to_create, round(elapsed), elapsed_unit, retries_done)
|
||||||
|
stdout.flush()
|
||||||
|
|
||||||
container = 'dispersion_objects'
|
container = 'dispersion_objects'
|
||||||
put_container(connpool, container, None)
|
put_container(connpool, container, None)
|
||||||
@ -150,3 +152,4 @@ if __name__ == '__main__':
|
|||||||
print '\r\x1B[KCreated %d objects for dispersion reporting, %d%s, %d ' \
|
print '\r\x1B[KCreated %d objects for dispersion reporting, %d%s, %d ' \
|
||||||
'retries' % \
|
'retries' % \
|
||||||
(need_to_create, round(elapsed), elapsed_unit, retries_done)
|
(need_to_create, round(elapsed), elapsed_unit, retries_done)
|
||||||
|
stdout.flush()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/python -u
|
#!/usr/bin/env python
|
||||||
# Copyright (c) 2010-2011 OpenStack, LLC.
|
# Copyright (c) 2010-2011 OpenStack, LLC.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@ -20,7 +20,7 @@ import socket
|
|||||||
from ConfigParser import ConfigParser
|
from ConfigParser import ConfigParser
|
||||||
from httplib import HTTPException
|
from httplib import HTTPException
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
from sys import argv, exit, stderr
|
from sys import argv, exit, stdout, stderr
|
||||||
from time import time
|
from time import time
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
@ -48,9 +48,11 @@ def get_error_log(prefix):
|
|||||||
'considered missing until resolved or the ring is ' \
|
'considered missing until resolved or the ring is ' \
|
||||||
'updated.' % (msg_or_exc.http_host, msg_or_exc.http_port,
|
'updated.' % (msg_or_exc.http_host, msg_or_exc.http_port,
|
||||||
msg_or_exc.http_device)
|
msg_or_exc.http_device)
|
||||||
|
stderr.flush()
|
||||||
if not hasattr(msg_or_exc, 'http_status') or \
|
if not hasattr(msg_or_exc, 'http_status') or \
|
||||||
msg_or_exc.http_status not in (404, 507):
|
msg_or_exc.http_status not in (404, 507):
|
||||||
print >>stderr, 'ERROR: %s: %s' % (prefix, msg_or_exc)
|
print >>stderr, 'ERROR: %s: %s' % (prefix, msg_or_exc)
|
||||||
|
stderr.flush()
|
||||||
return error_log
|
return error_log
|
||||||
|
|
||||||
|
|
||||||
@ -63,6 +65,7 @@ def container_dispersion_report(coropool, connpool, account, container_ring,
|
|||||||
if not containers_listed:
|
if not containers_listed:
|
||||||
print >>stderr, 'No containers to query. Has ' \
|
print >>stderr, 'No containers to query. Has ' \
|
||||||
'swift-dispersion-populate been run?'
|
'swift-dispersion-populate been run?'
|
||||||
|
stderr.flush()
|
||||||
return
|
return
|
||||||
retries_done = [0]
|
retries_done = [0]
|
||||||
containers_queried = [0]
|
containers_queried = [0]
|
||||||
@ -96,6 +99,7 @@ def container_dispersion_report(coropool, connpool, account, container_ring,
|
|||||||
print '\r\x1B[KQuerying containers: %d of %d, %d%s left, %d ' \
|
print '\r\x1B[KQuerying containers: %d of %d, %d%s left, %d ' \
|
||||||
'retries' % (containers_queried[0], containers_listed,
|
'retries' % (containers_queried[0], containers_listed,
|
||||||
round(eta), eta_unit, retries_done[0]),
|
round(eta), eta_unit, retries_done[0]),
|
||||||
|
stdout.flush()
|
||||||
container_parts = {}
|
container_parts = {}
|
||||||
for container in containers:
|
for container in containers:
|
||||||
part, nodes = container_ring.get_nodes(account, container)
|
part, nodes = container_ring.get_nodes(account, container)
|
||||||
@ -127,6 +131,7 @@ def container_dispersion_report(coropool, connpool, account, container_ring,
|
|||||||
value, copies_found, copies_expected)
|
value, copies_found, copies_expected)
|
||||||
print 'Sample represents %.02f%% of the container partition space' % (
|
print 'Sample represents %.02f%% of the container partition space' % (
|
||||||
100.0 * distinct_partitions / container_ring.partition_count)
|
100.0 * distinct_partitions / container_ring.partition_count)
|
||||||
|
stdout.flush()
|
||||||
|
|
||||||
|
|
||||||
def object_dispersion_report(coropool, connpool, account, object_ring,
|
def object_dispersion_report(coropool, connpool, account, object_ring,
|
||||||
@ -141,11 +146,13 @@ def object_dispersion_report(coropool, connpool, account, object_ring,
|
|||||||
raise
|
raise
|
||||||
print >>stderr, 'No objects to query. Has ' \
|
print >>stderr, 'No objects to query. Has ' \
|
||||||
'swift-dispersion-populate been run?'
|
'swift-dispersion-populate been run?'
|
||||||
|
stderr.flush()
|
||||||
return
|
return
|
||||||
objects_listed = len(objects)
|
objects_listed = len(objects)
|
||||||
if not objects_listed:
|
if not objects_listed:
|
||||||
print >>stderr, 'No objects to query. Has swift-dispersion-populate ' \
|
print >>stderr, 'No objects to query. Has swift-dispersion-populate ' \
|
||||||
'been run?'
|
'been run?'
|
||||||
|
stderr.flush()
|
||||||
return
|
return
|
||||||
retries_done = [0]
|
retries_done = [0]
|
||||||
objects_queried = [0]
|
objects_queried = [0]
|
||||||
@ -179,6 +186,7 @@ def object_dispersion_report(coropool, connpool, account, object_ring,
|
|||||||
print '\r\x1B[KQuerying objects: %d of %d, %d%s left, %d ' \
|
print '\r\x1B[KQuerying objects: %d of %d, %d%s left, %d ' \
|
||||||
'retries' % (objects_queried[0], objects_listed, round(eta),
|
'retries' % (objects_queried[0], objects_listed, round(eta),
|
||||||
eta_unit, retries_done[0]),
|
eta_unit, retries_done[0]),
|
||||||
|
stdout.flush()
|
||||||
object_parts = {}
|
object_parts = {}
|
||||||
for obj in objects:
|
for obj in objects:
|
||||||
part, nodes = object_ring.get_nodes(account, container, obj)
|
part, nodes = object_ring.get_nodes(account, container, obj)
|
||||||
@ -210,6 +218,7 @@ def object_dispersion_report(coropool, connpool, account, object_ring,
|
|||||||
(value, copies_found, copies_expected)
|
(value, copies_found, copies_expected)
|
||||||
print 'Sample represents %.02f%% of the object partition space' % (
|
print 'Sample represents %.02f%% of the object partition space' % (
|
||||||
100.0 * distinct_partitions / object_ring.partition_count)
|
100.0 * distinct_partitions / object_ring.partition_count)
|
||||||
|
stdout.flush()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
# WARNING: The swift-stats-populate and swift-stats-report commands are being
|
||||||
|
# replaced with swift-dispersion-populate and swift-dispersion-report; you
|
||||||
|
# should switch to those before the next Swift release.
|
||||||
[stats]
|
[stats]
|
||||||
auth_url = http://saio:8080/auth/v1.0
|
auth_url = http://saio:8080/auth/v1.0
|
||||||
auth_user = test:tester
|
auth_user = test:tester
|
||||||
|
Loading…
Reference in New Issue
Block a user