]> git.proxmox.com Git - ceph.git/blob - ceph/src/ceph-volume/ceph_volume/tests/test_inventory.py
71cb027ed87596d6ecd95971f6237849eac9829f
[ceph.git] / ceph / src / ceph-volume / ceph_volume / tests / test_inventory.py
1 # -*- coding: utf-8 -*-
2
3 import pytest
4 from ceph_volume.util.device import Devices
5
6
7 @pytest.fixture
8 def device_report_keys(device_info):
9 device_info(devices={
10 # example output of disk.get_devices()
11 '/dev/sdb': {'human_readable_size': '1.82 TB',
12 'locked': 0,
13 'model': 'PERC H700',
14 'nr_requests': '128',
15 'partitions': {},
16 'path': '/dev/sdb',
17 'removable': '0',
18 'rev': '2.10',
19 'ro': '0',
20 'rotational': '1',
21 'sas_address': '',
22 'sas_device_handle': '',
23 'scheduler_mode': 'cfq',
24 'sectors': 0,
25 'sectorsize': '512',
26 'size': 1999844147200.0,
27 'support_discard': '',
28 'vendor': 'DELL'}
29 }
30 )
31 report = Devices().json_report()[0]
32 return list(report.keys())
33
34 @pytest.fixture
35 def device_sys_api_keys(device_info):
36 device_info(devices={
37 # example output of disk.get_devices()
38 '/dev/sdb': {'human_readable_size': '1.82 TB',
39 'locked': 0,
40 'model': 'PERC H700',
41 'nr_requests': '128',
42 'partitions': {},
43 'path': '/dev/sdb',
44 'removable': '0',
45 'rev': '2.10',
46 'ro': '0',
47 'rotational': '1',
48 'sas_address': '',
49 'sas_device_handle': '',
50 'scheduler_mode': 'cfq',
51 'sectors': 0,
52 'sectorsize': '512',
53 'size': 1999844147200.0,
54 'support_discard': '',
55 'vendor': 'DELL'}
56 }
57 )
58 report = Devices().json_report()[0]
59 return list(report['sys_api'].keys())
60
61
62 class TestInventory(object):
63
64 expected_keys = [
65 'path',
66 'rejected_reasons',
67 'sys_api',
68 'available',
69 'lvs',
70 ]
71
72 expected_sys_api_keys = [
73 'human_readable_size',
74 'locked',
75 'model',
76 'nr_requests',
77 'partitions',
78 'path',
79 'removable',
80 'rev',
81 'ro',
82 'rotational',
83 'sas_address',
84 'sas_device_handle',
85 'scheduler_mode',
86 'sectors',
87 'sectorsize',
88 'size',
89 'support_discard',
90 'vendor',
91 ]
92
93 def test_json_inventory_keys_unexpected(self, device_report_keys):
94 for k in device_report_keys:
95 assert k in self.expected_keys, "unexpected key {} in report".format(k)
96
97 def test_json_inventory_keys_missing(self, device_report_keys):
98 for k in self.expected_keys:
99 assert k in device_report_keys, "expected key {} in report".format(k)
100
101 def test_sys_api_keys_unexpected(self, device_sys_api_keys):
102 for k in device_sys_api_keys:
103 assert k in self.expected_sys_api_keys, "unexpected key {} in sys_api field".format(k)
104
105 def test_sys_api_keys_missing(self, device_sys_api_keys):
106 for k in self.expected_sys_api_keys:
107 assert k in device_sys_api_keys, "expected key {} in sys_api field".format(k)
108