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)))
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))))
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)
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)
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)
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)
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)
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)