Instance of this class is passed to the sensor instance and exposes "public" methods which can be called by the sensor.
| 61 | |
| 62 | |
| 63 | class SensorService(object): |
| 64 | """ |
| 65 | Instance of this class is passed to the sensor instance and exposes "public" |
| 66 | methods which can be called by the sensor. |
| 67 | """ |
| 68 | |
| 69 | def __init__(self, sensor_wrapper): |
| 70 | self._sensor_wrapper = sensor_wrapper |
| 71 | self._logger = self._sensor_wrapper._logger |
| 72 | |
| 73 | self._trigger_dispatcher_service = TriggerDispatcherService( |
| 74 | logger=sensor_wrapper._logger |
| 75 | ) |
| 76 | self._datastore_service = SensorDatastoreService( |
| 77 | logger=self._logger, |
| 78 | pack_name=self._sensor_wrapper._pack, |
| 79 | class_name=self._sensor_wrapper._class_name, |
| 80 | api_username="sensor_service", |
| 81 | ) |
| 82 | |
| 83 | self._client = None |
| 84 | |
| 85 | @property |
| 86 | def datastore_service(self): |
| 87 | return self._datastore_service |
| 88 | |
| 89 | def get_logger(self, name): |
| 90 | """ |
| 91 | Retrieve an instance of a logger to be used by the sensor class. |
| 92 | """ |
| 93 | logger_name = "%s.%s" % (self._sensor_wrapper._logger.name, name) |
| 94 | logger = logging.getLogger(logger_name) |
| 95 | logger.propagate = True |
| 96 | |
| 97 | return logger |
| 98 | |
| 99 | ################################## |
| 100 | # General methods |
| 101 | ################################## |
| 102 | |
| 103 | def get_user_info(self): |
| 104 | return self._datastore_service.get_user_info() |
| 105 | |
| 106 | ################################## |
| 107 | # Sensor related methods |
| 108 | ################################## |
| 109 | |
| 110 | def dispatch(self, trigger, payload=None, trace_tag=None): |
| 111 | # Provided by the parent BaseTriggerDispatcherService class |
| 112 | return self._trigger_dispatcher_service.dispatch( |
| 113 | trigger=trigger, |
| 114 | payload=payload, |
| 115 | trace_tag=trace_tag, |
| 116 | throw_on_validation_error=False, |
| 117 | ) |
| 118 | |
| 119 | def dispatch_with_context(self, trigger, payload=None, trace_context=None): |
| 120 | """ |
no outgoing calls