Exemple #1
0
    def post(self):
        _log.debug('configuration set: %s', self.request)
        _log.debug('body: %s', self.request.body)

        # parse request
        arguments = parse_qs_bytes(self.request.body, keep_blank_values=False)
        _log.debug('arguments: %s', arguments)

        if arguments.has_key('assigned_rig') and arguments['assigned_rig'][0]:
            rig = arguments['assigned_rig'][0]
            _log.debug('set assigned rig to: %s', rig)
        else:
            rig = None

        if (self.app.mode
                == self.app.MODE_KR) and arguments['controll_aladin'][0]:
            aladin = self.aladin_modes_post[arguments['controll_aladin'][0]]

        def get_arg(arg):
            if arguments.has_key(arg):
                return arguments[arg][0]
            else:
                return None

        # services in need of reload
        need_reload = []

        config = ConfigLoader()
        if rig != config.get_system():
            config.set_system(rig)
            # reload controller service
            need_reload.append(ServiceReloader.SERVICE_CONTROLLER)

        if self.app.mode == self.app.MODE_KR:
            if aladin != config.get_aladin():
                config.set_aladin(aladin)
                need_reload.append(ServiceReloader.SERVICE_SERVO)

        # update configuration file
        config.write()

        if need_reload:
            _log.info('services needing reload: %s', need_reload)
            ServiceReloader.reload(need_reload)
            _log.info('reload complete')

        self.redirect('/?config_applied=1')
Exemple #2
0
    def post(self):
        _log.debug('configuration set: %s' , self.request)
        _log.debug('body: %s', self.request.body)

        # parse request
        arguments = parse_qs_bytes(self.request.body, keep_blank_values=False)
        _log.debug('arguments: %s', arguments)

        if arguments.has_key('assigned_rig') and arguments['assigned_rig'][0]:
            rig = arguments['assigned_rig'][0]
            _log.debug('set assigned rig to: %s', rig)
        else:
            rig = None

        if (self.app.mode == self.app.MODE_KR) and arguments['controll_aladin'][0]:
            aladin = self.aladin_modes_post[arguments['controll_aladin'][0]]

        def get_arg(arg):
            if arguments.has_key(arg):
                return arguments[arg][0]
            else:
                return None

        # services in need of reload
        need_reload = []

        config = ConfigLoader()
        if rig != config.get_system():
            config.set_system(rig)
            # reload controller service
            need_reload.append(ServiceReloader.SERVICE_CONTROLLER)

        if self.app.mode == self.app.MODE_KR:
            if aladin != config.get_aladin():
                config.set_aladin(aladin)
                need_reload.append(ServiceReloader.SERVICE_SERVO)

        # update configuration file
        config.write()

        if need_reload:
            _log.info('services needing reload: %s', need_reload)
            ServiceReloader.reload(need_reload)
            _log.info('reload complete')

        self.redirect('/?config_applied=1')
Exemple #3
0
    def post(self):
        _log.debug('configuration set: %s', self.request)
        _log.debug('body: %s', self.request.body)

        # parse request
        arguments = parse_qs_bytes(self.request.body, keep_blank_values=False)
        _log.debug('arguments: %s', arguments)

        wired_config = {}
        wireless_config = {}

        def get_ip_config(prefix):
            if arguments.has_key(prefix + '_ipv4_method'):
                method = arguments[prefix + '_ipv4_method'][0].lower()
                if method not in ['dhcp', 'static']:
                    # incorrect method
                    # TODO: raise exception
                    _log.error('incorrect method: %s', method)

                ipv4_config = {'method': method}

                static_method_keys = [
                    prefix + '_ipv4_address', prefix + '_ipv4_netmask',
                    prefix + '_ipv4_gateway'
                ]
                if method == 'static':
                    if all([arguments.has_key(k)
                            for k in static_method_keys]) == False:
                        # missing confgiuration
                        # TODO: raise exception
                        _log.error('incorrect network configuration: %s',
                                   arguments)
                    else:
                        ipv4_config['address'] = arguments[prefix +
                                                           '_ipv4_address'][0]
                        ipv4_config['netmask'] = arguments[prefix +
                                                           '_ipv4_netmask'][0]
                        ipv4_config['gateway'] = arguments[prefix +
                                                           '_ipv4_gateway'][0]
                return ipv4_config
            else:
                # TODO: raise exception
                _log.error('IPv4 method not specified in arguments: %s',
                           arguments)
            return None

        wired_config['ipv4'] = get_ip_config('eth')
        wireless_config['ipv4'] = get_ip_config('wifi')

        def get_arg(arg):
            if arguments.has_key(arg):
                return arguments[arg][0]
            else:
                return None

        wireless_config['name'] = get_arg('wifi_ap_name')
        wireless_config['password'] = get_arg('wifi_psk_pass')

        net = network_provider()
        net_config = {
            'wired': [wired_config],
        }
        if self.app.mode == self.app.MODE_KR:
            net_config['wireless'] = [wireless_config]

        net.set_config(net_config)

        config = ConfigLoader()
        config.write()

        self.redirect('/?config_applied=1')
Exemple #4
0
    def post(self):
        _log.debug('configuration set: %s' , self.request)
        _log.debug('body: %s', self.request.body)

        # parse request
        arguments = parse_qs_bytes(self.request.body, keep_blank_values=False)
        _log.debug('arguments: %s', arguments)

        wired_config = {}
        wireless_config = {}

        def get_ip_config(prefix):
            if arguments.has_key(prefix + '_ipv4_method'):
                method = arguments[prefix + '_ipv4_method'][0].lower()
                if method not in ['dhcp', 'static']:
                    # incorrect method
                    # TODO: raise exception
                    _log.error('incorrect method: %s', method)

                ipv4_config = {
                    'method': method
                }

                static_method_keys = [prefix + '_ipv4_address',
                                      prefix + '_ipv4_netmask',
                                      prefix + '_ipv4_gateway']
                if method == 'static':
                    if all([arguments.has_key(k) for k in static_method_keys]) == False:
                        # missing confgiuration
                        # TODO: raise exception
                        _log.error('incorrect network configuration: %s', arguments)
                    else:
                        ipv4_config['address'] = arguments[prefix + '_ipv4_address'][0]
                        ipv4_config['netmask'] = arguments[prefix + '_ipv4_netmask'][0]
                        ipv4_config['gateway'] = arguments[prefix + '_ipv4_gateway'][0]
                return ipv4_config
            else:
                # TODO: raise exception
                _log.error('IPv4 method not specified in arguments: %s', arguments)
            return None

        wired_config['ipv4'] = get_ip_config('eth')
        wireless_config['ipv4'] = get_ip_config('wifi')

        def get_arg(arg):
            if arguments.has_key(arg):
                return arguments[arg][0]
            else:
                return None

        wireless_config['name'] = get_arg('wifi_ap_name')
        wireless_config['password'] = get_arg('wifi_psk_pass')

        net = network_provider()
        net_config = {
            'wired': [wired_config],
        }
        if self.app.mode == self.app.MODE_KR:
            net_config['wireless'] = [wireless_config]

        net.set_config(net_config)

        config = ConfigLoader()
        config.write()

        self.redirect('/?config_applied=1')