Example #1
0
 def request_ip(msg, default="127.0.0.1"):
     while True:
         ip = input(msg % default)
         if not ip:
             ip = default
         try:
             return check_ipv4(ip)
         except ValueError as e:
             print(e)
Example #2
0
def load_config(config_file):

    optiplex_port = None
    aanderaa_port = None
    concentrator_port = None
    concentrator_ip = None
    magnetic_declination = None
    optiplex_ip = None
    aanderaa_ip = None

    if not config_file.is_file():
        raise ConfigurationError('You must provide a configuration file')

    log.debug('Loading config file "%s"' % config_file)

    try:
        cfg = configparser.ConfigParser()
        cfg.read(str(config_file))

        try:
            log.debug('Getting concentrator IP')
            concentrator_ip = check_ipv4(cfg.get('concentrator', 'ip'))
            log.debug('Getting concentrator port')
            concentrator_port = check_port(cfg.get('concentrator', 'port'))
        except (configparser.NoSectionError, configparser.NoOptionError) as e:
            raise ConfigurationError('The configuration file is incomplete: %s' % e)

        try:
            log.debug('Getting optiplex port')
            optiplex_port = check_port(cfg.get('optiplex', 'port'))
            log.debug('Getting optiplex IP')
            optiplex_ip = check_ipv4(cfg.get('optiplex', 'ip'))
        except configparser.NoOptionError as e:
            raise ConfigurationError('The configuration file is incomplete: %s' % e)
        except configparser.NoSectionError:
            optiplex_port = None

        try:
            log.debug('Getting aanderaa port')
            aanderaa_port = check_port(cfg.get('aanderaa', 'port'))
            log.debug('Getting magnetic declination')
            magnetic_declination = float(cfg.get('aanderaa', 'magnetic_declination'))
            msg = "Declination must be a number between -50 and 50"
            assert -50 <= magnetic_declination <= 50, msg
            log.debug('Getting aanderaa IP')
            aanderaa_ip = check_ipv4(cfg.get('aanderaa', 'ip'))
        except configparser.NoOptionError as e:
            raise ConfigurationError('The configuration file is incomplete: %s' % e)
        except configparser.NoSectionError:
            aanderaa_port = None
            magnetic_declination = None

    except (ValueError, AssertionError, EnvironmentError, configparser.ParsingError, configparser.DuplicateSectionError) as e:
        raise ConfigurationError('Error while loading config file "%s": %s' % (config_file, e))

    additional_sensors = {}
    for section in cfg.sections():
        if section not in ('concentrator', 'optiplex', 'aanderaa'):
            if section.startswith('sensor:'):
                name = section.replace('sensor:', '')

                try:
                    log.debug('Getting %s port' % name)
                    port = check_port(cfg.get(section, 'port'))
                    log.debug('Getting %s IP' % name)
                    ip = check_ipv4(cfg.get(section, 'ip'))
                except configparser.NoOptionError as e:
                    raise ConfigurationError('The configuration file is incomplete: %s' % e)

                additional_sensors[name] = {'port': port, 'ip': ip}

    return {
       "optiplex_port": optiplex_port,
       "aanderaa_port": aanderaa_port,
       "concentrator_port": concentrator_port,
       "concentrator_ip": concentrator_ip,
       "magnetic_declination": magnetic_declination,
       "optiplex_ip": optiplex_ip,
       "aanderaa_ip": aanderaa_ip,
       "additional_sensors": additional_sensors
    }
Example #3
0
def load_config(config_file):

    optiplex_port = None
    aanderaa_port = None
    concentrator_port = None
    concentrator_ip = None
    magnetic_declination = None
    optiplex_ip = None
    aanderaa_ip = None

    if not config_file.is_file():
        raise ConfigurationError('You must provide a configuration file')

    log.debug('Loading config file "%s"' % config_file)

    try:
        cfg = configparser.ConfigParser()
        cfg.read(str(config_file))

        try:
            log.debug('Getting concentrator IP')
            concentrator_ip = check_ipv4(cfg.get('concentrator', 'ip'))
            log.debug('Getting concentrator port')
            concentrator_port = check_port(cfg.get('concentrator', 'port'))
        except (configparser.NoSectionError, configparser.NoOptionError) as e:
            raise ConfigurationError(
                'The configuration file is incomplete: %s' % e)

        try:
            log.debug('Getting optiplex port')
            optiplex_port = check_port(cfg.get('optiplex', 'port'))
            log.debug('Getting optiplex IP')
            optiplex_ip = check_ipv4(cfg.get('optiplex', 'ip'))
        except configparser.NoOptionError as e:
            raise ConfigurationError(
                'The configuration file is incomplete: %s' % e)
        except configparser.NoSectionError:
            optiplex_port = None

        try:
            log.debug('Getting aanderaa port')
            aanderaa_port = check_port(cfg.get('aanderaa', 'port'))
            log.debug('Getting magnetic declination')
            magnetic_declination = float(
                cfg.get('aanderaa', 'magnetic_declination'))
            msg = "Declination must be a number between -50 and 50"
            assert -50 <= magnetic_declination <= 50, msg
            log.debug('Getting aanderaa IP')
            aanderaa_ip = check_ipv4(cfg.get('aanderaa', 'ip'))
        except configparser.NoOptionError as e:
            raise ConfigurationError(
                'The configuration file is incomplete: %s' % e)
        except configparser.NoSectionError:
            aanderaa_port = None
            magnetic_declination = None

    except (ValueError, AssertionError, EnvironmentError,
            configparser.ParsingError,
            configparser.DuplicateSectionError) as e:
        raise ConfigurationError('Error while loading config file "%s": %s' %
                                 (config_file, e))

    additional_sensors = {}
    for section in cfg.sections():
        if section not in ('concentrator', 'optiplex', 'aanderaa'):
            if section.startswith('sensor:'):
                name = section.replace('sensor:', '')

                try:
                    log.debug('Getting %s port' % name)
                    port = check_port(cfg.get(section, 'port'))
                    log.debug('Getting %s IP' % name)
                    ip = check_ipv4(cfg.get(section, 'ip'))
                except configparser.NoOptionError as e:
                    raise ConfigurationError(
                        'The configuration file is incomplete: %s' % e)

                additional_sensors[name] = {'port': port, 'ip': ip}

    return {
        "optiplex_port": optiplex_port,
        "aanderaa_port": aanderaa_port,
        "concentrator_port": concentrator_port,
        "concentrator_ip": concentrator_ip,
        "magnetic_declination": magnetic_declination,
        "optiplex_ip": optiplex_ip,
        "aanderaa_ip": aanderaa_ip,
        "additional_sensors": additional_sensors
    }