From 21a85e34d327b27b243ae069aa1fffff382832ae Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Thu, 23 Nov 2006 14:33:50 +0000 Subject: Allow bcfg2 -n -r all to work properly (Resolves Ticket #284) git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@2534 ce84e21b-d406-0410-9b95-82705330c041 --- src/lib/Client/Frame.py | 19 ++++++++++++------- src/sbin/bcfg2 | 3 --- 2 files changed, 12 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/lib/Client/Frame.py b/src/lib/Client/Frame.py index 5fe2c91e5..3ec2cb25a 100644 --- a/src/lib/Client/Frame.py +++ b/src/lib/Client/Frame.py @@ -83,10 +83,22 @@ class Frame: '''Set self.whitelist based on user interaction''' prompt = "Would you like to install %s: %s? (y/N): " rprompt = "Would you like to remove %s: %s? (y/N): " + if self.setup['remove']: + if self.setup['remove'] == 'all': + self.removal = self.extra + elif self.setup['remove'] == 'services': + self.removal = [entry for entry in self.extra if entry.tag == 'Service'] + elif self.setup['remove'] == 'packages': + self.removal = [entry for entry in self.extra if entry.tag == 'Package'] + if self.setup['dryrun']: self.logger.info("In dryrun mode: suppressing entry installation for:") self.logger.info(["%s:%s" % (entry.tag, entry.get('name')) for entry \ in self.states if not self.states[entry]]) + self.logger.info("In dryrun mode: suppressing entry removal for:") + self.logger.info(["%s:%s" % (entry.tag, entry.get('name')) for entry \ + in self.removal]) + self.removal = [] return elif self.setup['interactive']: self.whitelist = promptFilter(prompt, [entry for entry in self.states \ @@ -104,13 +116,6 @@ class Frame: else: # all systems are go self.whitelist = [entry for entry in self.states if not self.states[entry]] - if self.setup['remove']: - if self.setup['remove'] == 'all': - self.removal = self.extra - elif self.setup['remove'] == 'services': - self.removal = [entry for entry in self.extra if entry.tag == 'Service'] - elif self.setup['remove'] == 'packages': - self.removal = [entry for entry in self.extra if entry.tag == 'Package'] def DispatchInstallCalls(self, entries): '''Dispatch install calls to underlying tools''' diff --git a/src/sbin/bcfg2 b/src/sbin/bcfg2 index 67cfd8dbc..5f2094453 100755 --- a/src/sbin/bcfg2 +++ b/src/sbin/bcfg2 @@ -79,9 +79,6 @@ class Client: if (self.setup["file"] != False) and (self.setup["cache"] != False): print "cannot use -f and -c together" raise SystemExit, 1 - if self.setup['remove'] and self.setup['dryrun']: - print "cannot use -n and -r together" - raise SystemExit, 1 def run_probe(self, probe): '''Execute probe''' -- cgit v1.2.3-1-g7c22