通过setup.cfg文件可以知道swift-ring-builder工具的源码入口位于/bin/swift-ring-builder脚本,这个脚本仅仅是对swift.cli.ringbuilder模块的封装,直接调用了swift.cli.ringbuilder中的main函数。
def main(arguments=None):
if len(argv) == 2:
command = "default"
else:
command = argv[2]
if argv[0].endswith('-safe'):
try:
with lock_parent_directory(abspath(argv[1]), 15):
Commands.__dict__.get(command, Commands.unknown.im_func)()
except exceptions.LockTimeout:
print "Ring/builder dir currently locked."
exit(2)
else:
#调动Commands类的名为"command"函数,如果该函数不存在则调用
#Commands类的unknown()函数,对于Ring的创建,"command"为create
Commands.__dict__.get(command, Commands.unknown.im_func)()
完成一定的参数解析工作后,最终使用swift.cli.ringbuilder.Commands类的create()函数去完成Ring的创建。
class Commands(object):

最低0.47元/天 解锁文章
1283

被折叠的 条评论
为什么被折叠?



