From 02b062dd1bc4e62bddfbe225c74aff71f2339503 Mon Sep 17 00:00:00 2001 From: Gordon Messmer Date: Thu, 21 Apr 2016 13:58:13 -0700 Subject: Fix format error in logger call. --- src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py') diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py b/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py index b2e43bde7..777b0c324 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py @@ -295,8 +295,8 @@ class HelperSubcommand(Bcfg2.Options.Subcommand): print(json.dumps(self._run(setup, data))) except: # pylint: disable=W0702 self.logger.error("Unexpected error running %s: %s" % - self.__class__.__name__.lower(), - sys.exc_info()[1], exc_info=1) + (self.__class__.__name__.lower(), + sys.exc_info()[1]), exc_info=1) print(json.dumps(self.fallback)) return 2 return 0 -- cgit v1.2.3-1-g7c22 From 46a155cfec84dc36c34b107b9e51f99c0b684468 Mon Sep 17 00:00:00 2001 From: Gordon Messmer Date: Thu, 21 Apr 2016 13:59:37 -0700 Subject: Remove PositionalArgument. It was incomplete and did not work as intended, requiring two positional args instead of one. --- src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py') diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py b/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py index 777b0c324..ec253208f 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py @@ -376,10 +376,7 @@ class CLI(Bcfg2.Options.CommandRegistry): """ The bcfg2-yum-helper CLI """ options = [ Bcfg2.Options.PathOption( - "-c", "--yum-config", help="Yum config file"), - Bcfg2.Options.PositionalArgument( - "command", help="Yum helper command", - choices=['clean', 'complete', 'get_groups'])] + "-c", "--yum-config", help="Yum config file")] def __init__(self): Bcfg2.Options.CommandRegistry.__init__(self) -- cgit v1.2.3-1-g7c22 From 5fdbe15b605aad556e9bb991d2fe899f49434200 Mon Sep 17 00:00:00 2001 From: Gordon Messmer Date: Thu, 21 Apr 2016 14:01:37 -0700 Subject: Only read input if accept_input is True. --- src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py') diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py b/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py index ec253208f..ddc684628 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py @@ -283,13 +283,14 @@ class HelperSubcommand(Bcfg2.Options.Subcommand): self.verbosity = 1 def run(self, setup): - try: - data = json.loads(sys.stdin.read()) - except ValueError: - self.logger.error("Error decoding JSON input: %s" % - sys.exc_info()[1]) - print(json.dumps(self.fallback)) - return 2 + if accept_input: + try: + data = json.loads(sys.stdin.read()) + except ValueError: + self.logger.error("Error decoding JSON input: %s" % + sys.exc_info()[1]) + print(json.dumps(self.fallback)) + return 2 try: print(json.dumps(self._run(setup, data))) -- cgit v1.2.3-1-g7c22 From d7ffffb20f041c982fac1b74308b6fa29f2c00db Mon Sep 17 00:00:00 2001 From: Gordon Messmer Date: Thu, 21 Apr 2016 14:07:02 -0700 Subject: Bcfg2.Options.Subcommand must not access Options.setup in __init__. --- src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py') diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py b/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py index ddc684628..4ffd55d68 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py @@ -274,15 +274,15 @@ class HelperSubcommand(Bcfg2.Options.Subcommand): # whether or not this command accepts input on stdin accept_input = True - def __init__(self): - Bcfg2.Options.Subcommand.__init__(self) - self.verbosity = 0 + # logging level + verbosity = 0 + + def run(self, setup): if Bcfg2.Options.setup.debug: self.verbosity = 5 elif Bcfg2.Options.setup.verbose: self.verbosity = 1 - def run(self, setup): if accept_input: try: data = json.loads(sys.stdin.read()) @@ -311,10 +311,13 @@ class DepSolverSubcommand(HelperSubcommand): # pylint: disable=W0223 """ Base class for helper commands that use the depsolver (i.e., only resolve dependencies, don't modify the cache) """ - def __init__(self): - HelperSubcommand.__init__(self) + # DepSolver instance used in _run function + depsolver = None + + def run(self, setup): self.depsolver = DepSolver(Bcfg2.Options.setup.yum_config, self.verbosity) + HelperSubcommand.run(self, setup) class CacheManagerSubcommand(HelperSubcommand): # pylint: disable=W0223 @@ -323,10 +326,13 @@ class CacheManagerSubcommand(HelperSubcommand): # pylint: disable=W0223 fallback = False accept_input = False - def __init__(self): - HelperSubcommand.__init__(self) + # CacheManager instance used in _run function + cachemgr = None + + def run(self, setup): self.cachemgr = CacheManager(Bcfg2.Options.setup.yum_config, self.verbosity) + HelperSubcommand.run(self, setup) class Clean(CacheManagerSubcommand): -- cgit v1.2.3-1-g7c22 From ac0c4795ed6e08dd7af64221e8c39c857df05d13 Mon Sep 17 00:00:00 2001 From: Gordon Messmer Date: Thu, 21 Apr 2016 14:13:10 -0700 Subject: Set value for data in case accept_input is false. --- src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py') diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py b/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py index 4ffd55d68..89cc23090 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/YumHelper.py @@ -283,7 +283,8 @@ class HelperSubcommand(Bcfg2.Options.Subcommand): elif Bcfg2.Options.setup.verbose: self.verbosity = 1 - if accept_input: + data = None + if self.accept_input: try: data = json.loads(sys.stdin.read()) except ValueError: -- cgit v1.2.3-1-g7c22