validAreasList = ', '.join(validAreas ) parser = PfSenseOptionParser() parser.add_option("--area", dest="area", help="Backup Area: %s" % (validAreasList ), default='all') parser.add_option('--no-rrd', dest='noRRD', action='store_true', help='Do not backup RRD (will result in large XML file). Only applicable if --area=all.' ) parser.add_option('--no-packages', dest='noPackages', action='store_true', help='Do not backup package info. Only applicable if --area=all.' ) parser.add_option("--ssl_verification", dest="ssl_verification", help="Whether SSL should be verified or not, valid values are yes/no, true/false, 1/0", default=True, metavar="yes/no") parser.add_option("--overwrite", dest="overwrite", default=False, help="Command line options will overwrite same settings in config file", action="store_true") parser.add_option('-o', '--output', dest='output', help='Output file (default: stdout)' ) parser.add_option('--output-dir', dest='output_dir', help='Directory to store backup files') (options, args) = parser.parse_args() logger = logging.setupLogger(options.logging) parser.check_cmd_options( options ) required_items = ['host', 'username', 'password'] options_cmdline = vars(options).copy() del options_cmdline['config'] del options_cmdline['overwrite'] configFile = ConfigParser() configFile.read(options.config) api = PfSenseAPI() for section in configFile.sections(): logger.info("Working on %s" % section) parsed_options = parser.parse_individual_options(configFile.items(section), options_cmdline, overwrite = options.overwrite, bool_keys = ['ssl_verification'])