summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Client/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Bcfg2/Client/__init__.py')
-rw-r--r--src/lib/Bcfg2/Client/__init__.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/lib/Bcfg2/Client/__init__.py b/src/lib/Bcfg2/Client/__init__.py
index 674162572..157cc7f65 100644
--- a/src/lib/Bcfg2/Client/__init__.py
+++ b/src/lib/Bcfg2/Client/__init__.py
@@ -10,6 +10,7 @@ import fnmatch
import logging
import argparse
import tempfile
+import copy
import Bcfg2.Logger
import Bcfg2.Options
from Bcfg2.Client import XML
@@ -67,7 +68,7 @@ def prompt(msg):
ans = safe_input(msg)
return ans in ['y', 'Y']
except UnicodeEncodeError:
- ans = input(msg.encode('utf-8'))
+ ans = safe_input(msg.encode('utf-8'))
return ans in ['y', 'Y']
except (EOFError, KeyboardInterrupt):
# handle ^C
@@ -920,8 +921,8 @@ class Client(object):
"""Generate XML summary of execution statistics."""
states = {}
for (item, val) in list(self.states.items()):
- if not Bcfg2.Options.setup.only_important or \
- item.get('important', 'false').lower() == 'true':
+ if (not Bcfg2.Options.setup.only_important or
+ item.get('important', 'false').lower() == 'true'):
states[item] = val
feedback = XML.Element("upload-statistics")
@@ -929,6 +930,11 @@ class Client(object):
'Statistics', total=str(len(states)),
version='2.0',
revision=self.config.get('revision', '-1'))
+ flags = XML.SubElement(stats, "Flags")
+ XML.SubElement(flags, "Flag", name="dry_run",
+ value=str(Bcfg2.Options.setup.dry_run))
+ XML.SubElement(flags, "Flag", name="only_important",
+ value=str(Bcfg2.Options.setup.only_important))
good_entries = [key for key, val in list(states.items()) if val]
good = len(good_entries)
stats.set('good', str(good))
@@ -945,9 +951,10 @@ class Client(object):
if not states[entry]], "Bad")]:
container = XML.SubElement(stats, ename)
for item in data:
- item.set('qtext', '')
- container.append(item)
- item.text = None
+ new_item = copy.deepcopy(item)
+ new_item.set('qtext', '')
+ container.append(new_item)
+ new_item.text = None
timeinfo = XML.Element("OpStamps")
feedback.append(stats)