Refactoring 'for' loops
lets00 committed
Jan 12, 2018 at 14:54 UTC
63d80e0224b6710477c9f90be95917d2112de5e9
1 file changed
+12
-18
python.d/ceph.chart.py
+12
-18
@@ -96,9 +96,11 @@ class Service(SimpleService):
96
try:
97
data = {}
98
data.update(self._get_general())
99
- data.update(self._get_pool_usage())
100
- data.update(self._get_pool_objects())
101
- data.update(self._get_osd_usage())
99
+ for pool in self._get_df()['pools']:
100
+ data.update(self._get_pool_usage(pool))
101
+ data.update(self._get_pool_objects(pool))
102
+ for osd in self._get_osd_df()['nodes']:
103
+ data.update(self._get_osd_usage(osd))
104
return data
105
except (ValueError, AttributeError) as error:
106
self.error(error)
@@ -114,35 +116,26 @@ class Service(SimpleService):
116
'general_available': info['total_avail_bytes']
117
}
118
117
- def _get_pool_usage(self):
119
+ def _get_pool_usage(self, pool):
120
"""
121
Process raw data into pool usage dict information
122
:return: A pool dict with pool name's key and usage bytes' value
123
"""
122
- pool_usage = {}
123
- for df in self._get_df()['pools']:
124
- pool_usage[df['name']] = df['stats']['kb_used']
125
- return pool_usage
124
+ return {pool['name']: pool['stats']['kb_used']}
125
127
- def _get_pool_objects(self):
126
+ def _get_pool_objects(self, pool):
127
"""
128
Process raw data into pool usage dict information
129
:return: A pool dict with pool name's key and object numbers
130
"""
132
- pool_objects = {}
133
- for df in self._get_df()['pools']:
134
- pool_objects["obj_{0}".format(df['name'])] = df['stats']['objects']
135
- return pool_objects
131
+ return {'obj_{0}'.format(pool['name']): pool['stats']['objects']}
132
137
- def _get_osd_usage(self):
133
+ def _get_osd_usage(self, osd):
134
"""
135
Process raw data into osd dict information to get osd usage
136
:return: A osd dict with osd name's key and usage bytes' value
137
"""
142
- osd_usage = {}
143
- for osd in self._get_osd_df()['nodes']:
144
- osd_usage[osd['name']] = float(osd['kb_used'])
145
- return osd_usage
138
+ return {osd['name']: float(osd['kb_used'])}
139
140
def _get_df(self):
141
"""
@@ -163,3 +156,4 @@ class Service(SimpleService):
156
'prefix': 'osd df',
157
'format': 'json'
158
}), '')[1])
159
+