def main(): configfile = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'config.conf') config = ConfigParser() if not os.path.exists(configfile): # Well there wasn't a config file located in the parent directory # so we should create a new one. config.add_section('SecurityCenter') config.set('SecurityCenter', 'host', input('SecurityCenter IP Address : ')) config.set('SecurityCenter', 'user', input('SecurityCenter Username : '******'SecurityCenter', 'pass', getpass.getpass('SecurityCenter Password : '******'SecurityCenter', 'path', os.path.join(input('Folder to place reports : '), '')) with open(configfile, 'w') as fobj: config.write(fobj) else: config.read(configfile) hostip = config.get('SecurityCenter', 'host') username = config.get('SecurityCenter', 'user') password = config.get('SecurityCenter', 'pass') fldrloc = config.get('SecurityCenter', 'path') # What the element header for each set of data should be called elementname = 'PortsAndServices' # Begin collecting data from SecurityCenter data = collect(hostip, username, password) # Enable the writedev line below to help with development and # troubleshooting data from SecurityCenter # # Creates a JSON and XML output of the raw SecurityCenter data # # If you are developing, it is helpful to comment out the # data = parsedata(data) and writexml lines in order to get the JSON # file by itself to see what the data structure is like #writedev(fldrloc, scriptname, data, logger) # Parse the data retrieved from SecurityCenter data = parsedata(data) # Write parse data (stored as dictionary objects in a list variable) to XML try: if optcsv: writecsv(fldrloc, scriptname, data, logger) else: writexml(fldrloc, scriptname, data, elementname, logger) except Exception: logger.error('Error in writexml function', exc_info=True) closeexit(1) # Close log file and exit script cleanly closeexit(0)
def main(): configfile = os.path.join(os.path.dirname( os.path.abspath(__file__)), '..', 'config.conf') config = ConfigParser() if not os.path.exists(configfile): # Well there wasn't a config file located in the parent directory # so we should create a new one. config.add_section('SecurityCenter') config.set('SecurityCenter', 'host', input( 'SecurityCenter IP Address : ')) config.set('SecurityCenter', 'user', input( 'SecurityCenter Username : '******'SecurityCenter', 'pass', getpass.getpass( 'SecurityCenter Password : '******'SecurityCenter', 'path', os.path.join(input( 'Folder to place reports : '), '')) with open(configfile, 'w') as fobj: config.write(fobj) else: config.read(configfile) hostip = config.get('SecurityCenter', 'host') username = config.get('SecurityCenter', 'user') password = config.get('SecurityCenter', 'pass') fldrloc = config.get('SecurityCenter', 'path') data = getRuleData(hostip, username, password) # What the element header for each set of data should be called elementname = 'RecastRiskRules' # Write parse data (stored as dictionary objects in a list variable) to XML try: if optcsv: writecsv(fldrloc, scriptname, data, logger) else: writexml(fldrloc, scriptname, data, elementname, logger) except Exception: logger.error('Error in writexml function', exc_info=True) closeexit(1) # Close log file and exit script cleanly closeexit(0)