コード例 #1
0
ファイル: progress_events.py プロジェクト: IBM/ignition
    def configure(self, configuration, service_register):
        auto_config = configuration.property_groups.get_property_group(
            BootProperties)
        if auto_config.progress_event_log.service_enabled is True:
            logger.debug('Bootstrapping Progress Event Log Writer Service')
            validate_no_service_with_capability_exists(
                service_register, ProgressEventLogWriterCapability,
                'ProgressEventLogWriter',
                'bootstrap.progress_event_log.service_enabled')
            service_register.add_service(
                ServiceRegistration(
                    ProgressEventLogWriterService,
                    serializer_service=ProgressEventLogSerializerCapability))
        else:
            logger.debug(
                'Disabled: bootstrapped Progress Event Log Writer Service')

        if auto_config.progress_event_log.serializer_service_enabled is True:
            logger.debug('Bootstrapping Progress Event Log Serializer Service')
            validate_no_service_with_capability_exists(
                service_register, ProgressEventLogSerializerCapability,
                'ProgressEventLogSerializer',
                'bootstrap.progress_event_log.serializer_service_enabled')
            service_register.add_service(
                ServiceRegistration(YAMLProgressEventLogSerializer))
        else:
            logger.debug(
                'Disabled: bootstrapped Progress Event Log Serializer Service')
コード例 #2
0
ファイル: test_utils.py プロジェクト: IBM/ignition
 def test_validate_no_service_with_capability_exists(self):
     mock_service_register = MagicMock()
     mock_service_register.get_service_offering_capability.return_value = None
     validate_no_service_with_capability_exists(mock_service_register,
                                                DummyCapability, 'Dummy',
                                                'a.b.c')
     mock_service_register.get_service_offering_capability.assert_called_once_with(
         DummyCapability)
コード例 #3
0
ファイル: resourcedriverapi.py プロジェクト: IBM/ignition
 def __configure_scripts_file_manager(self, configuration, service_register):
     auto_config = configuration.property_groups.get_property_group(BootProperties)
     if auto_config.resource_driver.driver_files_manager_service_enabled is True:
         logger.debug('Bootstrapping Driver File Manager Service')
         validate_no_service_with_capability_exists(service_register, DriverFilesManagerCapability, 'Driver File Manager Service',
                                                    'bootstrap.resource_driver.driver_files_manager_service_enabled')
         service_register.add_service(ServiceRegistration(DriverFilesManagerService, resource_driver_config=ResourceDriverProperties))
     else:
         logger.debug('Disabled: bootstrapped Driver File Manager Service')
コード例 #4
0
ファイル: resourcedriverapi.py プロジェクト: IBM/ignition
 def __configure_api_service(self, configuration, service_register):
     auto_config = configuration.property_groups.get_property_group(BootProperties)
     if auto_config.resource_driver.api_service_enabled is True:
         logger.debug('Bootstrapping Resource Driver API Service')
         # Check if a user has enabled the auto configuration of the Lifecycle API service but has also added their own
         validate_no_service_with_capability_exists(service_register, ResourceDriverApiCapability, 'Resource Driver API', 'bootstrap.resource_driver.api_service_enabled')
         service_register.add_service(ServiceRegistration(ResourceDriverApiService, service=ResourceDriverServiceCapability))
     else:
         logger.debug('Disabled: bootstrapped Resource Driver API Service')
コード例 #5
0
 def __configure_health_service(self, configuration, service_register):
     auto_config = configuration.property_groups.get_property_group(BootProperties)
     if auto_config.management.health.service_enabled is True:
         logger.debug('Bootstrapping Health Checker Service')
         # Check if a user has enabled the auto configuration of the HealthChecker service but has also added their own
         validate_no_service_with_capability_exists(service_register, HealthChecker, 'HealthChecker', 'bootstrap.management.health.service_enabled')
         service_register.add_service(ServiceRegistration(HealthCheckerService))
     else:
         logger.debug('Disabled: bootstrapped Health Checker Service')
コード例 #6
0
 def __configure_api_service(self, configuration, service_register):
     auto_config = configuration.property_groups.get_property_group(BootProperties)
     if auto_config.management.api_service_enabled is True:
         logger.debug('Bootstrapping Management API Service')
         # Check if a user has enabled the auto configuration of the Management API service but has also added their own
         validate_no_service_with_capability_exists(service_register, ManagementApi, 'Management API (ManagementApi)', 'bootstrap.management.api_service_enabled')
         service_register.add_service(ServiceRegistration(ManagementApiService, service=Management))
     else:
         logger.debug('Disabled: bootstrapped Management API Service')
コード例 #7
0
ファイル: resourcedriverapi.py プロジェクト: IBM/ignition
 def __configure_monitoring(self, configuration, service_register):
     auto_config = configuration.property_groups.get_property_group(BootProperties)
     if auto_config.resource_driver.lifecycle_monitoring_service_enabled is True:
         logger.debug('Bootstrapping Resource Driver Lifecycle Monitoring Service')
         validate_no_service_with_capability_exists(service_register, LifecycleExecutionMonitoringCapability,
                                                    'Resource Driver Lifecycle Execution Monitoring Service', 'bootstrap.resource_driver.lifecycle_monitoring_service_enabled')
         service_register.add_service(ServiceRegistration(LifecycleExecutionMonitoringService, job_queue_service=JobQueueCapability,
                                                          lifecycle_messaging_service=LifecycleMessagingCapability, handler=ResourceDriverHandlerCapability))
     else:
         logger.debug('Disabled: bootstrapped Resource Driver Lifecycle Monitoring Service')
コード例 #8
0
 def __configure_service(self, configuration, service_register):
     auto_config = configuration.property_groups.get_property_group(BootProperties)
     if auto_config.management.service_enabled is True:
         logger.debug('Bootstrapping Management Service')
         # Check if a user has enabled the auto configuration of the Management service but has also added their own
         validate_no_service_with_capability_exists(service_register, Management, 'Management', 'bootstrap.management.service_enabled')
         required_capabilities = {
             'health_checker': HealthChecker
         }
         service_register.add_service(ServiceRegistration(ManagementService, **required_capabilities))
     else:
         logger.debug('Disabled: bootstrapped Management Service')
コード例 #9
0
ファイル: test_utils.py プロジェクト: IBM/ignition
 def test_validate_no_service_with_capability_exists_throws_error_when_exists(
         self):
     mock_service_register = MagicMock()
     mock_service_register.get_service_offering_capability.return_value = MagicMock(
     )
     with self.assertRaises(ValueError) as context:
         validate_no_service_with_capability_exists(mock_service_register,
                                                    DummyCapability,
                                                    'Dummy', 'a.b.c')
     self.assertEqual(
         str(context.exception),
         'An existing service has been registered to serve the Dummy capability but a.b.c has not been disabled'
     )
コード例 #10
0
ファイル: messaging.py プロジェクト: IBM/ignition
 def __configure_postal(self, configuration, service_register):
     auto_config = configuration.property_groups.get_property_group(
         BootProperties)
     if auto_config.messaging.postal_enabled is True:
         logger.debug('Bootstrapping Messaging Postal Service')
         validate_no_service_with_capability_exists(
             service_register, PostalCapability, 'Postal Service',
             'bootstrap.messaging.postal_enabled')
         service_register.add_service(
             ServiceRegistration(PostalService,
                                 delivery_service=DeliveryCapability))
     else:
         logger.debug('Disabled: bootstrapped Messaging Postal Service')
コード例 #11
0
 def configure(self, configuration, service_register):
     auto_config = configuration.property_groups.get_property_group(BootProperties)
     if auto_config.templating.service_enabled is True:
         logger.debug('Bootstrapping Templating Service')
         validate_no_service_with_capability_exists(service_register, TemplatingCapability, 'Templating', 'bootstrap.templating.service_enabled')
         service_register.add_service(ServiceRegistration(Jinja2TemplatingService))
     else:
         logger.debug('Disabled: bootstrapped Templating Service')
     if auto_config.templating.resource_context_service_enabled is True:
         logger.debug('Bootstrapping Resource Template Context Service')
         validate_no_service_with_capability_exists(service_register, ResourceTemplateContextCapability, 'Resource Template Context', 'bootstrap.templating.resource_context_service_enabled')
         service_register.add_service(ServiceRegistration(ResourceTemplateContextService))
     else:
         logger.debug('Disabled: bootstrapped Resource Template Context Service')
コード例 #12
0
ファイル: resourcedriverapi.py プロジェクト: IBM/ignition
 def __configure_messaging(self, configuration, service_register):
     auto_config = configuration.property_groups.get_property_group(BootProperties)
     if auto_config.resource_driver.lifecycle_messaging_service_enabled is True:
         logger.debug('Bootstrapping Resource Driver Lifecycle Messaging Service')
         validate_no_service_with_capability_exists(service_register, LifecycleMessagingCapability, 'Resource Driver Lifecycle Messaging Service', 'bootstrap.resource_driver.lifecycle_messaging_service_enabled')
         messaging_config = configuration.property_groups.get_property_group(MessagingProperties)
         if messaging_config.connection_address is None:
             raise ValueError('messaging.connection_address must be set when bootstrap.resource_driver.lifecycle_messaging_service_enabled')
         if messaging_config.topics.lifecycle_execution_events is None:
             raise ValueError('messaging.topics.lifecycle_execution_events must be set when bootstrap.resource_driver.lifecycle_messaging_service_enabled')
         TopicCreator().create_topic_if_needed(messaging_config, messaging_config.topics.lifecycle_execution_events)
         service_register.add_service(ServiceRegistration(LifecycleMessagingService, postal_service=PostalCapability, topics_configuration=TopicsProperties))
     else:
         logger.debug('Disabled: bootstrapped Resource Driver Lifecycle Messaging Service')
コード例 #13
0
ファイル: messaging.py プロジェクト: IBM/ignition
 def __configure_inbox(self, configuration, service_register):
     auto_config = configuration.property_groups.get_property_group(
         BootProperties)
     if auto_config.messaging.inbox_enabled is True:
         logger.debug('Bootstrapping Messaging Inbox Service')
         messaging_config = configuration.property_groups.get_property_group(
             MessagingProperties)
         if messaging_config.connection_address is None:
             raise ValueError(
                 'messaging.connection_address must be set when bootstrap.messaging.inbox_enabled is True'
             )
         validate_no_service_with_capability_exists(
             service_register, InboxCapability, 'Inbox Service',
             'bootstrap.messaging.inbox_enabled')
         service_register.add_service(
             ServiceRegistration(KafkaInboxService,
                                 messaging_properties=MessagingProperties))
     else:
         logger.debug('Disabled: bootstrapped Messaging Inbox Service')
コード例 #14
0
ファイル: resourcedriverapi.py プロジェクト: IBM/ignition
    def __configure_service(self, configuration, service_register):
        auto_config = configuration.property_groups.get_property_group(BootProperties)
        if auto_config.resource_driver.service_enabled is True:
            logger.debug('Bootstrapping Resource Driver Service')
            # Check if a user has enabled the auto configuration of the Resource Driver service but has also added their own
            validate_no_service_with_capability_exists(service_register, ResourceDriverServiceCapability, 'Resource Driver Service', 'bootstrap.resource_driver.service_enabled')
            resource_driver_config = configuration.property_groups.get_property_group(ResourceDriverProperties)

            required_capabilities = {}
            if resource_driver_config.async_messaging_enabled is True:
                required_capabilities['lifecycle_monitor_service'] = LifecycleExecutionMonitoringCapability
            required_capabilities['handler'] = ResourceDriverHandlerCapability
            required_capabilities['resource_driver_config'] = ResourceDriverProperties
            required_capabilities['driver_files_manager'] = DriverFilesManagerCapability

            if resource_driver_config.lifecycle_request_queue.enabled is True:
                required_capabilities['lifecycle_request_queue'] = LifecycleRequestQueueCapability

            service_register.add_service(ServiceRegistration(ResourceDriverService, **required_capabilities))
        else:
            logger.debug('Disabled: bootstrapped Resource Driver Service')
コード例 #15
0
ファイル: jobqueue.py プロジェクト: IBM/ignition
 def configure(self, configuration, service_register):
     auto_config = configuration.property_groups.get_property_group(BootProperties)
     if auto_config.job_queue.service_enabled is True:
         logger.debug('Bootstrapping Job Queue Service')
         validate_no_service_with_capability_exists(service_register, JobQueueCapability, 'Job Queue', 'bootstrap.job_queue.service_enabled')
         messaging_config = configuration.property_groups.get_property_group(MessagingProperties)
         if messaging_config.connection_address is None:
             raise ValueError('messaging.connection_address must be set when bootstrap.job_queue.service_enabled is True')
         if messaging_config.topics.job_queue is None:
             raise ValueError('messaging.topics.job_queue must be set when bootstrap.job_queue.service_enabled is True')
         if messaging_config.topics.job_queue.name is None:
             # Job Queue topic should be unique per VIM/Lifecycle driver cluster (not per instance) so we default the value at runtime to include the app name
             safe_topic_name = re.sub('[^A-Za-z0-9-_ ]+', '', configuration.app_name)
             # Remove any concurrent spaces
             safe_topic_name = ' '.join(safe_topic_name.split())
             # Replace spaces with underscore
             safe_topic_name = safe_topic_name.replace(' ', '_')
             messaging_config.topics.job_queue.name = '{0}_job_queue'.format(safe_topic_name)
         TopicCreator().create_topic_if_needed(messaging_config, messaging_config.topics.job_queue)
         service_register.add_service(ServiceRegistration(MessagingJobQueueService, job_queue_config=JobQueueProperties, postal_service=PostalCapability, inbox_service=InboxCapability, topics_config=TopicsProperties, messaging_config=MessagingProperties))
     else:
         logger.debug('Disabled: bootstrapped Job Queue Service')
コード例 #16
0
ファイル: requestqueue.py プロジェクト: IBM/ignition
    def configure(self, configuration, service_register):
        auto_config = configuration.property_groups.get_property_group(
            BootProperties)
        if auto_config.request_queue.enabled is True:
            logger.debug('Bootstrapping Request Queue Service')

            messaging_config = configuration.property_groups.get_property_group(
                MessagingProperties)
            resource_driver_config = configuration.property_groups.get_property_group(
                ResourceDriverProperties)
            self.configure_topics(
                configuration, messaging_config,
                resource_driver_config.lifecycle_request_queue)

            if auto_config.resource_driver.api_enabled is True:
                validate_no_service_with_capability_exists(
                    service_register, LifecycleRequestQueueCapability,
                    'Lifecycle Request Queue',
                    'bootstrap.request_queue.enabled')
                service_register.add_service(
                    ServiceRegistration(
                        KafkaLifecycleConsumerFactory,
                        resource_driver_config.lifecycle_request_queue,
                        messaging_properties=MessagingProperties))
                service_register.add_service(
                    ServiceRegistration(
                        KafkaLifecycleRequestQueueService,
                        lifecycle_messaging_service=
                        LifecycleMessagingCapability,
                        messaging_properties=MessagingProperties,
                        resource_driver_config=ResourceDriverProperties,
                        postal_service=PostalCapability,
                        driver_files_manager=DriverFilesManagerCapability,
                        lifecycle_consumer_factory=
                        LifecycleConsumerFactoryCapability))
        else:
            logger.debug('Disabled: bootstrapped Request Queue Service')