def verify_run_result(self, cmd, result): rc, out, err = result.return_code, result.stdout, result.stderr log.debug('CMD %r RC %s OUT %s ERR %s', cmd, rc, out, err) if not result.success: message = 'CMD %r failed RC %s ERR %s' % (cmd, rc, err) log.error(message) raise errors.SolarError(result.output)
def __call__(self, ctxt, *args, **kwargs): for sub in self._subscribers['before']: try: sub(ctxt) except Exception as exc: log.error('Subscriber before %r failed with %r', sub, exc) try: rst = self.func(self.instance, ctxt, *args, **kwargs) for sub in self._subscribers['on_success']: try: sub(ctxt, rst, *args, **kwargs) except Exception as exc: log.error('Subscriber on_success %r failed with %r', sub, exc) return rst except Exception as exc: for sub in self._subscribers['on_error']: try: sub(ctxt, repr(exc), *args, **kwargs) except Exception as exc: log.error('Subscriber on_error %r failed with %r', sub, exc) raise finally: for sub in self._subscribers['after']: try: sub(ctxt) except Exception as exc: log.error('Subscriber after %r failed with %r', sub, exc)
def __call__(self, ctxt, *args, **kwargs): for sub in self._subscribers['before']: try: sub(ctxt) except Exception as exc: log.error('Subscriber before %r failed with %r', sub, exc) try: rst = self.func(self.instance, ctxt, *args, **kwargs) for sub in self._subscribers['on_success']: try: sub(ctxt, rst, *args, **kwargs) except Exception as exc: log.error( 'Subscriber on_success %r failed with %r', sub, exc) return rst except Exception as exc: for sub in self._subscribers['on_error']: try: sub(ctxt, repr(exc), *args, **kwargs) except Exception as exc: log.error( 'Subscriber on_error %r failed with %r', sub, exc) raise finally: for sub in self._subscribers['after']: try: sub(ctxt) except Exception as exc: log.error('Subscriber after %r failed with %r', sub, exc)
def validate_input(value, jsonschema=None, schema=None): """Validate single input according to schema. :param value: Value to be validated :param schema: Dict in jsonschema format :param schema: Our custom, simplified schema :return: list with errors """ if jsonschema is None: jsonschema = construct_jsonschema(schema) try: validate(value, jsonschema) except ValidationError as e: return [e.message] except Exception as e: log.error('jsonschema: %s', jsonschema) log.error('value: %s', value) log.exception(e) raise
def subscribe(self, receiver): """ :param receiver: Observer :return: """ log.debug('Subscribe %s', receiver) # No multiple subscriptions if self.find_receiver(receiver): log.error('No multiple subscriptions from %s', receiver) return receiver.subscribed(self) signals.Connections.add( self.attached_to, self.name, receiver.attached_to, receiver.name ) receiver.notify(self)