def test_configure_service_fails_when_already_registered(self): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group(BootProperties).job_queue.service_enabled = True self.mock_service_register.get_service_offering_capability.return_value = MagicMock() with self.assertRaises(ValueError) as context: JobQueueConfigurator().configure(configuration, self.mock_service_register) self.assertEqual(str(context.exception), 'An existing service has been registered to serve the Job Queue capability but bootstrap.job_queue.service_enabled has not been disabled')
def test_configure_creates_job_queue_topic_with_special_chars_removed(self, mock_topic_creator_init): configuration = self.__bootstrap_config() configuration.app_name = 'Testing Spaces And Special !"£$%^&*()+={}[]:;@~#<>?,./¬ Chars' configuration.property_groups.get_property_group(BootProperties).job_queue.service_enabled = True self.mock_service_register.get_service_offering_capability.return_value = None JobQueueConfigurator().configure(configuration, self.mock_service_register) self.assertEqual(configuration.property_groups.get_property_group(MessagingProperties).topics.job_queue.name, 'Testing_Spaces_And_Special_Chars_job_queue')
def test_configure_fails_when_messaging_connection_address_not_set(self): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group(BootProperties).job_queue.service_enabled = True configuration.property_groups.get_property_group(MessagingProperties).connection_address = None self.mock_service_register.get_service_offering_capability.return_value = None with self.assertRaises(ValueError) as context: JobQueueConfigurator().configure(configuration, self.mock_service_register) self.assertEqual(str(context.exception), 'messaging.connection_address must be set when bootstrap.job_queue.service_enabled is True')
def test_configure(self, mock_topic_creator_init): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group(BootProperties).job_queue.service_enabled = True self.mock_service_register.get_service_offering_capability.return_value = None JobQueueConfigurator().configure(configuration, self.mock_service_register) registered_service = self.assert_single_service_registered() self.assert_service_registration_equal(registered_service, ServiceRegistration( MessagingJobQueueService, job_queue_config=JobQueueProperties, postal_service=PostalCapability, inbox_service=InboxCapability, topics_config=TopicsProperties, messaging_config=MessagingProperties))
def test_configure_creates_job_queue_topic_if_needed(self, mock_topic_creator_init): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group(BootProperties).job_queue.service_enabled = True configuration.property_groups.get_property_group(MessagingProperties).topics.job_queue.auto_create = True self.mock_service_register.get_service_offering_capability.return_value = None JobQueueConfigurator().configure(configuration, self.mock_service_register) mock_topic_creator_init.assert_called_once() messaging_properties = MessagingProperties() messaging_properties.connection_address = 'testaddr' mock_topic_creator_init.return_value.create_topic_if_needed.assert_called_once_with(messaging_properties, configuration.property_groups.get_property_group(MessagingProperties).topics.job_queue)
def test_configure_creates_job_queue_topic_name_when_not_set(self, mock_topic_creator_init): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group(BootProperties).job_queue.service_enabled = True self.mock_service_register.get_service_offering_capability.return_value = None JobQueueConfigurator().configure(configuration, self.mock_service_register) self.assertEqual(configuration.property_groups.get_property_group(MessagingProperties).topics.job_queue.name, 'TestJobQueueConfigurator_job_queue')
def test_configure_nothing_when_disabled(self): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group(BootProperties).job_queue.service_enabled = False JobQueueConfigurator().configure(configuration, self.mock_service_register) self.mock_service_register.add_service.assert_not_called()
from ignition.boot.configurators.resourcedriverapi import ResourceDriverApiConfigurator, ResourceDriverServicesConfigurator from ignition.boot.configurators.messaging import MessagingConfigurator from ignition.boot.configurators.jobqueue import JobQueueConfigurator from ignition.boot.configurators.requestqueue import RequestQueueConfigurator from ignition.boot.configurators.management import ManagmentServicesConfigurator, ManagementApiConfigurator from ignition.boot.configurators.movedapis import MovedApisConfigurator from ignition.boot.configurators.templating import TemplatingConfigurator from ignition.boot.configurators.progress_events import ProgressEventLogConfigurator from ignition.service.resourcedriver import ResourceDriverProperties, LifecycleRequestQueueProperties from ignition.service.messaging import MessagingProperties, TopicCreator from ignition.service.queue import JobQueueProperties from ignition.service.management import ManagementProperties from jsonschema import ValidationError SERVICE_CONFIGURATORS = [RequestQueueConfigurator(TopicCreator()), ResourceDriverServicesConfigurator(), \ MessagingConfigurator(), JobQueueConfigurator(), ManagmentServicesConfigurator(), TemplatingConfigurator(), \ ProgressEventLogConfigurator()] API_CONFIGURATORS = [ ResourceDriverApiConfigurator(), ManagementApiConfigurator(), MovedApisConfigurator() ] MANDATORY_PROPERTY_GROUPS = [ApplicationProperties, ApiProperties] ADDITIONAL_PROPERTY_GROUPS = [ BootProperties, ResourceDriverProperties, MessagingProperties, JobQueueProperties, ManagementProperties ] logger = logging.getLogger(__name__)