~openstack-charmers-next/charms/trusty/cinder/trunk

« back to all changes in this revision

Viewing changes to unit_tests/test_cinder_hooks.py

  • Committer: James Page
  • Date: 2016-04-12 13:56:30 UTC
  • Revision ID: james.page@ubuntu.com-20160412135630-crwuc5w4nq3kov7z
Use network space binding for shared-db relation

To ensure that the charm presents the right IP address for
accessing the MySQL database over the shared-db relation,
ensure that any network space binding provided by the user
is preferred over the default of 'private-address'.

If network spaces is not supported (juju < 2.0), fallback to
using 'private-address'.

Change-Id: Ie020135e716cebfbe5f96759a65d5a082b767dd0

Show diffs side-by-side

added added

removed removed

Lines of Context:
62
62
    'relation_set',
63
63
    'service_name',
64
64
    'unit_get',
 
65
    'network_get_primary_address',
65
66
    # charmhelpers.core.host
66
67
    'apt_install',
67
68
    'apt_update',
410
411
    def setUp(self):
411
412
        super(TestJoinedHooks, self).setUp(hooks, TO_PATCH)
412
413
        self.config.side_effect = self.test_config.get
 
414
        self.network_get_primary_address.side_effect = NotImplementedError
413
415
 
414
416
    def test_db_joined(self):
415
417
        'It properly requests access to a shared-db service'
420
422
                    'hostname': 'cindernode1', 'database': 'cinder'}
421
423
        self.relation_set.assert_called_with(**expected)
422
424
 
 
425
    def test_db_joined_spaces(self):
 
426
        'Ensure network space binding is used when provided'
 
427
        self.network_get_primary_address.side_effect = None
 
428
        self.network_get_primary_address.return_value = '192.168.20.1'
 
429
        self.unit_get.return_value = 'cindernode1'
 
430
        self.is_relation_made.return_value = False
 
431
        hooks.hooks.execute(['hooks/shared-db-relation-joined'])
 
432
        expected = {'username': 'cinder',
 
433
                    'hostname': '192.168.20.1', 'database': 'cinder'}
 
434
        self.relation_set.assert_called_with(**expected)
 
435
 
423
436
    def test_db_joined_with_ipv6(self):
424
437
        'It properly requests access to a shared-db service'
425
438
        self.unit_get.return_value = 'cindernode1'