:param pool_name: pool :param prop: property to be set. :param val: value to set. This routine retries if set operation fails.
(self, pool_name, prop, val)
| 2348 | return int(self.get_pool_property(pool_name, prop)) |
| 2349 | |
| 2350 | def set_pool_property(self, pool_name, prop, val): |
| 2351 | """ |
| 2352 | :param pool_name: pool |
| 2353 | :param prop: property to be set. |
| 2354 | :param val: value to set. |
| 2355 | |
| 2356 | This routine retries if set operation fails. |
| 2357 | """ |
| 2358 | with self.lock: |
| 2359 | assert isinstance(pool_name, str) |
| 2360 | assert isinstance(prop, str) |
| 2361 | assert isinstance(val, int) |
| 2362 | tries = 0 |
| 2363 | while True: |
| 2364 | r = self.raw_cluster_cmd_result( |
| 2365 | 'osd', |
| 2366 | 'pool', |
| 2367 | 'set', |
| 2368 | pool_name, |
| 2369 | prop, |
| 2370 | str(val)) |
| 2371 | if r != 11: # EAGAIN |
| 2372 | break |
| 2373 | tries += 1 |
| 2374 | if tries > 50: |
| 2375 | raise Exception('timed out getting EAGAIN ' |
| 2376 | 'when setting pool property %s %s = %s' % |
| 2377 | (pool_name, prop, val)) |
| 2378 | self.log('got EAGAIN setting pool property, ' |
| 2379 | 'waiting a few seconds...') |
| 2380 | time.sleep(2) |
| 2381 | |
| 2382 | def expand_pool(self, pool_name, by, max_pgs): |
| 2383 | """ |
no test coverage detected