793489b80d
In object audit "once" mode we are allowing the user to specify a sub-set of devices to audit using the "--devices" command-line option. The sub-set is specified as a comma-separated list. This patch is taken from a larger patch to enable parallel processing in the object auditor. We've had to modify recon so that it will work properly with this change to "once" mode. We've modified dump_recon_cache() so that it will store nested dictionaries, in other words it will store a recon cache entry such as {'key1': {'key2': {...}}}. When the object auditor is run in "once" mode with "--devices" set the object_auditor_stats_ALL and ZBF entries look like: {'object_auditor_stats_ALL': {'disk1disk2..diskn': {...}}}. When swift-recon is run, it hunts through the nested dicts to find the appropriate entries. The object auditor recon cache entries are set to {} at the beginning of each audit cycle, and individual disk entries are cleared from cache at the end of each disk's audit cycle. DocImpact Change-Id: Icc53dac0a8136f1b2f61d5e08baf7b4fd87c8123
30 lines
1.2 KiB
Python
Executable File
30 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# Copyright (c) 2010-2012 OpenStack Foundation
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
from swift.obj.auditor import ObjectAuditor
|
|
from swift.common.utils import parse_options
|
|
from swift.common.daemon import run_daemon
|
|
from optparse import OptionParser
|
|
|
|
if __name__ == '__main__':
|
|
parser = OptionParser("%prog CONFIG [options]")
|
|
parser.add_option('-z', '--zero_byte_fps',
|
|
help='Audit only zero byte files at specified files/sec')
|
|
parser.add_option('-d', '--devices',
|
|
help='Audit only given devices. Comma-separated list')
|
|
conf_file, options = parse_options(parser=parser, once=True)
|
|
run_daemon(ObjectAuditor, conf_file, **options)
|