(self, text)
| 63 | |
| 64 | @gen.coroutine |
| 65 | def on_message(self, text): |
| 66 | try: |
| 67 | message = json.loads(text) |
| 68 | |
| 69 | type = message.get('event') |
| 70 | data = message.get('data') |
| 71 | |
| 72 | if type == 'parameterValue': |
| 73 | param = data.get('parameter') |
| 74 | set_parameter_func = functools.partial( |
| 75 | self._set_parameter_value, |
| 76 | param, |
| 77 | data.get('value'), |
| 78 | data.get('clientStateVersion')) |
| 79 | |
| 80 | def handle_future_exception(result): |
| 81 | if result.exception(): |
| 82 | LOGGER.exception(f'Failed to set parameter {param} value', exc_info=result.exception()) |
| 83 | |
| 84 | future = self._start_task(set_parameter_func) |
| 85 | future.add_done_callback(handle_future_exception) |
| 86 | |
| 87 | return |
| 88 | elif type == 'reloadModelValues': |
| 89 | parameter_values = data.get('parameterValues') |
| 90 | external_id = data.get('clientModelId') |
| 91 | |
| 92 | yield self._prepare_and_send_model(parameter_values=parameter_values, |
| 93 | external_id=external_id, |
| 94 | event_type='reloadedConfig', |
| 95 | client_state_version=data.get('clientStateVersion')) |
| 96 | return |
| 97 | elif type == 'initialValues': |
| 98 | if not self.init_with_values: |
| 99 | logging.warning('Received initial values, but not expected. Ignoring') |
| 100 | return |
| 101 | if self.config_model: |
| 102 | logging.warning('Received initial values, but model is already initialized. Ignoring') |
| 103 | return |
| 104 | parameter_values = data.get('parameterValues') |
| 105 | |
| 106 | yield self._prepare_and_send_model(parameter_values=parameter_values, |
| 107 | event_type='initialConfig') |
| 108 | return |
| 109 | |
| 110 | LOGGER.warning('Unknown message received in ScriptConfigSocket: ' + text) |
| 111 | except: |
| 112 | LOGGER.exception('Failed to process message ' + text) |
| 113 | |
| 114 | def _start_task(self, func): |
| 115 | future = tornado.ioloop.IOLoop.current().run_in_executor( |
nothing calls this directly
no test coverage detected