Example #1
0
    def service_setDate(self, context, date):
        #check begin
        if not date:
            raise NtpError(NTP_ERROR_SETTING_DATE, "No date supplied?")
        split_date = date.split('.', 1)
        if len(split_date) > 0:
            datetime_feed, float_part = split_date
            try:
                float('0.%s' % float_part)
            except ValueError:
                raise NtpError(
                    NTP_ERROR_SETTING_DATE,
                    "Invalid date format received. Got '%s'." % date
                    )
        else:
            datetime_feed = split_date[0]
        try:
            datetime.strptime(datetime_feed, "%Y-%m-%d %H:%M:%S")
        except ValueError:
            raise NtpError(
                NTP_ERROR_SETTING_DATE,
                "Invalid date format received. Got '%s', expected "
                "'%%Y-%%m-%%d %%H:%%M:%%S.floating_part'." % date
                )
        #check end

        args = '--set=%s' % date
        try:
            self.runCommandAsRootAndCheck(['date', args])
        except RunCommandError, err:
            reraise(NtpError(NTP_ERROR_SETTING_DATE, unicode(err)))
Example #2
0
    def discover(self, ip_flow=None, route_flow=None, route6_flow=None):
        """
        ip_flow, route_flow: file descriptors for stdout of 'ip addr list' and 'ip route list'
        """
        added = set()
        ignored = set()
        self.important("Auto discovering network parameters")
        self.discovering = True
        if ip_flow == None:
            ip_flow = self.runCmd(NetCfgAutoConf.IP_NET_CMD)

        cur_iface = None
        wait = NetCfgAutoConf.IFACE
        for line in ip_flow:
            try:
                line_class, data = self.matchLineClass(line)
                if data is IGNORED_INTERFACE:
                    cur_iface = None
                    self.debug("Ignoring interface specified by <%s>" % line)
                    continue
            except IgnoredData, err:
                self.debug("ignored %s" % line)
                wait = err.wait
                continue
            except Exception, err:
                reraise(ParseError(u"Error on line %r: %s" % (line, exceptionAsUnicode(err))))
Example #3
0
 def localfwFailed(self, err):
     """
     call localfw.close() and pass error to an errback
     """
     self.error("Setting firewall rules failed")
     self.error("Error: %s" % err)
     yield self.call('localfw', 'close')
     reraise(err)
Example #4
0
 def prepare_failed(self, err):
     """
     raise a PrepareException
     """
     error = PrepareException((unicode(err.value)))
     msg = "Error in transaction at step : prepare"
     self.logger.writeError(err, msg, log_level=CRITICAL)
     reraise(error)
Example #5
0
    def save_failed(self, err):
        """
        raise a SaveException if err.value is not a PrepareException
        """
        if isinstance(err.value, PrepareException):
            return err

        error = SaveException((unicode(err.value)))
        msg = "Error in transaction at step : save"
        self.logger.writeError(err, msg, log_level=CRITICAL)
        reraise(error)
Example #6
0
 def loadError(self, err, when):
     message = u"[%s] %s" % (err.__class__.__name__, exceptionAsUnicode(err))
     if self.name:
         err = RulesetError(
             tr('Error while loading %s from the "%s" rule set: %s'),
             when, self.name, message)
     else:
         err = RulesetError(
             tr('Error on new rule set creation (while loading %s): %s'),
             when, message)
     reraise(err)
Example #7
0
    def register(self, configuration):
        self.info('Received connection from primary')
        if self.primary:
            # FIXME this message is always displayed !
            self.warning("Overriding previous primary configuration")

        self.primary = Primary(self)
        try:
            yield self.primary.loadConfig(self.config.interface_name)
            # Save config before registration (to empty config...)
            yield self.primary.saveConfig()
            yield self.primary.register(configuration)
        except Exception, err:
            self.primary = None
            reraise(err)
Example #8
0
    def register(self, configuration):
        """
        Register myself on primary.
        """
        # Set received parameter
        ha_secondary_iface = self.core.config_manager.get('ha', 'interface_id')
        if self.core.config_manager.get('ha', 'interface_id') != configuration['interface']:
            err_msg = 'Different interfaces are configured : %s and %s'
            err_msg %= (ha_secondary_iface, configuration['interface'])
            raise RpcdError(err_msg)

        self.component.setState(SECONDARY)

        try:
            yield self.call('multisite_transport', 'callRemote', TRANSPORT_ID,
                PRIMARY_ADDR, 'ha', 'end_registration')
            # explicit synchronisation have been done at the end of 'end_registration'
            self.scheduleHello(5)
        except Exception, err:
            self.setState(self.OFFLINE)
            reraise(err)