~gnuoy/charms/trusty/keystone/logging-fqpaths

« back to all changes in this revision

Viewing changes to unit_tests/test_keystone_contexts.py

  • Committer: james.page at ubuntu
  • Date: 2014-10-06 20:46:42 UTC
  • mfrom: (79.1.29 keystone)
  • Revision ID: james.page@ubuntu.com-20141006204642-79hujcxengzcinc0
[james-page,r=gnuoy] Add support for HTTPS+HA in network split configurations

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
import keystone_context as context
2
 
from mock import patch
 
2
from mock import patch, MagicMock
3
3
 
4
4
from test_utils import (
5
5
    CharmTestCase
16
16
    def setUp(self):
17
17
        super(TestKeystoneContexts, self).setUp(context, TO_PATCH)
18
18
 
19
 
    mod_ch_context = 'charmhelpers.contrib.openstack.context'
20
 
 
21
 
    @patch('%s.ApacheSSLContext.canonical_names' % (mod_ch_context))
22
 
    @patch('%s.ApacheSSLContext.configure_ca' % (mod_ch_context))
23
 
    @patch('%s.config' % (mod_ch_context))
24
 
    @patch('%s.is_clustered' % (mod_ch_context))
25
 
    @patch('%s.determine_apache_port' % (mod_ch_context))
26
 
    @patch('%s.determine_api_port' % (mod_ch_context))
27
 
    @patch('%s.unit_get' % (mod_ch_context))
28
 
    @patch('%s.https' % (mod_ch_context))
 
19
    @patch('charmhelpers.contrib.openstack.context.config')
 
20
    @patch('charmhelpers.contrib.openstack.context.is_clustered')
 
21
    @patch('charmhelpers.contrib.openstack.context.determine_apache_port')
 
22
    @patch('charmhelpers.contrib.openstack.context.determine_api_port')
 
23
    @patch('charmhelpers.contrib.openstack.context.unit_get')
 
24
    @patch('charmhelpers.contrib.openstack.context.https')
29
25
    def test_apache_ssl_context_service_enabled(self, mock_https,
30
26
                                                mock_unit_get,
31
27
                                                mock_determine_api_port,
32
28
                                                mock_determine_apache_port,
33
29
                                                mock_is_clustered,
34
 
                                                mock_config,
35
 
                                                mock_configure_ca,
36
 
                                                mock_cfg_canonical_names):
 
30
                                                mock_config):
37
31
        mock_https.return_value = True
38
32
        mock_unit_get.return_value = '1.2.3.4'
39
33
        mock_determine_api_port.return_value = '12'
40
34
        mock_determine_apache_port.return_value = '34'
41
35
        mock_is_clustered.return_value = False
 
36
        mock_config.return_value = None
42
37
 
43
38
        ctxt = context.ApacheSSLContext()
44
 
        with patch.object(ctxt, 'enable_modules'):
45
 
            with patch.object(ctxt, 'configure_cert'):
46
 
                self.assertEquals(ctxt(), {'endpoints': [('1.2.3.4', '1.2.3.4',
47
 
                                                          34, 12)],
48
 
                                           'ext_ports': [34],
49
 
                                           'namespace': 'keystone'})
50
 
                self.assertTrue(mock_https.called)
51
 
                mock_unit_get.assert_called_with('private-address')
 
39
        ctxt.enable_modules = MagicMock()
 
40
        ctxt.configure_cert = MagicMock()
 
41
        ctxt.configure_ca = MagicMock()
 
42
        ctxt.canonical_names = MagicMock()
 
43
        self.assertEquals(ctxt(), {'endpoints': [('1.2.3.4',
 
44
                                                  '1.2.3.4',
 
45
                                                  34, 12)],
 
46
                                   'namespace': 'keystone',
 
47
                                   'ext_ports': [34]})
 
48
        self.assertTrue(mock_https.called)
 
49
        mock_unit_get.assert_called_with('private-address')
52
50
 
53
 
    @patch('%s.get_address_in_network' % (mod_ch_context))
54
 
    @patch('%s.ApacheSSLContext.canonical_names' % (mod_ch_context))
55
 
    @patch('%s.ApacheSSLContext.configure_ca' % (mod_ch_context))
56
 
    @patch('%s.config' % (mod_ch_context))
57
 
    @patch('%s.relation_ids' % (mod_ch_context))
58
 
    @patch('%s.unit_get' % (mod_ch_context))
59
 
    @patch('%s.related_units' % (mod_ch_context))
60
 
    @patch('%s.relation_get' % (mod_ch_context))
61
 
    @patch('%s.log' % (mod_ch_context))
 
51
    @patch('charmhelpers.contrib.openstack.context.get_netmask_for_address')
 
52
    @patch('charmhelpers.contrib.openstack.context.get_address_in_network')
 
53
    @patch('charmhelpers.contrib.openstack.context.config')
 
54
    @patch('charmhelpers.contrib.openstack.context.relation_ids')
 
55
    @patch('charmhelpers.contrib.openstack.context.unit_get')
 
56
    @patch('charmhelpers.contrib.openstack.context.related_units')
 
57
    @patch('charmhelpers.contrib.openstack.context.relation_get')
 
58
    @patch('charmhelpers.contrib.openstack.context.log')
62
59
    @patch('__builtin__.open')
63
 
    def test_haproxy_context_service_enabled(self, mock_open, mock_log,
64
 
                                             mock_relation_get,
65
 
                                             mock_related_units, mock_unit_get,
66
 
                                             mock_relation_ids, mock_config,
67
 
                                             mock_configure_ca,
68
 
                                             mock_cfg_canonical_names,
69
 
                                             mock_get_addr):
70
 
        mock_get_addr.return_value = "1.2.3.4"
 
60
    def test_haproxy_context_service_enabled(
 
61
        self, mock_open, mock_log, mock_relation_get, mock_related_units,
 
62
            mock_unit_get, mock_relation_ids, mock_config,
 
63
            mock_get_address_in_network, mock_get_netmask_for_address):
71
64
        mock_relation_ids.return_value = ['identity-service:0', ]
72
65
        mock_unit_get.return_value = '1.2.3.4'
73
66
        mock_relation_get.return_value = '10.0.0.0'
74
67
        mock_related_units.return_value = ['unit/0', ]
75
 
        mock_config.side_effect = lambda args: False
 
68
        mock_config.return_value = None
 
69
        mock_get_address_in_network.return_value = None
 
70
        mock_get_netmask_for_address.return_value = '255.255.255.0'
76
71
        self.determine_apache_port.return_value = '34'
77
72
 
78
73
        ctxt = context.HAProxyContext()
82
77
            ctxt(),
83
78
            {'listen_ports': {'admin_port': 'keystone',
84
79
                              'public_port': 'keystone'},
85
 
             'units': {'keystone': '1.2.3.4', 'unit-0': '10.0.0.0'},
86
80
             'local_host': '127.0.0.1',
87
81
             'haproxy_host': '0.0.0.0',
88
82
             'stat_port': ':8888',
89
83
             'service_ports': {'admin-port': ['keystone', '34'],
90
84
                               'public-port': ['keystone', '34']},
91
 
             'units': {'keystone': '1.2.3.4', 'unit-0': '10.0.0.0'}})
92
 
#        mock_unit_get.assert_called_with('private-address')
93
 
#        mock_relation_get.assert_called_with(
94
 
#            'private-address',
95
 
#            rid='identity-service:0',
96
 
#            unit='unit/0')
97
 
#        mock_open.assert_called_with('/etc/default/haproxy', 'w')
 
85
             'frontends': {'1.2.3.4': {
 
86
                 'network': '1.2.3.4/255.255.255.0',
 
87
                 'backends': {
 
88
                     'keystone': '1.2.3.4',
 
89
                     'unit-0': '10.0.0.0'
 
90
                 }
 
91
             }}
 
92
             }
 
93
        )