~alexlist/charms/trusty/swift-storage/nrpe-rebased

« back to all changes in this revision

Viewing changes to unit_tests/test_swift_storage_utils.py

  • Committer: james.page at ubuntu
  • Date: 2014-06-19 08:34:43 UTC
  • mfrom: (27.3.2 ignore-missing-devs-v2)
  • Revision ID: james.page@ubuntu.com-20140619083443-pykjfv6q80onwavh
[rharper,r=james-page] Whitelist support for block devices

Allow for the user to specify devices that may not exist (and have swift-storage ignore them like cinder and ceph charms do). With this change we can use a common swift-storage block-device list that works across multiple different physical hosts where the block devices aren't all the same.

Show diffs side-by-side

added added

removed removed

Lines of Context:
101
101
        self.assertEquals(swift_utils.determine_block_devices(), None)
102
102
 
103
103
    def _fake_ensure(self, bdev):
104
 
        return bdev.split('|').pop(0)
 
104
        # /dev/vdz is a missing dev
 
105
        if '/dev/vdz' in bdev:
 
106
            return None
 
107
        else:
 
108
            return bdev.split('|').pop(0)
105
109
 
106
110
    @patch.object(swift_utils, 'ensure_block_device')
107
111
    def test_determine_block_device_single_dev(self, _ensure):
108
112
        _ensure.side_effect = self._fake_ensure
109
 
        self.test_config.set('block-device', '/dev/vdb')
 
113
        bdevs = '/dev/vdb'
 
114
        self.test_config.set('block-device', bdevs)
110
115
        result = swift_utils.determine_block_devices()
111
116
        self.assertEquals(['/dev/vdb'], result)
112
117
 
119
124
        ex = ['/dev/vdb', '/dev/vdc', '/tmp/swift.img']
120
125
        self.assertEquals(ex, result)
121
126
 
 
127
    @patch.object(swift_utils, 'ensure_block_device')
 
128
    def test_determine_block_device_with_missing(self, _ensure):
 
129
        _ensure.side_effect = self._fake_ensure
 
130
        bdevs = '/dev/vdb /srv/swift.img|20G /dev/vdz'
 
131
        self.test_config.set('block-device', bdevs)
 
132
        result = swift_utils.determine_block_devices()
 
133
        ex = ['/dev/vdb', '/srv/swift.img']
 
134
        self.assertEqual(ex, result)
 
135
 
122
136
    @patch.object(swift_utils, 'find_block_devices')
123
137
    @patch.object(swift_utils, 'ensure_block_device')
124
138
    def test_determine_block_device_guess_dev(self, _ensure, _find):