Esempio n. 1
0
 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))
Esempio n. 2
0
 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'
     )
Esempio n. 3
0
 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))
Esempio n. 4
0
 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))
Esempio n. 5
0
 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))
Esempio n. 6
0
 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()
Esempio n. 7
0
 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))
Esempio n. 8
0
 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
         ))
Esempio n. 9
0
File: api.py Progetto: IBM/ignition
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__)