backend/server/action/scap.py | 5 ---
backend/server/action_extra_data/scap.py | 10
++++++-
client/rhel/spacewalk-oscap/scap.py | 9 +++++-
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml | 3 ++
java/code/webapp/WEB-INF/pages/common/fragments/audit/scap-list.jspf | 13
+++++++---
5 files changed, 30 insertions(+), 10 deletions(-)
New commits:
commit 5f7036273f7102e907e336cf184fa1f15b576513
Author: Simon Lukasik <slukasik(a)redhat.com>
Date: Mon Apr 30 14:52:37 2012 +0200
Assign a dummy profile when none is selected.
diff --git a/backend/server/action_extra_data/scap.py
b/backend/server/action_extra_data/scap.py
index b4329b6..0fd3d37 100644
--- a/backend/server/action_extra_data/scap.py
+++ b/backend/server/action_extra_data/scap.py
@@ -34,7 +34,7 @@ def xccdf_eval(server_id, action_id, data={}):
resume = xml.dom.minidom.parseString(data['resume'])
benchmark = resume.getElementsByTagName('benchmark-resume')[0]
- profiles = benchmark.getElementsByTagName('profile')
+ profiles = benchmark.getElementsByTagName('profile') or
[_dummyDefaultProfile()]
testresults = benchmark.getElementsByTagName('TestResult')
if len(profiles) < 1 or len(testresults) < 1:
log_error('Scap report misses profile or testresult element')
@@ -118,6 +118,14 @@ def _get_text(node):
rc.append(node.data)
return ''.join(rc)
+class _dummyDefaultProfile:
+ def getAttribute(self, name):
+ if name == 'id':
+ return 'None'
+ elif name == 'title':
+ return 'No profile selected. Using defaults.'
+ return ''
+
_query_clear_tresult = rhnSQL.Statement("""
delete from rhnXccdfTestresult
where server_id = :server_id
commit b1095dcee5b38413a973b3872773aae57f0d9a75
Author: Simon Lukasik <slukasik(a)redhat.com>
Date: Mon Apr 30 14:46:45 2012 +0200
Do not divide by zero. It prints a question mark.
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index 537b712..98ead2e 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -11961,6 +11961,9 @@ the <strong>Red Hat Enterprise Linux System
Administration Guide.</stro
<trans-unit id="system.audit.listscap.jsp.fixed">
<source>Fixed</source>
</trans-unit>
+ <trans-unit id="system.audit.listscap.jsp.na">
+ <source>N/A</source>
+ </trans-unit>
</group>
<group>
diff --git a/java/code/webapp/WEB-INF/pages/common/fragments/audit/scap-list.jspf
b/java/code/webapp/WEB-INF/pages/common/fragments/audit/scap-list.jspf
index 7c5a84a..4491c6e 100644
--- a/java/code/webapp/WEB-INF/pages/common/fragments/audit/scap-list.jspf
+++ b/java/code/webapp/WEB-INF/pages/common/fragments/audit/scap-list.jspf
@@ -12,9 +12,16 @@
${current.completionTime}
</rl:column>
<rl:column headerkey="system.audit.listscap.jsp.percentage">
- <fmt:formatNumber maxFractionDigits="0"
- value="${current.pass * 100 / (current.sum - current.notselected -
current.informational)}"/>
- %
+ <c:choose>
+ <c:when test="${current.sum - current.notselected - current.informational ==
0}">
+ <bean:message key="system.audit.listscap.jsp.na"/>
+ </c:when>
+ <c:otherwise>
+ <fmt:formatNumber maxFractionDigits="0"
+ value="${current.pass * 100 / (current.sum - current.notselected -
current.informational)}"/>
+ %
+ </c:otherwise>
+ </c:choose>
</rl:column>
<rl:column headerkey="system.audit.listscap.jsp.pass.abb">
<c:choose>
commit db1cca17cc501c8a90e94b5b6846a2c3b718db46
Author: Simon Lukasik <slukasik(a)redhat.com>
Date: Mon Apr 30 14:04:54 2012 +0200
Do not pass empty string as parameter to oscap tool.
diff --git a/client/rhel/spacewalk-oscap/scap.py b/client/rhel/spacewalk-oscap/scap.py
index cfcf46d..e9a21b6 100644
--- a/client/rhel/spacewalk-oscap/scap.py
+++ b/client/rhel/spacewalk-oscap/scap.py
@@ -16,8 +16,13 @@ def xccdf_eval(args, cache_only=None):
return (0, 'no-ops for caching', {})
results_file = tempfile.NamedTemporaryFile()
- oscap_err = _run_oscap(['xccdf', 'eval', '--results',
results_file.name]
- + args['params'].split(' ') + [args['path']])
+ if args['params']:
+ oscap_err = _run_oscap(['xccdf', 'eval', '--results',
results_file.name]
+ + args['params'].split(' ') + [args['path']])
+ else:
+ oscap_err = _run_oscap(['xccdf', 'eval', '--results',
results_file.name]
+ + [args['path']])
+
if not _assert_xml(results_file.name):
return (1, 'oscap tool did not produce valid xml.\n' + oscap_err, {})
commit 64cb02be588b11fb2931b2fc8225f72c65a985d3
Author: Simon Lukasik <slukasik(a)redhat.com>
Date: Mon Apr 30 13:04:10 2012 +0200
xccdf_eval should not send null value
As per today a scan needs additional parameters to complete.
None the less omission should be still possible.
Addressing:
Exception Handler Information
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/spacewalk/server/apacheRequest.py",
line 122, in call_function
response = apply(func, params)
File "/usr/share/rhn/server/handlers/xmlrpc/queue.py", line 329, in get
ret = self.__getV2(action)
File "/usr/share/rhn/server/handlers/xmlrpc/queue.py", line 95, in
__getV2
xmlblob = xmlrpclib.dumps(result, methodname=action['method'])
File "/usr/lib64/python2.4/xmlrpclib.py", line 1029, in dumps
data = m.dumps(params)
File "/usr/lib64/python2.4/xmlrpclib.py", line 603, in dumps
dump(v, write)
File "/usr/lib64/python2.4/xmlrpclib.py", line 615, in __dump
f(self, value, write)
File "/usr/lib64/python2.4/xmlrpclib.py", line 696, in dump_struct
dump(v, write)
File "/usr/lib64/python2.4/xmlrpclib.py", line 615, in __dump
f(self, value, write)
File "/usr/lib64/python2.4/xmlrpclib.py", line 619, in dump_nil
raise TypeError, "cannot marshal None unless allow_none is enabled"
TypeError: cannot marshal None unless allow_none is enabled
diff --git a/backend/server/action/scap.py b/backend/server/action/scap.py
index 8c1ef46..d587a79 100644
--- a/backend/server/action/scap.py
+++ b/backend/server/action/scap.py
@@ -33,5 +33,5 @@ def xccdf_eval(server_id, action_id, dry_run=0):
"%s for server %s" % (action_id, server_id))
return ({
'path': dict['path'],
- 'params': rhnSQL.read_lob(dict['parameters'])
+ 'params': rhnSQL.read_lob(dict['parameters']) or ''
},)
commit 89ffcd278d02e259a61ee6d7ffd87ddd93b2e9f3
Author: Simon Lukasik <slukasik(a)redhat.com>
Date: Mon Apr 30 12:51:07 2012 +0200
Removing unhelpful assignment.
diff --git a/backend/server/action/scap.py b/backend/server/action/scap.py
index 1503b64..8c1ef46 100644
--- a/backend/server/action/scap.py
+++ b/backend/server/action/scap.py
@@ -31,9 +31,6 @@ def xccdf_eval(server_id, action_id, dry_run=0):
if not dict:
raise InvalidAction("scap.xccdf_eval: Unknown action id "
"%s for server %s" % (action_id, server_id))
- data = {
- 'params': dict['parameters'],
- 'path': dict['path']}
return ({
'path': dict['path'],
'params': rhnSQL.read_lob(dict['parameters'])