Add -b/--enable-beta option for enabling beta functionalities.
This commit is contained in:
parent
f858191976
commit
1c07b63f1d
4 changed files with 35 additions and 6 deletions
|
@ -71,6 +71,8 @@ def inspect_ssh_mux_opts():
|
||||||
class Config(object):
|
class Config(object):
|
||||||
"""Cdist main class to hold arbitrary data"""
|
"""Cdist main class to hold arbitrary data"""
|
||||||
|
|
||||||
|
BETA_ARGS = ['jobs']
|
||||||
|
|
||||||
def __init__(self, local, remote, dry_run=False, jobs=None):
|
def __init__(self, local, remote, dry_run=False, jobs=None):
|
||||||
|
|
||||||
self.local = local
|
self.local = local
|
||||||
|
@ -109,6 +111,19 @@ class Config(object):
|
||||||
for host in source:
|
for host in source:
|
||||||
yield host
|
yield host
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def _check_beta(cls, args_dict):
|
||||||
|
if 'beta' not in args_dict:
|
||||||
|
args_dict['beta'] = False
|
||||||
|
# Check only if beta is not enabled: if beta option is specified then
|
||||||
|
# raise error.
|
||||||
|
if not args_dict['beta']:
|
||||||
|
err_msg = ("\'{}\' is beta, but beta is not enabled. If you want "
|
||||||
|
"to use it please enable beta functionalities.")
|
||||||
|
for arg in cls.BETA_ARGS:
|
||||||
|
if arg in args_dict:
|
||||||
|
raise cdist.Error(err_msg.format(arg))
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def commandline(cls, args):
|
def commandline(cls, args):
|
||||||
"""Configure remote system"""
|
"""Configure remote system"""
|
||||||
|
@ -120,6 +135,10 @@ class Config(object):
|
||||||
if args.manifest == '-' and args.hostfile == '-':
|
if args.manifest == '-' and args.hostfile == '-':
|
||||||
raise cdist.Error(("Cannot read both, manifest and host file, "
|
raise cdist.Error(("Cannot read both, manifest and host file, "
|
||||||
"from stdin"))
|
"from stdin"))
|
||||||
|
|
||||||
|
args_dict = vars(args)
|
||||||
|
cls._check_beta(args_dict)
|
||||||
|
|
||||||
# if no host source is specified then read hosts from stdin
|
# if no host source is specified then read hosts from stdin
|
||||||
if not (args.hostfile or args.host):
|
if not (args.hostfile or args.host):
|
||||||
args.hostfile = '-'
|
args.hostfile = '-'
|
||||||
|
@ -148,7 +167,6 @@ class Config(object):
|
||||||
args.remote_exec_pattern = None
|
args.remote_exec_pattern = None
|
||||||
args.remote_copy_pattern = None
|
args.remote_copy_pattern = None
|
||||||
|
|
||||||
args_dict = vars(args)
|
|
||||||
# if remote-exec and/or remote-copy args are None then user
|
# if remote-exec and/or remote-copy args are None then user
|
||||||
# didn't specify command line options nor env vars:
|
# didn't specify command line options nor env vars:
|
||||||
# inspect multiplexing options for default cdist.REMOTE_COPY/EXEC
|
# inspect multiplexing options for default cdist.REMOTE_COPY/EXEC
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
Changelog
|
Changelog
|
||||||
---------
|
---------
|
||||||
next:
|
next:
|
||||||
* Core: Add -j, --jobs option for parallel execution and add parallel support for global explorers (Darko Poljak)
|
* Core: Add -b, --enable-beta option for enabling beta functionalities (Darko Poljak)
|
||||||
|
* Core: Add -j, --jobs option for parallel execution and add parallel support for global explorers (currently in beta) (Darko Poljak)
|
||||||
* Core: Add derived env vars for target hostname and fqdn (Darko Poljak)
|
* Core: Add derived env vars for target hostname and fqdn (Darko Poljak)
|
||||||
* New type: __keyboard: Set keyboard layout (Carlos Ortigoza)
|
* New type: __keyboard: Set keyboard layout (Carlos Ortigoza)
|
||||||
* Documentation: Re-license types' man pages to GPLV3+ (Dmitry Bogatov, Darko Poljak)
|
* Documentation: Re-license types' man pages to GPLV3+ (Dmitry Bogatov, Darko Poljak)
|
||||||
|
|
|
@ -17,7 +17,7 @@ SYNOPSIS
|
||||||
|
|
||||||
cdist config [-h] [-d] [-v] [-c CONF_DIR] [-f HOSTFILE] [-i MANIFEST]
|
cdist config [-h] [-d] [-v] [-c CONF_DIR] [-f HOSTFILE] [-i MANIFEST]
|
||||||
[-n] [-o OUT_PATH] [-p] [-s] [--remote-copy REMOTE_COPY]
|
[-n] [-o OUT_PATH] [-p] [-s] [--remote-copy REMOTE_COPY]
|
||||||
[--remote-exec REMOTE_EXEC] [-j [JOBS]]
|
[--remote-exec REMOTE_EXEC] [-j [JOBS]] [-b]
|
||||||
[host [host ...]]
|
[host [host ...]]
|
||||||
|
|
||||||
cdist shell [-h] [-d] [-v] [-s SHELL]
|
cdist shell [-h] [-d] [-v] [-s SHELL]
|
||||||
|
@ -110,7 +110,12 @@ Configure one or more hosts.
|
||||||
.. option:: -j [JOBS], --jobs [JOBS]
|
.. option:: -j [JOBS], --jobs [JOBS]
|
||||||
|
|
||||||
Specify the maximum number of parallel jobs; currently only
|
Specify the maximum number of parallel jobs; currently only
|
||||||
global explorers are supported
|
global explorers are supported (currently in beta)
|
||||||
|
|
||||||
|
.. option:: -b, --enable-beta
|
||||||
|
|
||||||
|
Enable beta functionalities. Beta functionalities include the
|
||||||
|
following options: -j/--jobs.
|
||||||
|
|
||||||
SHELL
|
SHELL
|
||||||
-----
|
-----
|
||||||
|
|
|
@ -122,10 +122,15 @@ def commandline():
|
||||||
default=os.environ.get('CDIST_REMOTE_EXEC'))
|
default=os.environ.get('CDIST_REMOTE_EXEC'))
|
||||||
parser['config'].add_argument(
|
parser['config'].add_argument(
|
||||||
'-j', '--jobs', nargs='?', type=check_positive_int,
|
'-j', '--jobs', nargs='?', type=check_positive_int,
|
||||||
help=('Specify the maximum number of parallel jobs; currently '
|
help=('Specify the maximum number of parallel jobs, currently '
|
||||||
'only global explorers are supported'),
|
'only global explorers are supported (currently in beta'),
|
||||||
action='store', dest='jobs',
|
action='store', dest='jobs',
|
||||||
const=multiprocessing.cpu_count())
|
const=multiprocessing.cpu_count())
|
||||||
|
parser['config'].add_argument(
|
||||||
|
'-b', '--enable-beta',
|
||||||
|
help=('Enable beta functionalities. Beta functionalities '
|
||||||
|
'include the following options: -j/--jobs.'),
|
||||||
|
action='store_true', dest='beta', default=False)
|
||||||
parser['config'].set_defaults(func=cdist.config.Config.commandline)
|
parser['config'].set_defaults(func=cdist.config.Config.commandline)
|
||||||
|
|
||||||
# Shell
|
# Shell
|
||||||
|
|
Loading…
Reference in a new issue