def test_configure_api_service(self): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group( BootProperties).resource_driver.api_service_enabled = True self.mock_service_register.get_service_offering_capability.return_value = None ResourceDriverServicesConfigurator().configure( configuration, self.mock_service_register) registered_service = self.assert_single_service_registered() self.assert_service_registration_equal( registered_service, ServiceRegistration(ResourceDriverApiService, service=ResourceDriverServiceCapability))
def test_configure_service_fails_when_already_registered(self): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group( BootProperties).resource_driver.service_enabled = True self.mock_service_register.get_service_offering_capability.return_value = MagicMock( ) with self.assertRaises(ValueError) as context: ResourceDriverServicesConfigurator().configure( configuration, self.mock_service_register) self.assertEqual( str(context.exception), 'An existing service has been registered to serve the Resource Driver Service capability but bootstrap.resource_driver.service_enabled has not been disabled' )
def test_configure_scripts_file_manager(self): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group( BootProperties ).resource_driver.driver_files_manager_service_enabled = True self.mock_service_register.get_service_offering_capability.return_value = None ResourceDriverServicesConfigurator().configure( configuration, self.mock_service_register) registered_service = self.assert_single_service_registered() self.assert_service_registration_equal( registered_service, ServiceRegistration( DriverFilesManagerService, resource_driver_config=ResourceDriverProperties))
def test_configure_messaging(self): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group( BootProperties ).resource_driver.lifecycle_messaging_service_enabled = True self.mock_service_register.get_service_offering_capability.return_value = None ResourceDriverServicesConfigurator().configure( configuration, self.mock_service_register) registered_service = self.assert_single_service_registered() self.assert_service_registration_equal( registered_service, ServiceRegistration(LifecycleMessagingService, postal_service=PostalCapability, topics_configuration=TopicsProperties))
def test_configure_monitoring(self): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group( BootProperties ).resource_driver.lifecycle_monitoring_service_enabled = True self.mock_service_register.get_service_offering_capability.return_value = None ResourceDriverServicesConfigurator().configure( configuration, self.mock_service_register) service_registrations = self.assert_services_registered(1) self.assert_service_registration_equal( service_registrations[0], ServiceRegistration( LifecycleExecutionMonitoringService, job_queue_service=JobQueueCapability, lifecycle_messaging_service=LifecycleMessagingCapability, handler=ResourceDriverHandlerCapability))
def test_configure_nothing_when_disabled(self): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group( BootProperties).resource_driver.api_service_enabled = False configuration.property_groups.get_property_group( BootProperties).resource_driver.service_enabled = False configuration.property_groups.get_property_group( BootProperties).resource_driver.service_enabled = False configuration.property_groups.get_property_group( BootProperties ).resource_driver.lifecycle_monitoring_service_enabled = False configuration.property_groups.get_property_group( BootProperties ).resource_driver.lifecycle_messaging_service_enabled = False ResourceDriverServicesConfigurator().configure( configuration, self.mock_service_register) self.mock_service_register.add_service.assert_not_called()
def test_configure_service_does_not_include_monitoring_when_async_messaging_disabled( self): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group( BootProperties).resource_driver.service_enabled = True configuration.property_groups.get_property_group( ResourceDriverProperties).async_messaging_enabled = False self.mock_service_register.get_service_offering_capability.return_value = None ResourceDriverServicesConfigurator().configure( configuration, self.mock_service_register) service_registrations = self.assert_services_registered(1) self.assert_service_registration_equal( service_registrations[0], ServiceRegistration( ResourceDriverService, handler=ResourceDriverHandlerCapability, resource_driver_config=ResourceDriverProperties, driver_files_manager=DriverFilesManagerCapability))
def test_configure_service(self): configuration = self.__bootstrap_config() configuration.property_groups.get_property_group( BootProperties).resource_driver.service_enabled = True configuration.property_groups.get_property_group( BootProperties).resource_driver.service_driver = self.DummyDriver self.mock_service_register.get_service_offering_capability.return_value = None ResourceDriverServicesConfigurator().configure( configuration, self.mock_service_register) service_registrations = self.assert_services_registered(1) self.assert_service_registration_equal( service_registrations[0], ServiceRegistration( ResourceDriverService, handler=ResourceDriverHandlerCapability, resource_driver_config=ResourceDriverProperties, driver_files_manager=DriverFilesManagerCapability, lifecycle_monitor_service=LifecycleExecutionMonitoringCapability ))
from ignition.service.config import YmlFileSource, EnvironmentVariableYmlFileSource 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__)