From e3bfe2bafa89c8536235c9664f22017d08a24450 Mon Sep 17 00:00:00 2001
From: Christophe Sovant <christophe.sovant@forgerock.com>
Date: Sat, 31 May 2008 11:31:52 +0000
Subject: [PATCH] Add compare_property_table function to common.py and add snmp.py file
---
opends/tests/shared/functions/environment.xml | 1
opends/tests/shared/python/snmp.py | 113 +++++++++++++++++++++++++++++++++++++
opends/tests/shared/python/common.py | 29 +++++++++
3 files changed, 142 insertions(+), 1 deletions(-)
diff --git a/opends/tests/shared/functions/environment.xml b/opends/tests/shared/functions/environment.xml
index ec812f2..a7f94c0 100755
--- a/opends/tests/shared/functions/environment.xml
+++ b/opends/tests/shared/functions/environment.xml
@@ -107,6 +107,7 @@
from common import *
from security import *
from replication import *
+ from snmp import *
</script>
diff --git a/opends/tests/shared/python/common.py b/opends/tests/shared/python/common.py
index 535f5bd..63928f7 100644
--- a/opends/tests/shared/python/common.py
+++ b/opends/tests/shared/python/common.py
@@ -36,6 +36,7 @@
"compare_file",
"is_windows_platform",
"create_property_table",
+ "compare_property_table",
"exception_thrown" ]
class format_testcase:
@@ -202,7 +203,33 @@
try:
value = line.split(separator)[1].strip()
except IndexError:
- value = '-'
+ value = ''
table[key] = value
return table
+
+def compare_property_table(refTable, newTable):
+ import re
+
+ result = ''
+
+ refKeys=newTable.keys()
+ for refKey in refKeys:
+ if not refTable.has_key(refKey):
+ result = result + 'ERROR: Entry ' + refKey + ' does not exists'
+ result = result + ' in the reference table.\n'
+
+ refKeys=refTable.keys()
+ for refKey in refKeys:
+ if not newTable.has_key(refKey):
+ result = result + 'ERROR: Entry ' + refKey + ' does not exists'
+ result = result + ' in the new table.\n'
+ else:
+ result = result + refKey + '=> expected: ' + refTable[refKey]
+ result = result + ' , result: ' + newTable[refKey] + '\n'
+
+ if refTable[refKey] != newTable[refKey]:
+ result = result + 'ERROR: Value for ' + refKey
+ result = result + ' should be the same.\n'
+
+ return result
diff --git a/opends/tests/shared/python/snmp.py b/opends/tests/shared/python/snmp.py
new file mode 100644
index 0000000..a6fa1ea
--- /dev/null
+++ b/opends/tests/shared/python/snmp.py
@@ -0,0 +1,113 @@
+#!/usr/bin/python
+
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License"). You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# information:
+# Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright 2008 Sun Microsystems, Inc.
+
+__version__ = "$Revision$"
+# $Source$
+
+# public symbols
+__all__ = [ "create_table_fromoutput",
+ "compare_snmp_values",
+ "get_handler_count",
+ "get_handler_index" ]
+
+def create_table_fromoutput(output):
+ table = {}
+ separator = '='
+ start= 'ds'
+
+ for line in output.splitlines():
+ if line.startswith('ds'):
+ key = line.split(separator)[0].strip()
+ try:
+ value = line.split(separator)[1].strip()
+ except IndexError:
+ value = '-'
+ table[key] = value
+
+ return table
+
+def compare_snmp_values(refTable, newTable):
+ import re
+
+ result = ''
+
+ refKeys=newTable.keys()
+ for refKey in refKeys:
+ if not refTable.has_key(refKey):
+ result = result + 'ERROR: Entry ' + refKey + ' does not exists'
+ result = result + ' in the reference table.\n'
+
+ refKeys=refTable.keys()
+ for refKey in refKeys:
+ if not newTable.has_key(refKey):
+ result = result + 'ERROR: Entry ' + refKey + ' does not exists'
+ result = result + ' in the new table.\n'
+ else:
+ result = result + refKey + '=> expected: ' + refTable[refKey]
+ result = result + ' , result: ' + newTable[refKey] + '\n'
+
+ pattern1 = re.compile('dsApplIfOutBytes.*')
+ pattern2 = re.compile('dsApplIfInBytes.*')
+ if pattern1.search(refKey) != None or pattern2.search(refKey) != None:
+ if refTable[refKey] > newTable[refKey]:
+ result = result + 'ERROR: Value for ' + refKey
+ result = result + ' should be greater.\n'
+ else:
+ if refTable[refKey] != newTable[refKey]:
+ result = result + 'ERROR: Value for ' + refKey
+ result = result + ' should be the same.\n'
+
+ return result
+
+def get_handler_count(table):
+ import re
+
+ count = 0
+
+ keys=table.keys()
+ for key in keys:
+ pattern = re.compile('dsApplIfProtocol\..*')
+ if pattern.search(key) != None:
+ count = count + 1
+
+ return count
+
+def get_handler_index(table, handler):
+ import re
+
+ index = 0
+
+ keys=table.keys()
+ for key in keys:
+ pattern = re.compile('dsApplIfProtocol\..*')
+ if pattern.search(key) != None:
+ if table[key] == handler:
+ regexp = re.compile('^.*\.')
+ index = re.sub(regexp, '', key)
+ break
+
+ return index
--
Gitblit v1.10.0