#!/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, index): 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 = 'dsApplIfOutBytes.%s' % index pattern2 = 'dsApplIfInBytes.%s' % index if refKey == pattern1 or refKey == pattern2: if int(newTable[refKey]) <= int(refTable[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