Ejemplo n.º 1
0
    def test_subordinate_config_context_stateless(self, mock_rel_ids,
                                                  mock_rel_units,
                                                  mock_rel_get):
        mock_rel_ids.return_value = ['storage-backend:0']
        self.relation_ids.return_value = ['storage-backend:0']

        mock_rel_units.return_value = ['cinder-ceph/0']
        self.related_units.return_value = ['cinder-ceph/0']

        self.service_name.return_value = 'cinder'

        settings = \
            {'backend_name': 'cinder-ceph',
             'private-address': '10.5.8.191',
             'stateless': 'True',
             'subordinate_configuration':
             '{"cinder": '
             '{"/etc/cinder/cinder.conf": '
             '{"sections": '
             '{"cinder-ceph": '
             '[["volume_backend_name", '
             '"cinder-ceph"], '
             '["volume_driver", '
             '"cinder.volume.drivers.rbd.RBDDriver"], '
             '["rbd_pool", '
             '"cinder-ceph"], '
             '["rbd_user", '
             '"cinder-ceph"]]}}}}'}

        def fake_rel_get(attribute=None, unit=None, rid=None):
            return settings.get(attribute)

        mock_rel_get.side_effect = fake_rel_get
        self.relation_get.side_effect = fake_rel_get

        ctxt = contexts.CinderSubordinateConfigContext(
            interface='storage-backend',
            service='cinder',
            config_file='/etc/cinder/cinder.conf')()

        exp = {
            'sections': {
                'DEFAULT': [('host', 'cinder')],
                u'cinder-ceph':
                [[u'volume_backend_name', u'cinder-ceph'],
                 [u'volume_driver', u'cinder.volume.drivers.rbd.RBDDriver'],
                 [u'rbd_pool', u'cinder-ceph'], [u'rbd_user', u'cinder-ceph']]
            }
        }

        self.assertEqual(ctxt, exp)
Ejemplo n.º 2
0
# Map config files to hook contexts and services that will be associated
# with file in restart_on_changes()'s service map.
BASE_RESOURCE_MAP = OrderedDict([
    (CINDER_CONF, {
        'contexts': [
            context.SharedDBContext(ssl_dir=CINDER_CONF_DIR),
            context.AMQPContext(ssl_dir=CINDER_CONF_DIR),
            context.ImageServiceContext(),
            context.OSConfigFlagContext(),
            context.SyslogContext(),
            cinder_contexts.CephContext(),
            cinder_contexts.HAProxyContext(),
            cinder_contexts.ImageServiceContext(),
            cinder_contexts.CinderSubordinateConfigContext(
                interface=['storage-backend', 'backup-backend'],
                service='cinder',
                config_file=CINDER_CONF),
            cinder_contexts.StorageBackendContext(),
            cinder_contexts.LoggingConfigContext(),
            context.IdentityServiceContext(service='cinder',
                                           service_user='******'),
            context.BindHostContext(),
            context.WorkerConfigContext(),
            cinder_contexts.RegionContext(),
            context.InternalEndpointContext(),
            cinder_contexts.VolumeUsageAuditContext(),
            context.MemcacheContext(),
            cinder_contexts.SectionalConfigContext(),
            cinder_contexts.LVMContext()
        ],
        'services':