def test_datastore_token_timeout(self): datastore_service = DatastoreService(logger=mock.Mock(), pack_name='core', class_name='TestSensor', api_username='******') mock_api_client = mock.Mock() kvp1 = KeyValuePair() kvp1.name = 'test1' kvp1.value = 'bar' mock_api_client.keys.get_by_id.return_value = kvp1 token_expire_time = get_datetime_utc_now() - timedelta(seconds=5) datastore_service._client = mock_api_client datastore_service._token_expire = token_expire_time self._set_mock_api_client(mock_api_client) with mock.patch('st2common.services.datastore.Client', return_value=mock_api_client) as datastore_client: value = datastore_service.get_value(name='test1', local=False) datastore_client.assert_called() self.assertEqual(value, kvp1.value) self.assertGreater(datastore_service._token_expire, token_expire_time)
def _get_action_instance(self): actions_cls = action_loader.register_plugin(Action, self._file_path) action_cls = actions_cls[0] if actions_cls and len( actions_cls) > 0 else None if not action_cls: raise Exception( 'File "%s" has no action or the file doesn\'t exist.' % (self._file_path)) config_parser = ContentPackConfigParser(pack_name=self._pack) config = config_parser.get_action_config( action_file_path=self._file_path) if config: LOG.info('Using config "%s" for action "%s"' % (config.file_path, self._file_path)) action_instance = action_cls(config=config.config) else: LOG.info('No config found for action "%s"' % (self._file_path)) action_instance = action_cls(config={}) # Setup action_instance proeprties action_instance.logger = self._set_up_logger(action_cls.__name__) action_instance.datastore = DatastoreService( logger=action_instance.logger, pack_name=self._pack, class_name=action_cls.__name__, api_username="******") return action_instance
def __init__(self, action_wrapper): logger = get_logger_for_python_runner_action(action_name=action_wrapper._class_name) self._action_wrapper = action_wrapper self._datastore_service = DatastoreService(logger=logger, pack_name=self._action_wrapper._pack, class_name=self._action_wrapper._class_name, api_username='******')
def setUp(self): super(DatastoreServiceTestCase, self).setUp() self._datastore_service = DatastoreService(logger=mock.Mock(), pack_name='core', class_name='TestSensor', api_username='******') self._datastore_service._get_api_client = mock.Mock()
def __init__(self, sensor_wrapper): self._sensor_wrapper = sensor_wrapper self._logger = self._sensor_wrapper._logger self._dispatcher = TriggerDispatcher(self._logger) self._datastore_service = DatastoreService(logger=self._logger, pack_name=self._sensor_wrapper._pack, class_name=self._sensor_wrapper._class_name, api_username='******') self._client = None
def datastore_service(self): # Late import to avoid very expensive in-direct import (~1 second) when this function is # not called / used from st2common.services.datastore import DatastoreService if not self._datastore_service: action_name = self._action_wrapper._class_name logger = get_logger_for_python_runner_action( action_name=action_name) self._datastore_service = DatastoreService( logger=logger, pack_name=self._action_wrapper._pack, class_name=self._action_wrapper._class_name, api_username='******') return self._datastore_service