本文整理汇总了Python中ClusterShell.CLI.OptionParser.OptionParser.install_clush_config_options方法的典型用法代码示例。如果您正苦于以下问题:Python OptionParser.install_clush_config_options方法的具体用法?Python OptionParser.install_clush_config_options怎么用?Python OptionParser.install_clush_config_options使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ClusterShell.CLI.OptionParser.OptionParser
的用法示例。
在下文中一共展示了OptionParser.install_clush_config_options方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: testClushConfigDefaultWithOptions
# 需要导入模块: from ClusterShell.CLI.OptionParser import OptionParser [as 别名]
# 或者: from ClusterShell.CLI.OptionParser.OptionParser import install_clush_config_options [as 别名]
def testClushConfigDefaultWithOptions(self):
"""test CLI.Config.ClushConfig (default with options)"""
f = tempfile.NamedTemporaryFile(prefix='testclushconfig')
f.write(dedent("""
[Main]
fanout: 42
connect_timeout: 14
command_timeout: 0
history_size: 100
color: auto
verbosity: 1""").encode())
f.flush()
parser = OptionParser("dummy")
parser.install_clush_config_options()
parser.install_display_options(verbose_options=True)
parser.install_connector_options()
options, _ = parser.parse_args(["-f", "36", "-u", "3", "-t", "7",
"--user", "foobar", "--color",
"always", "-d", "-v", "-q", "-o",
"-oSomething"])
config = ClushConfig(options, filename=f.name)
display = Display(options, config)
display.vprint(VERB_STD, "test")
display.vprint(VERB_DEBUG, "test")
self.assertEqual(config.color, WHENCOLOR_CHOICES[1])
self.assertEqual(config.verbosity, VERB_DEBUG) # takes biggest
self.assertEqual(config.fanout, 36)
self.assertEqual(config.connect_timeout, 7)
self.assertEqual(config.command_timeout, 3)
self.assertEqual(config.ssh_user, "foobar")
self.assertEqual(config.ssh_path, None)
self.assertEqual(config.ssh_options, "-oSomething")
f.close()
示例2: testClushConfigDefault
# 需要导入模块: from ClusterShell.CLI.OptionParser import OptionParser [as 别名]
# 或者: from ClusterShell.CLI.OptionParser.OptionParser import install_clush_config_options [as 别名]
def testClushConfigDefault(self):
"""test CLI.Config.ClushConfig (default)"""
f = tempfile.NamedTemporaryFile(prefix='testclushconfig')
f.write(dedent("""
[Main]
fanout: 42
connect_timeout: 14
command_timeout: 0
history_size: 100
color: auto
verbosity: 1
#ssh_user: root
#ssh_path: /usr/bin/ssh
#ssh_options: -oStrictHostKeyChecking=no""").encode())
f.flush()
parser = OptionParser("dummy")
parser.install_clush_config_options()
parser.install_display_options(verbose_options=True)
parser.install_connector_options()
options, _ = parser.parse_args([])
config = ClushConfig(options, filename=f.name)
display = Display(options, config)
display.vprint(VERB_STD, "test")
display.vprint(VERB_DEBUG, "shouldn't see this")
self.assertEqual(config.color, WHENCOLOR_CHOICES[2])
self.assertEqual(config.verbosity, VERB_STD)
self.assertEqual(config.node_count, True)
self.assertEqual(config.fanout, 42)
self.assertEqual(config.connect_timeout, 14)
self.assertEqual(config.command_timeout, 0)
self.assertEqual(config.ssh_user, None)
self.assertEqual(config.ssh_path, None)
self.assertEqual(config.ssh_options, None)
f.close()
示例3: testClushConfigSetRlimitValueError
# 需要导入模块: from ClusterShell.CLI.OptionParser import OptionParser [as 别名]
# 或者: from ClusterShell.CLI.OptionParser.OptionParser import install_clush_config_options [as 别名]
def testClushConfigSetRlimitValueError(self):
"""test CLI.Config.ClushConfig (setrlimit ValueError)"""
soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE)
f = tempfile.NamedTemporaryFile(prefix='testclushconfig')
f.write(dedent("""
[Main]
fanout: 42
connect_timeout: 14
command_timeout: 0
history_size: 100
color: auto
# Use wrong fd_max value to generate ValueError
fd_max: -1
verbosity: 1""").encode())
f.flush()
parser = OptionParser("dummy")
parser.install_clush_config_options()
parser.install_display_options(verbose_options=True)
parser.install_connector_options()
options, _ = parser.parse_args([])
config = ClushConfig(options, filename=f.name)
f.close()
display = Display(options, config)
class TestException(Exception): pass
def mock_vprint_err(level, message):
if message.startswith('Warning: Failed to set max open files'):
raise TestException()
display.vprint_err = mock_vprint_err
self.assertRaises(TestException, set_fdlimit, config.fd_max, display)
soft2, _ = resource.getrlimit(resource.RLIMIT_NOFILE)
self.assertEqual(soft, soft2)
示例4: testClushConfigSetRlimit
# 需要导入模块: from ClusterShell.CLI.OptionParser import OptionParser [as 别名]
# 或者: from ClusterShell.CLI.OptionParser.OptionParser import install_clush_config_options [as 别名]
def testClushConfigSetRlimit(self):
"""test CLI.Config.ClushConfig (setrlimit)"""
soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE)
hard2 = min(32768, hard)
f = tempfile.NamedTemporaryFile(prefix='testclushconfig')
f.write(dedent("""
[Main]
fanout: 42
connect_timeout: 14
command_timeout: 0
history_size: 100
color: auto
fd_max: %d
verbosity: 1
""" % hard2).encode())
f.flush()
parser = OptionParser("dummy")
parser.install_clush_config_options()
parser.install_display_options(verbose_options=True)
parser.install_connector_options()
options, _ = parser.parse_args([])
config = ClushConfig(options, filename=f.name)
display = Display(options, config)
# force a lower soft limit
resource.setrlimit(resource.RLIMIT_NOFILE, (hard2/2, hard))
# max_fdlimit should increase soft limit again
set_fdlimit(config.fd_max, display)
# verify
soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE)
self.assertEqual(soft, hard2)
f.close()
示例5: testClushConfigFull
# 需要导入模块: from ClusterShell.CLI.OptionParser import OptionParser [as 别名]
# 或者: from ClusterShell.CLI.OptionParser.OptionParser import install_clush_config_options [as 别名]
def testClushConfigFull(self):
"""test CLI.Config.ClushConfig (full)"""
f = tempfile.NamedTemporaryFile(prefix='testclushconfig')
f.write(dedent("""
[Main]
fanout: 42
connect_timeout: 14
command_timeout: 0
history_size: 100
color: auto
node_count: yes
verbosity: 1
ssh_user: root
ssh_path: /usr/bin/ssh
ssh_options: -oStrictHostKeyChecking=no
""").encode())
f.flush()
parser = OptionParser("dummy")
parser.install_clush_config_options()
parser.install_display_options(verbose_options=True)
parser.install_connector_options()
options, _ = parser.parse_args([])
config = ClushConfig(options, filename=f.name)
self.assertEqual(config.color, WHENCOLOR_CHOICES[2])
self.assertEqual(config.verbosity, VERB_STD)
self.assertEqual(config.node_count, True)
self.assertEqual(config.fanout, 42)
self.assertEqual(config.connect_timeout, 14)
self.assertEqual(config.command_timeout, 0)
self.assertEqual(config.ssh_user, "root")
self.assertEqual(config.ssh_path, "/usr/bin/ssh")
self.assertEqual(config.ssh_options, "-oStrictHostKeyChecking=no")
f.close()
示例6: testClushConfigUserOverride
# 需要导入模块: from ClusterShell.CLI.OptionParser import OptionParser [as 别名]
# 或者: from ClusterShell.CLI.OptionParser.OptionParser import install_clush_config_options [as 别名]
def testClushConfigUserOverride(self):
"""test CLI.Config.ClushConfig (XDG_CONFIG_HOME user config)"""
# XXX Test should be improved when CLUSTERSHELL_CONFIG is available
# Improvement: override CLUSTERSHELL_CONFIG and set a sys clush config
# then verify that user config overrides CLUSTERSHELL_CONFIG as
# expected...
# For now, it has been tested manually. This test only really only
# ensures that user config is taken into account.
xdg_config_home_save = os.environ.get('XDG_CONFIG_HOME')
# Create fake XDG_CONFIG_HOME
dname = make_temp_dir()
try:
os.environ['XDG_CONFIG_HOME'] = dname
# create $XDG_CONFIG_HOME/clustershell/clush.conf
usercfgdir = os.path.join(dname, 'clustershell')
os.mkdir(usercfgdir)
cfgfile = open(os.path.join(usercfgdir, 'clush.conf'), 'w')
cfgfile.write(dedent("""
[Main]
fanout: 42
connect_timeout: 14
command_timeout: 0
history_size: 100
color: never
verbosity: 2
ssh_user: trump
ssh_path: ~/bin/ssh
ssh_options: -oSomeDummyUserOption=yes
"""))
cfgfile.flush()
parser = OptionParser("dummy")
parser.install_clush_config_options()
parser.install_display_options(verbose_options=True)
parser.install_connector_options()
options, _ = parser.parse_args([])
config = ClushConfig(options) # filename=None to use defaults!
self.assertEqual(config.color, WHENCOLOR_CHOICES[0])
self.assertEqual(config.verbosity, VERB_VERB) # takes biggest
self.assertEqual(config.fanout, 42)
self.assertEqual(config.connect_timeout, 14)
self.assertEqual(config.command_timeout, 0)
self.assertEqual(config.ssh_user, 'trump')
self.assertEqual(config.ssh_path, '~/bin/ssh')
self.assertEqual(config.ssh_options, '-oSomeDummyUserOption=yes')
cfgfile.close()
finally:
if xdg_config_home_save:
os.environ['XDG_CONFIG_HOME'] = xdg_config_home_save
else:
del os.environ['XDG_CONFIG_HOME']
shutil.rmtree(dname, ignore_errors=True)
示例7: testClushConfigError
# 需要导入模块: from ClusterShell.CLI.OptionParser import OptionParser [as 别名]
# 或者: from ClusterShell.CLI.OptionParser.OptionParser import install_clush_config_options [as 别名]
def testClushConfigError(self):
"""test CLI.Config.ClushConfig (error)"""
f = tempfile.NamedTemporaryFile(prefix='testclushconfig')
f.write(dedent("""
[Main]
fanout: 3.2
connect_timeout: foo
command_timeout: bar
history_size: 100
color: maybe
node_count: 3
verbosity: bar
ssh_user: root
ssh_path: /usr/bin/ssh
ssh_options: -oStrictHostKeyChecking=no
""").encode())
f.flush()
parser = OptionParser("dummy")
parser.install_clush_config_options()
parser.install_display_options(verbose_options=True)
parser.install_connector_options()
options, _ = parser.parse_args([])
config = ClushConfig(options, filename=f.name)
try:
c = config.color
self.fail("Exception ClushConfigError not raised (color)")
except ClushConfigError:
pass
self.assertEqual(config.verbosity, 0) # probably for compatibility
try:
f = config.fanout
self.fail("Exception ClushConfigError not raised (fanout)")
except ClushConfigError:
pass
try:
f = config.node_count
self.fail("Exception ClushConfigError not raised (node_count)")
except ClushConfigError:
pass
try:
f = config.fanout
except ClushConfigError as e:
self.assertEqual(str(e)[0:20], "(Config Main.fanout)")
try:
t = config.connect_timeout
self.fail("Exception ClushConfigError not raised (connect_timeout)")
except ClushConfigError:
pass
try:
m = config.command_timeout
self.fail("Exception ClushConfigError not raised (command_timeout)")
except ClushConfigError:
pass
f.close()
示例8: testClushConfigWithInstalledConfig
# 需要导入模块: from ClusterShell.CLI.OptionParser import OptionParser [as 别名]
# 或者: from ClusterShell.CLI.OptionParser.OptionParser import install_clush_config_options [as 别名]
def testClushConfigWithInstalledConfig(self):
"""test CLI.Config.ClushConfig (installed config required)"""
# This test needs installed configuration files (needed for
# maximum coverage).
parser = OptionParser("dummy")
parser.install_clush_config_options()
parser.install_display_options(verbose_options=True)
parser.install_connector_options()
options, _ = parser.parse_args([])
config = ClushConfig(options)
示例9: testClushConfigAlmostEmpty
# 需要导入模块: from ClusterShell.CLI.OptionParser import OptionParser [as 别名]
# 或者: from ClusterShell.CLI.OptionParser.OptionParser import install_clush_config_options [as 别名]
def testClushConfigAlmostEmpty(self):
"""test CLI.Config.ClushConfig (almost empty)"""
f = tempfile.NamedTemporaryFile(prefix='testclushconfig')
f.write("[Main]\n".encode())
parser = OptionParser("dummy")
parser.install_clush_config_options()
parser.install_display_options(verbose_options=True)
parser.install_connector_options()
options, _ = parser.parse_args([])
config = ClushConfig(options, filename=f.name)
self.assertEqual(config.color, WHENCOLOR_CHOICES[-1])
self.assertEqual(config.verbosity, VERB_STD)
self.assertEqual(config.node_count, True)
self.assertEqual(config.fanout, 64)
self.assertEqual(config.connect_timeout, 10)
self.assertEqual(config.command_timeout, 0)
self.assertEqual(config.ssh_user, None)
self.assertEqual(config.ssh_path, None)
self.assertEqual(config.ssh_options, None)
f.close()
示例10: main
# 需要导入模块: from ClusterShell.CLI.OptionParser import OptionParser [as 别名]
# 或者: from ClusterShell.CLI.OptionParser.OptionParser import install_clush_config_options [as 别名]
def main():
"""clush script entry point"""
sys.excepthook = clush_excepthook
#
# Argument management
#
usage = "%prog [options] command"
parser = OptionParser(usage)
parser.add_option("-n", "--nostdin", action="store_true", dest="nostdin",
help="don't watch for possible input from stdin")
parser.install_groupsconf_option()
parser.install_clush_config_options()
parser.install_nodes_options()
parser.install_display_options(verbose_options=True)
parser.install_filecopy_options()
parser.install_connector_options()
(options, args) = parser.parse_args()
set_std_group_resolver_config(options.groupsconf)
#
# Load config file and apply overrides
#
config = ClushConfig(options, options.conf)
# Initialize logging
if config.verbosity >= VERB_DEBUG:
logging.basicConfig(level=logging.DEBUG)
logging.debug("clush: STARTING DEBUG")
else:
logging.basicConfig(level=logging.CRITICAL)
# Should we use ANSI colors for nodes?
if config.color == "auto":
color = sys.stdout.isatty() and (options.gatherall or \
sys.stderr.isatty())
else:
color = config.color == "always"
try:
# Create and configure display object.
display = Display(options, config, color)
except ValueError as exc:
parser.error("option mismatch (%s)" % exc)
if options.groupsource:
# Be sure -a/g -s source work as espected.
std_group_resolver().default_source_name = options.groupsource
# Compute the nodeset and warn for possible use of shell pathname
# expansion (#225)
wnodelist = []
xnodelist = []
if options.nodes:
wnodelist = [NodeSet(nodes) for nodes in options.nodes]
if options.exclude:
xnodelist = [NodeSet(nodes) for nodes in options.exclude]
for (opt, nodelist) in (('w', wnodelist), ('x', xnodelist)):
for nodes in nodelist:
if len(nodes) == 1 and exists(str(nodes)):
display.vprint_err(VERB_STD, "Warning: using '-%s %s' and "
"local path '%s' exists, was it expanded "
"by the shell?" % (opt, nodes, nodes))
# --hostfile support (#235)
for opt_hostfile in options.hostfile:
try:
fnodeset = NodeSet()
with open(opt_hostfile) as hostfile:
for line in hostfile.read().splitlines():
fnodeset.updaten(nodes for nodes in line.split())
display.vprint_err(VERB_DEBUG,
"Using nodeset %s from hostfile %s"
% (fnodeset, opt_hostfile))
wnodelist.append(fnodeset)
except IOError as exc:
# re-raise as OSError to be properly handled
errno, strerror = exc.args
raise OSError(errno, strerror, exc.filename)
# Instantiate target nodeset from command line and hostfile
nodeset_base = NodeSet.fromlist(wnodelist)
# Instantiate filter nodeset (command line only)
nodeset_exclude = NodeSet.fromlist(xnodelist)
# Specified engine prevails over default engine
DEFAULTS.engine = options.engine
# Do we have nodes group?
task = task_self()
task.set_info("debug", config.verbosity >= VERB_DEBUG)
if config.verbosity == VERB_DEBUG:
std_group_resolver().set_verbosity(1)
#.........这里部分代码省略.........