Example #1
0
    def get_storage(self):
        ''' Load a StorageInfo class.  Probe if it's not present '''
        if 'storage' not in self.probe_data:
            log.debug('get_storage: no storage in probe_data, fetching')
            storage = Storage()
            results = storage.probe()
            self.probe_data['storage'] = results

        return self.probe_data['storage']
Example #2
0
    def get_storage(self, probe_types=None):
        ''' Load a StorageInfo class.  Probe if it's not present '''
        if 'storage' not in self.probe_data:
            log.debug('get_storage: no storage in probe_data, fetching')
            storage = Storage()
            results = storage.probe(probe_types=probe_types)
            self.probe_data['storage'] = results

        if self.opts.machine_config is not None and probe_types is not None:
            r = self.saved_config['storage'].copy()
            for k in self.saved_config['storage']:
                if k not in probe_types:
                    r[k] = {}
            return r
        return self.probe_data['storage']
Example #3
0
 def get_storage(self, probe_types=None):
     if self.saved_config is not None:
         flag = 'bpfail-full'
         if probe_types is not None:
             flag = 'bpfail-restricted'
         if flag in self.debug_flags:
             time.sleep(2)
             1/0
         r = self.saved_config['storage'].copy()
         if probe_types is not None:
             for k in self.saved_config['storage']:
                 if k not in probe_types:
                     r[k] = {}
         return r
     from probert.storage import Storage
     return Storage().probe(probe_types=probe_types)
Example #4
0
class Prober():
    def __init__(self):
        self._results = {}

    def probe_all(self):
        self.probe_storage()
        self.probe_network()

    def probe_storage(self):
        from probert.storage import Storage
        self._storage = Storage()
        self._results['storage'] = self._storage.probe()

    def probe_network(self):
        from probert.network import NetworkProber
        self._network = NetworkProber()
        self._results['network'] = self._network.probe()

    def get_results(self):
        return self._results
Example #5
0
 def probe_storage(self):
     from probert.storage import Storage
     self._storage = Storage()
     self._results['storage'] = self._storage.probe()
Example #6
0
 def setUp(self):
     super(ProbertTestStorage, self).setUp()
     with open(FAKE_PROBE_ALL_JSON) as f:
         self.results = json.load(f)
     self.storage = Storage(results=self.results)
Example #7
0
class ProbertTestStorage(testtools.TestCase):
    def setUp(self):
        super(ProbertTestStorage, self).setUp()
        with open(FAKE_PROBE_ALL_JSON) as f:
            self.results = json.load(f)
        self.storage = Storage(results=self.results)

    def test_storage_init(self):
        self.assertNotEqual(None, self.storage)

    def test_storage_get_devices(self):
        storage_keys = self.results.get('storage').keys()
        self.assertEqual(sorted(self.storage.get_devices()),
                         sorted(storage_keys))

    def test_storage_get_devices_no_storage(self):
        s = Storage()
        self.assertEqual([], s.get_devices())

    def test_storage_get_devices_by_key(self):
        key = 'DEVTYPE'
        val = 'partition'
        plist_1 = self.storage.get_devices_by_key(key, val)
        plist_2 = [
            p for p in self.results['storage'].keys()
            if self.results['storage'][p][key] == val
        ]
        self.assertEqual(sorted(plist_1), sorted(plist_2))

    def test_storage_get_devices_by_key_invalid_key(self):
        key = 'lactobacillus'
        val = 'sourbeer'
        plist_1 = self.storage.get_devices_by_key(key, val)
        plist_2 = []
        self.assertEqual(sorted(plist_1), sorted(plist_2))

    def test_storage_get_devices_by_key_invalid_value(self):
        key = 'DEVTYPE'
        val = 'supercomputer'
        plist_1 = self.storage.get_devices_by_key(key, val)
        plist_2 = []
        self.assertEqual(sorted(plist_1), sorted(plist_2))

    def test_storage_get_partitions(self):
        device = '/dev/sda'
        plist_1 = self.storage.get_partitions(device)
        plist_2 = [
            p for p in self.storage.get_devices_by_key('DEVTYPE', 'partition')
            if p.startswith(device)
        ]
        self.assertEqual(sorted(plist_1), sorted(plist_2))

    def test_storage_get_partitions_no_parts(self):
        results = {'storage': {'/dev/sda': {'DEVTYPE': 'disk', 'MAJOR': '8'}}}
        s = Storage(results=results)
        device = '/dev/sda'
        self.assertEqual([], s.get_partitions(device))

    def test_storage_get_disk_no_disk(self):
        s = Storage()
        self.assertEqual([], s.get_disks())

    def test_storage_get_disks(self):
        disks = [
            d for d in self.results['storage'].keys()
            if self.results['storage'][d]['MAJOR'] == '8'
            and self.results['storage'][d]['DEVTYPE'] == 'disk'
        ]
        self.assertEqual(sorted(self.storage.get_disks()), sorted(disks))

    def test_storage_get_device_size(self):
        disk = self.storage.get_disks().pop()
        size = self.results['storage'][disk]['attrs']['size']
        self.assertEqual(self.storage.get_device_size(disk), size)
Example #8
0
 def test_storage_get_disk_no_disk(self):
     s = Storage()
     self.assertEqual([], s.get_disks())
Example #9
0
 def test_storage_get_partitions_no_parts(self):
     results = {'storage': {'/dev/sda': {'DEVTYPE': 'disk', 'MAJOR': '8'}}}
     s = Storage(results=results)
     device = '/dev/sda'
     self.assertEqual([], s.get_partitions(device))
Example #10
0
 def test_storage_get_devices_no_storage(self):
     s = Storage()
     self.assertEqual([], s.get_devices())
Example #11
0
 def probe_storage(self):
     storage = Storage()
     results = storage.probe()
     self.results['storage'] = results
Example #12
0
 def probe_storage(self):
     self._results['storage'] = Storage().probe()